cd /news/ai-agents/santree-backlog-shipped-in-parallel · home › topics › ai-agents › article
[ARTICLE · art-157403] src=github.com ↗ pub= topic=ai-agents verified=true sentiment=↑ positive

Santree: Backlog, Shipped in Parallel

Santree released a macOS desktop app that runs OpenAI Codex and Anthropic Claude Code agents in parallel across a repository's tickets, giving each agent an isolated git worktree that users can watch, steer and merge. The app requires git and at least one coding agent CLI, uses the user's own login and subscription without handling credentials, and integrates with Linear and Jira for tickets and triage queues with SLA clocks. Santree is signed and notarized, self-updates on stable or beta channels, and adds an AI co-reviewer that drafts PR comments held locally until the user publishes them.

read4 min views3 publishedOct 25, 2026
Santree: Backlog, Shipped in Parallel
Image: Michielbdejong (auto-discovered)

Your backlog, shipped in parallel.

santree is a desktop app that runs Codex and Claude Code across your repo's tickets. Each agent gets an isolated git worktree you can watch, steer, and merge. Triage in, PRs out.

Website · ** Docs** · ** Download for macOS** · Changelog

Running one coding agent is easy. Running five is a workflow problem: they step on each other's diffs, you lose track of who's blocked on you, and the actual job (tickets in, reviewed PRs out) lives scattered across a tracker, a terminal multiplexer, and a browser.

santree puts the whole loop in one window. Every task gets an isolated git worktree with a real terminal running the real Codex or Claude Code CLI: your login, your subscription, no credentials handled by santree. Around the terminals it builds the workflow: a permanent sidebar that shows every agent's state across every project, your team's triage queue with its SLA clock, your tickets as a list or a dependency graph, a review inbox with an AI co-reviewer, and a work queue that turns failing checks and review comments into an agent's next task. Nothing is mocked: every view is backed by live data, and an unconnected view shows its honest empty state.

The sidebar is the app's index. It never leaves: search, your tickets, the triage queue, and every project with its worktrees and the agents running on them, each with a dot that says working, just finished, or needs you. The area beside it is whatever you picked.

  • Triage lives in the sidebar. Who is on rotation, the tickets waiting with their SLA, and a snoozed group. Open one and it gets a workspace: the ticket, anInvestigate agent digging through the project's main checkout, and a shell. With Jira, the queue is a query you set per project.
  • Tickets is your Linear or Jira queue as a list grouped by project and milestone, or as a dependency graph. Every row says whether it is ready or what blocks it.Run starts a ticket in a new worktree; the launch queue starts several at once, each with its own agent.
  • Trees is where you spend your time. One worktree per task, and a tab per agent or shell it has open. Beside the terminal: the ticket, the files, the branch's changes with a commit box, session history you can resume, and, once a PR exists, the PR itself and itsAI work queue .
  • Reviews is the inbox: other people's pull requests, per project, ordered by what needs you. The PR page has the conversation, commits, checks and files. AnAI review reads the diff and writes a brief and draft comments that stay local until you publish them.
  • Your own PR is worked on next to its worktree, not in the inbox. A failing check, a reviewer's comment, an AI draft or a diff line you flag all land in one queue, andStart work hands the whole queue to an agent.
  • Settings holds the integrations, a provider and model per workflow (triage, work, reviews), the prompts every launch renders (Jinja templates you can edit and preview), environment variables, and usage.

| <sub>The work queue. Failing checks, review comments and AI drafts, drained by one agent.</sub> | <sub>Tickets. Grouped by project and milestone; every row says what blocks it.</sub> | | <sub>Triage. The ticket, an investigating agent, and the project it runs on.</sub> | <sub>Reviews. A teammate's PR with its AI review beside it, drafts held until you publish.</sub> |

santree runs on macOS: download the DMG. It's signed and notarized, and keeps itself up to date (pick the stable or beta channel in Settings → General).

You'll also want:

  • git : worktrees, diffs, and branches are the real thing.
  • At least one coding agent: Codex or**Claude Code** , installed and logged in. santree drives the CLI you already have and never touches its credentials.
  • GitHub CLI (gh ), signed in. Optional; it powers Reviews, the PR panes and the checks.
  • A Linear workspace or a**Jira Cloud** site. Optional; it powers Tickets and Triage, and each project picks which one it reads.

You need Rust (the pinned toolchain installs automatically), Node 22+, pnpm, and the Xcode Command Line Tools (xcode-select --install).

pnpm install
pnpm dev        # first run compiles the Rust side, a few minutes, then fast

Architecture, data flow, testing, the release pipeline, and the terminal internals live in DEVELOPMENT.md. The ground rules for how santree is allowed to interact with agent CLIs are in COMPLIANCE.md; they're load-bearing.

The screenshots above come from the app's screenshot fixture mode, a fake company (Mallard Labs, makers of QuackStack) served to the real views; see src/dev/fixtures/README.md to retake them.

santree is pre-release and moving fast. Bug reports and small PRs are very welcome; for anything bigger, open an issue first so we can talk it through.

MIT © Santiago Toscanini

── more in #ai-agents 4 stories · sorted by recency
── more on @santree 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/santree-backlog-ship…] indexed:0 read:4min 2026-10-25 · —