Skip to main content

A desktop habitat
for AI agents.

Run coding agents side by side, each in its own Git worktree. See where you’re needed and review changes before merging.

  • No account for the app
  • Runs locally, no relay
  • Free app, Apache 2.0
  • 17 built-in agents

An animated reconstruction of the Daintree interface, running on sample project data. The walkthrough below is a recording of the real app.

Generation is cheap. Review is the bottleneck.

Daintree is built around the second half. You delegate, it shows you which runs need you, and you review the diff before you merge.

574 pull requests merged in the 30 days ending .

One loop, whichever agent CLI you run

  1. Delegate

    Create a worktree per task, by hand or straight from a GitHub issue, and launch any agent CLI into it. Each task gets its own branch and checkout.

  2. Monitor

    Pilot gathers every run across every project and sorts them by what is blocked, waiting and ready. That ordering is the list, not a view you switch on.

  3. Review

    An agent reporting done is a claim. Read the diff, check merge readiness, and read CI state from your connected forge before you decide anything.

  4. Merge

    Commit, push and merge from inside Daintree, or hand the branch to your normal review process. The worktree cleans up behind you.

Run the loop yourself, in about fifteen minutes 

Walkthrough

How I run the loop on a real project

I’m Greg Priday, and I build Daintree. This is how I run several agents on a real project: organizing worktrees, using Pilot to find the runs that need me, and reviewing changes before I merge them.

Where this differs from agents in terminal tabs
Terminal tabsDaintree
Where the work happensOne checkout, or worktrees you add by handA worktree per task, by default
How you keep track of runsCycling tabs to see which one stoppedEvery project in one list, waiting runs on top
How you check the resultScrollback, then git diff in another tabThe diff, merge readiness and CI state together
What actually runsThe CLI binary, with your configThe same CLI binary, with the same config

Where this differs from agents in terminal tabs

Where the work happens
Terminal tabs One checkout, or worktrees you add by hand
Daintree A worktree per task, by default
How you keep track of runs
Terminal tabs Cycling tabs to see which one stopped
Daintree Every project in one list, waiting runs on top
How you check the result
Terminal tabs Scrollback, then git diff in another tab
Daintree The diff, merge readiness and CI state together
What actually runs
Terminal tabs The CLI binary, with your config
Daintree The same CLI binary, with the same config

It is not an IDE either. Daintree sits above the agent CLIs you already run, not inside another VS Code fork. It is a habitat for delegating work and reviewing it, rather than an editor for typing it.

Works with the CLI you already run

  • Claude Code
  • Codex CLI
  • Antigravity
  • OpenCode
  • Cursor Agent
  • GitHub Copilot

Plus eleven more built in, with live state detection for each. Run the real binaries with your existing config and subscription, or add another agent through a plugin.

See all 17 built-in agents 

Pilot

Twenty agents running. Three of them need you.

Pilot brings every run into one view, grouped by project and ordered by live agent state. See what is blocked, waiting for approval, or ready to review.

Park anything that can wait. The list opens on what needs you now.

Daintree’s Canopy, in beta, goes a step further: it reads each agent’s screen and ranks the whole fleet by what it needs from you.

Join the waitlist for Daintree’s Canopy 
All agents
daintree-website2
mobile-client1
api-gateway
design-system
data-pipeline
dashboard
Select a tab or agent to try it yourself.

Evidence before merge

Done is a claim.
The diff is the evidence.

Review Hub puts each worktree's diff beside its merge readiness and live forge checks. Read what changed, stage what you want, then commit and push from the same view.

Keep the work or discard the branch. You make the call with the evidence in front of you.

Review & Commit fix/auth-retry
CI pending on PR #4824 passed, 1 running
0/4 viewed

src/lib/auth/session.ts

Diff excerpt+62−14
 export async function requestWithAuth(url) {-  return fetch(url, withToken());+  const response = await fetch(url, withToken());+  if (response.status !== 401) return response;+  await refreshSession();+  return fetch(url, withToken()); }
Sample changes, with the first file open. Go back to review the other three.

One window for delegation, review, and merge

Every Agent, One Window

Runs the agent CLIs already on your machine, in parallel, with your existing config

Parallel Worktrees

Every task on its own branch and checkout

Unified Input

One set of @files, /commands, and shortcuts, working with every agent

Chat Portal

Ask any agent a question without switching context

GitHub Integration

Pick issues in bulk; each one gets its own worktree and agent

Also inside: voice input, an MCP server, terminal recipes, plugins, themes, and remote compute.

Explore feature guides 

Daintree Assistant

An agent that runs your agents.

It plans the work, opens worktrees, launches agents into them, and watches their terminals. It brings back the ones that need you through Daintree's own permissioned tools, with every call in a local audit log.

  • Your CLI, your subscription: Daintree launches Codex or Claude Code in its sidebar, signed in the way you already use it. Codex starts on GPT-6 Luna, Claude Code on Sonnet.
  • Runbooks first: before it acts, it looks up Daintree's written procedure for the task, so fanning work out or chasing a stuck agent follows a known procedure rather than an improvised one.

Model traffic goes from the CLI to your provider. Daintree neither relays it nor bills for it. The runbook lookup sends Daintree a one-sentence summary of the task, written to leave out names and numbers.

api-server

you ship the auth fix across all five worktrees

▸ Spawned 5 agents, one per worktree

▸ Watching terminals

⚠ feat/billing: “Overwrite migration 0009?”

the other four are still working

Blast radius and trust

Every boundary is explicit

Know what separates your agents, where their processes run, and where your code goes.

  • Changes

    Every task gets its own branch and checkout

    Separate branches and checkouts keep parallel agents from overwriting each other’s work or changing your current tree.

    The boundaryIt is Git isolation, not a sandbox. The agent process still runs as your user.

  • Process

    Run the work somewhere that is not your laptop

    Give each worktree a Docker stack, cloud VM, or remote sandbox. Daintree runs your provision, pause, and teardown commands as the worktree changes.

    The boundaryProcess isolation comes from that environment. Configure it before turning permission checks off.

  • Daintree itself

    No relay, no control plane, no account

    Source, diffs, and terminal output pass through no Daintree backend. Telemetry and MCP are off by default. Enable MCP and it binds to localhost with four authorization tiers.

    The boundaryAgent CLIs still contact their providers. Plugins execute code; their manifests declare intent, not confinement. The Assistant’s docs and runbook search are Daintree-hosted, and the runbook lookup sends a one-sentence task summary.

Latest release
v0.42.0  
License
Apache 2.0
Built-in agents
17

Give every agent its own worktree

Run the real CLI, see what needs you, and review the diff before you merge.

  • No account for the app