Installation & Setup
Install Daintree, set up your AI agents from the Welcome Screen, and open your first project in a review-first workspace.
What is Daintree?
Daintree is a free, open-source desktop application that hosts AI coding agents in a review-first workspace. Each task can run in its own isolated Git worktree, so several agents work in parallel without touching each other's branches. Agents run as CLI processes inside panels you watch live. Review Hub is where you inspect, stage, and commit their changes before any of it goes upstream. You delegate the work, watch it run, and check the result before it merges.
If you already run agents from the command line, the model maps onto what you do today:
| Terminal workflow | Daintree equivalent |
|---|---|
| Run an agent in your terminal | Launch an agent panel |
| Cut a new branch per task | Create a worktree |
Run git diff to review changes | Inspect the diff in Review Hub |
| Juggle multiple terminals | Run worktrees in parallel |
System Requirements
Daintree runs on macOS, Windows, and Linux. You need three things:
- Git. Daintree manages Git worktrees, so Git has to be installed and on your PATH.
- Node.js v18.0.0+. Used to install agent CLIs via npm. Skip it if you install your agents through a different package manager.
- One or more AI agent CLIs. At least one of the supported agents, installed and on your PATH (see below).
Download & Install
Download the latest release for your platform. Architecture (x64 vs arm64) is a separate question from the packaging format. Pick the format you want; Daintree sorts out the architecture:
| Platform | Format | Architecture |
|---|---|---|
| macOS | DMG / ZIP | Apple Silicon (arm64), Intel (x64), or Universal |
| Windows | NSIS installer (direct download) / Microsoft Store | NSIS: x64 + arm64 (auto-selected) / Store: x64 |
| Linux | AppImage / DEB | x64 |
Most people want the DMG on macOS and the NSIS installer on Windows. The Windows installer is a single .exe that picks the right architecture at runtime, so there's no separate arm64 download to choose.
Open the .dmg file and drag Daintree into your Applications folder. On first launch, macOS may ask you to confirm the app, since it comes from an identified developer.
There are two ways to install on Windows:
- Direct download (NSIS installer). Run the
.exeand follow the prompts. It's a single combined installer that picks the right payload for x64 or arm64 at runtime, installs per-user (no admin rights needed), and updates itself in the background. - Microsoft Store. Install Daintree as a Store app (x64). Windows handles updates instead of Daintree's in-app updater.
Daintree reads the Windows registry (HKLM and HKCU Environment keys) at startup and supplements your PATH with common tool locations. Tools installed via npm, Git, Scoop, Chocolatey, Volta, pnpm, fnm, and nvm-windows show up without restarting your terminal session.
For the integrated terminal, Daintree uses PowerShell 7 (pwsh.exe) if it's installed, falls back to Windows PowerShell 5 (powershell.exe), and finally to cmd.exe.
The DEB package is the option to use on Ubuntu and Debian-based distributions. It handles desktop integration, AppArmor sandbox configuration, and PATH setup for you:
sudo dpkg -i daintree_*.deb The DEB installer creates a /usr/bin/daintree-app symlink and configures the AppArmor profile that the Chromium sandbox needs on Ubuntu 24.04+.
The AppImage is the alternative, and runs on any distribution:
chmod +x Daintree-*.AppImage
./Daintree-*.AppImage sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 That resets on reboot. To make it stick, drop a file in /etc/sysctl.d/: echo 'kernel.apparmor_restrict_unprivileged_userns=0' | sudo tee /etc/sysctl.d/99-daintree-userns.conf The AppImage on Ubuntu 24.04 also needs libfuse2t64: sudo apt install libfuse2t64XDG_SESSION_TYPE at startup and turns on native Wayland rendering, window decorations, and IME input support. No flags or environment variables required.Linux uses the native OS title bar rather than a custom frameless window, so Daintree follows your desktop environment's window decoration theme.
Installing Agent CLIs
Daintree runs AI coding agents as CLI processes. Install the ones you plan to use:
Claude Code
npm install -g @anthropic-ai/claude-code For one-off use without a global install, run npx @anthropic-ai/claude-code instead.
Gemini CLI
npm install -g @google/gemini-cli Codex CLI
npm install -g @openai/codex OpenCode
npm install -g opencode-ai@latest OpenCode also installs through platform-specific methods:
curl -fsSL https://opencode.ai/install | bash Also available via Homebrew:
brew install opencodescoop install opencode Also available via Chocolatey:
choco install opencodecurl -fsSL https://opencode.ai/install | bash Also available via Homebrew:
brew install opencodeCursor Agent
curl https://cursor.com/install -fsS | bashirm 'https://cursor.com/install?win32=true' | iexcurl https://cursor.com/install -fsS | bashOnce it's installed, run cursor-agent login to authenticate.
Kiro
curl -fsSL https://cli.kiro.dev/install | bash Confirm the install with kiro-cli --version, then sign in:
kiro-cli login The Kiro CLI documentation has the rest.
Copilot
npm install -g @github/copilot Confirm the install with copilot --version, then sign in:
copilot login The Copilot CLI documentation has the rest.
node --version before you install.First Launch
The first launch opens the Welcome Screen. Nothing pops up over you, and no wizard takes the window. The Welcome Screen shows one setup nudge at a time, and you decide when to act on it.
Daintree runs as a single instance. Try to open a second copy and it focuses the existing window instead.
Welcome Screen
The Welcome Screen is what you see when no project is open. It shows exactly one nudge at a time, in priority order, so you never face a stack of competing cards:
- Set up your AI agents. A banner with a Set up agents button (opens the wizard) and a Not now link. Dismiss it and it stays dismissed across sessions.
- Installed agents found. After Daintree scans your PATH, if it finds agent CLIs you haven't pinned to the toolbar, this card lists them as chips with a Pin all to toolbar button. It shows up only after the banner is dealt with, when there's at least one launchable agent and none are pinned.
- Getting Started checklist. The inline checklist (covered below) takes over once the cards above are cleared.
Agent Setup Wizard
The wizard never opens itself. It runs only when you ask for it, from the Set up agents banner on the Welcome Screen, the Set Up Agents item in the agent tray, Settings, or the Action Palette. There's no post-creation wizard, so creating a worktree won't trigger it.
It runs in three steps: select your agents, install any that aren't set up yet, and confirm. A step counter in the header tracks where you are.
Step 1: Select agents
Step 1 puts theme selection, system requirements, and agent selection in one view.
At the top is a collapsible System requirements accordion. It's collapsed by default, showing your Git and Node.js versions inline in the header when everything passes. If a required tool is missing, it expands on its own:
- Git (required) and Node.js v18.0.0+ (required) have to be present.
- npm and GitHub CLI are recommended but don't block setup.
After you install a missing tool, click Re-check to update the results.
Below the requirements check is the theme picker, with two cards: Daintree (dark) and Bondi Beach (light). Each card shows a mini UI preview, and clicking one applies it right away. The rest of the themes live in Settings > Appearance.
Next is a Help improve Daintree toggle for anonymous crash reports. No file contents and no credentials are ever included.
The agent list comes last, split into two tiers:
- Featured agents: Claude Code, Gemini CLI, Codex
- More agents: OpenCode, Cursor, Kiro, Copilot
Installed agents float to the top of their tier and are pre-selected. Click Continue to move on, or Skip to close the wizard without changing anything.
Step 2: Install agents
Step 2 installs any agents you selected that aren't already on your system. If everything you picked is already installed, the wizard goes straight to Step 3.
Each agent shows as a card with a status badge: Installed, Installing, Failed, Manual, or Not installed. Click Install on a card to run that agent's install command, or use Install All to run them one after another.
Agents with more than one install method (npm versus Homebrew, for example) carry a method switcher on their card. If an install fails, expand Show error log for the stderr output, or copy the manual install command from the card.
At the bottom is a Skip Permissions section, for agents that can launch without interactive permission prompts. Turn it on per agent to have Daintree launch those agents in skip-permissions mode.
Use Back to return to Step 1 if you need to change your selection.
Step 3: Setup complete
The final step confirms how many agents are ready. Three agents ship with default shortcuts; you bind the rest yourself from Settings > Keyboard Shortcuts.
| Agent | macOS | Windows / Linux |
|---|---|---|
| Claude Code | Cmd+Alt+C | Ctrl+Alt+C |
| Gemini CLI | Cmd+Alt+G | Ctrl+Alt+G |
| Codex | Cmd+Alt+X | Ctrl+Alt+X |
OpenCode, Cursor, Kiro, and GitHub Copilot install fine from the wizard but ship without a default launch shortcut. Assign one in Settings > Keyboard using the Cmd+Alt+letter form. The full list is in Agent Shortcuts.
Click Finish Setup to close the wizard.
Agent Tray Discovery
The agent tray (the plug icon in the toolbar) tracks which agents are available. When it spots a newly available agent you haven't seen, it puts a small blue discovery badge on the tray icon and a New pill next to that agent in the dropdown. The badge holds off while the Installed agents found card is on screen, so the two don't compete for your attention, and it stops flagging an agent after about two weeks even if you never launch it.
The dropdown groups agents into Launch (ready to go), Needs Setup, and Available Agents (the fallback list when nothing is installed yet). At the bottom are Manage Agents, Customize Toolbar, and Set Up Agents. For pinning and managing agents, see AI Agents.
Getting Started Checklist
A short checklist tracks the core Daintree workflows. It shows up in two places:
- Inline on the Welcome Screen. The counter starts at 1/5, because installing Daintree counts as the first item and is already checked for you.
- Floating panel pinned to the bottom-right corner once a project is open. Its counter runs 0/4 through 4/4 over the four workflow items below.
The four workflow items are the same in both places:
- Open your project. Connect a local folder. Clicking it opens the folder picker.
- Ask AI to help with your code. Agents can write code, fix bugs, and answer questions about your codebase. Clicking it opens the agent palette.
- Start a parallel task. Work on two things at once without switching branches. Clicking it opens the create worktree dialog.
- Run two agents in parallel. Start a second agent while the first keeps working. This is the job Daintree is built for. Clicking it opens the create worktree dialog so you can start the second task in its own branch.
Items tick themselves off as you do the matching action, so you never check anything by hand. Each check badge fills accent green with a small pop as it completes. The floating panel stays accent-tinted while there's work left and goes neutral once you're done; the counter switches to accent only at the final All set state.
When all four are done, a short burst of confetti fires from the panel. With reduced motion turned on, you get a single success-tinted flash instead of particles. The checklist doesn't close itself when you finish, so you decide whether to leave it up or put it away.
Keyboard Shortcut Tips
Daintree teaches its shortcuts as you go. Hover over a control for a moment, or tab to it with the keyboard, and a small Tip: chip appears with the shortcut for that action (for example Cmd+K). It shows up before you've used the action and steps back once you know it, so it's there when it helps and quiet when it doesn't. For the full reference and how to customize bindings, see Keyboard Shortcuts.
Opening a Project
Open a project from File > Open Directory (Cmd+O on macOS), or with the project switcher in the toolbar.
A Daintree project has to be a Git repository. Select a directory that isn't one, and Daintree walks you through initializing it:
- Run
git init - Optionally create a
.gitignorefile - Stage all files and create an initial commit
The dialog lets you pick a .gitignore template (Node, Python, Minimal, or None) and decide whether to create an initial commit. A progress log shows each step as it runs.
Once a project is open, Daintree scans for existing worktrees and loads any saved state: terminal sessions, panel layout, recipes.
If you don't have a local copy of the repository yet, you can clone one from inside Daintree. See Cloning a Repository for the details.
Recent Projects
Recently opened projects are under File > Open Recent. They're sorted by the last time you opened them, and each entry shows the project path so you can tell them apart.
Daintree CLI
The daintree command (macOS and Linux only) opens any directory in Daintree straight from your terminal. It works like code . in VS Code. If Daintree is already running, it handles the request internally and opens the directory in a new window rather than launching a second instance.
Installing the CLI
Install the CLI from inside Daintree, via Terminal > Install Daintree Command Line Tool in the menu bar.
On macOS, the install creates a symlink at /usr/local/bin/daintree pointing to the bundled CLI script inside the app. That location is on your PATH by default, so the daintree command is available right away in any new terminal session.
If /usr/local/bin isn't writable (rare on a standard setup), the install falls back to ~/.local/bin/daintree, and you may need to add that directory to your PATH yourself.
daintree CLI isn't available on Windows. The menu item is there but disabled.On Linux, the install creates a symlink at /usr/local/bin/daintree. If that path isn't writable, it falls back to ~/.local/bin/daintree, creating the directory if it doesn't exist.
~/.local/bin is only added to your PATH when the directory exists at login time. If you get "command not found" after installing, add it to your shell profile and start a new session: echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrcAppImage users: Daintree generates a stable wrapper script at ~/.local/share/daintree/daintree-cli.sh rather than symlinking into the AppImage mount, and creates it during CLI installation. If you move the AppImage file elsewhere, re-run Terminal > Install Daintree Command Line Tool to update the wrapper.
.deb package users: The CLI script resolves the Daintree binary from its installed location on its own (/opt/Daintree/daintree-app or your system PATH).
Usage
Once it's installed, open any directory in Daintree from your terminal:
daintree . # Open the current directory
daintree ~/projects/my-app # Open a specific directory
daintree --status # Check if Daintree is running
daintree --version # Print the CLI version
daintree --help # Show usage information The --status flag exits with code 0 when Daintree is running and 1 when it isn't, which is handy for scripting.
daintree command follows the same project-opening rules as File > Open Directory. If the target directory isn't a Git repository, Daintree prompts you to initialize one.