Installation & Setup
Install Daintree, set up your AI agents with the first-launch wizard, 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 inside its own isolated Git worktree, so multiple agents work in parallel without stepping on each other's branches. Agents run as CLI processes inside panels you can watch live, and Review Hub is where you inspect, stage, and commit their changes before anything goes upstream. One place to delegate work, watch agents live, and inspect results before anything merges.
If you already run agents from the command line, the mental model maps directly onto what you're doing 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'll need:
- Git — Daintree manages Git worktrees, so Git needs to be installed and on your PATH.
- Node.js v18.0.0+ — Needed for installing agent CLIs via npm. Not required if you install agents through other package managers.
- One or more AI agent CLIs — At least one of the supported agents installed (see below).
Download & Install
Download the latest release for your platform:
| Platform | Format | Architecture |
|---|---|---|
| macOS | DMG / ZIP | Universal (Intel + Apple Silicon) |
| Windows | NSIS Installer / Portable | x64 |
| Linux | AppImage / DEB | x64 |
Open the .dmg file and drag Daintree into your Applications folder. On first launch, macOS may ask you to confirm since the app is from an identified developer.
Run the NSIS installer and follow the prompts. Alternatively, use the portable version, which requires no installation. Just extract and run. Note that the portable build does not support auto-updates, so you'll need to download new versions manually.
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 are automatically visible without restarting your terminal session.
For the integrated terminal, Daintree defaults to PowerShell 7 (pwsh.exe) if installed, then falls back to Windows PowerShell 5 (powershell.exe), and finally to cmd.exe.
The DEB package is the recommended option for Ubuntu and Debian-based distributions. It handles desktop integration, AppArmor sandbox configuration, and PATH setup automatically:
sudo dpkg -i daintree_*.deb The DEB installer creates a /usr/bin/daintree-app symlink and configures an AppArmor profile required for the Chromium sandbox on Ubuntu 24.04+.
Alternatively, use the AppImage on any distribution:
chmod +x Daintree-*.AppImage
./Daintree-*.AppImage sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 This change resets on reboot. To make it persistent, create a file in /etc/sysctl.d/: echo 'kernel.apparmor_restrict_unprivileged_userns=0' | sudo tee /etc/sysctl.d/99-daintree-userns.conf AppImage on Ubuntu 24.04 also requires libfuse2t64: sudo apt install libfuse2t64XDG_SESSION_TYPE at startup and enables native Wayland rendering, window decorations, and IME input support without any flags or environment variables.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 want to use:
Claude Code
npm install -g @anthropic-ai/claude-code Also available via npx @anthropic-ai/claude-code for one-time use without installing globally.
Gemini CLI
npm install -g @google/gemini-cli Codex CLI
npm install -g @openai/codex OpenCode
npm install -g opencode-ai@latest OpenCode can also be installed via 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 | bashAfter installing, run cursor-agent login to authenticate.
Kiro
curl -fsSL https://cli.kiro.dev/install | bash Check the install with kiro-cli --version, then sign in:
kiro-cli login See the Kiro CLI documentation for more.
Copilot
npm install -g @github/copilot Check the install with copilot --version, then sign in:
copilot login See the Copilot CLI documentation for more.
node --version before installing.First Launch
First launch opens the Welcome Screen. An inline banner invites you to run the Agent Setup Wizard, which handles themes, system requirements, and agent installation in three steps. You can skip it and come back later from Settings > CLI Agents > Run Setup Wizard.
Daintree enforces a single instance. If you try to open a second copy, it'll focus the existing window instead.
Welcome Screen
The Welcome Screen is what you see when no project is open. At the top is a dismissible banner titled Set up your AI agents with a Set up agents button and a Not now dismiss link. Clicking Set up agents opens the wizard. Not now hides the banner and it stays dismissed across sessions.
If you already have agent CLIs installed but haven't pinned them to your toolbar, a second card appears: We detected your installed agents. Click Pin all to toolbar to add them in one go.
Agent Setup Wizard
The wizard runs in three steps: select your agents, install any that aren't set up yet, and confirm. A step counter in the header tracks your progress.
Step 1: Select agents
Step 1 combines theme selection, system requirements, and agent selection into 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. It auto-expands if a required tool is missing:
- Git (required) and Node.js v18.0.0+ (required) must be present.
- npm and GitHub CLI are recommended but not blocking.
Use Re-check after installing a missing tool 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 a card applies it immediately. More themes live in Settings > Appearance.
A Help improve Daintree toggle appears next for anonymous crash reports. No file contents or 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 proceed, or Skip to close the wizard without changing anything.
Step 2: Install agents
Step 2 is where any selected agents that aren't already on your system get installed. If everything you picked is already installed, the wizard skips 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 its install command, or use the Install All button to run them one after the other.
Agents with multiple install methods (npm versus Homebrew, for example) have a method switcher on their card. If an install fails, expand Show error log for the stderr output, or copy the manual install command shown on the card.
At the bottom is a Skip Permissions section for agents that support launching without interactive permission prompts. Turn this on per agent if you want Daintree to 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 and lists each one with its keyboard shortcut:
| 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 | Cmd+Alt+O | Ctrl+Alt+O |
| Cursor | Cmd+Alt+U | Ctrl+Alt+U |
| Kiro | Cmd+Alt+K | Ctrl+Alt+K |
| Copilot | Cmd+Alt+H | Ctrl+Alt+H |
Click Finish Setup to close the wizard.
Getting Started Checklist
A short checklist tracks the core Daintree workflows. It shows up in two places:
- Inline on the Welcome Screen, with a progress bar at the top
- Floating panel pinned to the bottom-right corner once a project is open
Both versions show the same four items:
- Open your project. Connect a local folder. Clicking this opens the folder picker.
- Ask AI to help with your code. Agents can write code, fix bugs, and answer questions about your codebase. Clicking this opens the agent palette.
- Start a parallel task. Work on two things at once without switching branches. Clicking this opens the create worktree dialog.
- Run two agents in parallel. Kick off a second agent while the first keeps working. That's the Daintree superpower. Clicking this opens the create worktree dialog so you can start the second task in its own branch.
Items tick themselves off automatically as you do the corresponding action, so you don't need to come back and check them off manually. When all four are done, you'll see a confetti animation and a success toast.
Opening a Project
Open a project via File > Open Directory (Cmd+O on macOS) or by using the project switcher in the toolbar.
Daintree requires projects to be Git repositories. If you select a directory that isn't a Git repo, Daintree will walk you through initializing one:
- Run
git init - Optionally create a
.gitignorefile - Stage all files and create an initial commit
Once a project is opened, 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 directly from Daintree. See Cloning a Repository for details.
Recent Projects
Access recently opened projects via File > Open Recent. Projects are sorted by the last time they were opened, and each entry shows the project path for quick identification.
Daintree CLI
The daintree command (macOS and Linux only) lets you open any directory in Daintree straight from your terminal. It works the same way as code . in VS Code. If Daintree is already running, it handles the request internally and opens the directory in a new window without launching a second instance.
Installing the CLI
Install the CLI from within 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. This location is on your PATH by default, so the daintree command is available immediately 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. You may need to add that directory to your PATH manually.
daintree CLI is not available on Windows. The menu item is present 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 needed).
~/.local/bin is only added to your PATH if 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 instead of symlinking directly into the AppImage mount. This wrapper is created during CLI installation. If you move the AppImage file to a different location, re-run Terminal > Install Daintree Command Line Tool to update the wrapper.
.deb package users: The CLI script automatically resolves the Daintree binary from its installed location (/opt/Daintree/daintree-app or your system PATH).
Usage
Once 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 if Daintree is running and 1 if it isn't, which is useful for scripting.
daintree command follows the same project-opening rules as File > Open Directory. If the target directory isn't a Git repository, Daintree will prompt you to initialize one.