Daintree Assistant
A built-in help pane that runs Claude or Codex inside Daintree, gated by a capability tier you set and recorded in a local audit log.
Overview
The Daintree Assistant is a help pane that runs a real AI coding CLI inside the app. It's the same Claude Code or Codex you already have installed, running against your own subscription. The difference is that this session is pointed at Daintree itself, not at your code.
Ask it how a feature works, have it search the docs, or tell it to drive the app for you. With your permission it can launch agents, create worktrees, run recipes, and rearrange your workspace. It reaches the app through a local MCP server, and every action it can take is gated by a capability tier you set.
The default tier is read and write but never destructive. Every tool call lands in a local audit log you can inspect, export, and clear. Nothing leaves your machine that wasn't already going to the CLI you chose.
Opening the Assistant
There are two ways in:
- Click the Daintree icon in the toolbar (tooltip: "Open Daintree Assistant").
- Press Cmd+L on macOS, or Ctrl+L on Windows and Linux.
The keyboard shortcut is a three-state toggle. The same key does the right thing depending on where your focus is:
- Panel closed: opens the panel and focuses the input.
- Panel open, focus elsewhere: moves focus into the input without closing anything.
- Panel open and focused: closes the panel.
The Assistant always boots hidden when you start the app, so it never launches a CLI before the MCP server is ready. For the full shortcut reference, see Keyboard Shortcuts.
The Panel
The Assistant opens as a push sidebar on the right. It pushes the panel grid over rather than floating on top of it, so your work stays visible while you talk to it.
Drag the left edge to resize. The width runs from 320px to 800px, defaults to 380px, and is remembered across restarts. The keyboard works too once the resize handle has focus: arrow keys move it 10px at a time, Page Up and Page Down move it 50px, and Home and End jump to the minimum and maximum. Escape closes the panel, unless a terminal or editor inside it grabs the key first.
Header controls
The header carries the Daintree icon and the title, an agent-state indicator, and three buttons:
| Control | What it does |
|---|---|
| Help icon | Opens the Assistant documentation. |
| + New session | Stops the current agent, discards the conversation, and relaunches the same agent fresh. Appears only once a session has started. If the agent is working or you've already typed into the conversation, it asks you to confirm first. |
| Close chevron | Hides the Assistant (same as toggling it closed). |
Agent-state indicator
A small marker in the header shows what the agent is doing. It only flags the states worth acting on:
| State | Marker |
|---|---|
| Working | Spinning green circle |
| Directing | Blue circle |
| Waiting | Yellow circle |
| Idle, completed, or exited | No marker |
Toolbar status pips
When the panel is closed, the toolbar button carries a small status pip, so you don't have to open it to know what's happening. There are two kinds. The MCP health pip always wins when both would show:
- MCP health: yellow and pulsing while the MCP server is starting, red if it failed to start (hover for the error). Nothing once it's ready.
- Agent state: shows only when there's no MCP pip and the panel isn't open: green while the agent is working or directing, yellow while it's waiting.
The agent-state pip is read-aware. While the panel is open, Daintree tracks the state you've already seen, so once you close it the pip only flags changes you haven't looked at.
Bottom info bar
The strip at the bottom shows "Using" with the current agent on the left and a link to Daintree.org on the right. Before you've started a session, the panel shows an empty state: "Use Daintree Assistant to configure and navigate Daintree," with links to the Assistant settings and this guide.
Talking to It
The Assistant uses the same input bar as your agent terminals. You get @file autocomplete, /commands, and multi-line editing. Shift+Enter adds a newline, Enter sends. The full feature set is covered in Unified Input.
To start over, use + New session in the header. It ends the current conversation and relaunches the same agent from scratch.
What It Can Do: Capability Tiers
Every action the Assistant can take runs through a capability tier. The tier sets the blast radius: how far a single tool call is allowed to reach before Daintree stops and asks you. Tiers are cumulative. Each one includes everything below it.
| Tier | What it allows | Examples |
|---|---|---|
| Workbench read-only | Read project state but change nothing. 31 tools. | Inspect projects and worktrees, search files, read terminal output and agent state, read git status and diffs, read GitHub issues and PRs. |
| Action read + write (default) | Run the app: spawn agents, send prompts, manage terminals, and rearrange your workspace. Adds 24 tools. | Create worktrees, launch and focus agents, send commands to terminals, run recipes, move panels between the dock and grid, change the theme. |
| System destructive + external | Destructive and outward-facing actions. Reserve for trusted automation. Adds 17 more tools. | Delete worktrees, stage and commit and push git, write the system clipboard, open forge issues and PRs. |
Two of these were broadened in v0.12. The dock actions (terminal.moveToDock, terminal.moveToGrid, terminal.toggleDock) joined the Action tier, so the Assistant can rearrange your layout and act on panels other than itself. The forge actions in the System tier were generalized off GitHub to cover forge CLI commands more broadly.
Seeing the blast radius
The Security settings show a "N actions allowed without prompting" preview for the selected tier, grouped by namespace. At the System tier the riskiest actions (git.push, git.commit, worktree.delete) are pinned under a "high blast radius" heading, so the cost of the choice is in front of you rather than buried in a list.
When a tool needs a higher tier
If the Assistant calls a tool above the project's current tier, it doesn't silently fail and it doesn't silently run. A banner appears ("Tool not permitted"), explains that the tool needs a higher tier, and gives you three choices:
- Approve once: grants this one tool for the rest of the session. Time-bounded, and it doesn't raise the tier.
- Always allow for this project: raises the whole project to the tier the tool needs and writes it to the project settings, so you won't be asked again.
- Cancel: declines, and the tool call stops there.
Settings
Everything lives under Settings → Assistant. Changes apply to new Assistant sessions, not the one currently running.
Agent
Pick the CLI that runs the Assistant. The picker offers Claude and Codex. Switching agents mid-conversation ends the current session, so it asks you to confirm first.
Custom CLI args lets you append flags at launch, for example --model sonnet. Arguments are split on whitespace, sanitized, and applied after a short debounce.
Behavior
- Search documentation (on by default): lets the Assistant search the Daintree docs and changelog when answering.
- Daintree control (on by default): lets the Assistant call Daintree actions through the local MCP server. Turning this on enables the MCP server if it was off.
Hibernation
How long the panel can sit hidden before the Assistant shuts down to free resources. Choose Off, 15, 30 (default), 60, or 120 minutes. What happens when it hibernates is covered in Sessions, hibernation and resume below.
Security
This is where you set the capability tier (Workbench, Action, or System) and see the blast-radius preview described above. The default is Action.
It also holds the Bypass Claude permission prompts toggle, off by default. Turning it on passes --dangerously-skip-permissions to Claude Code and shows an amber warning, because it removes Claude's own per-tool confirmation for every tool. Read the warning in the tiers section above before you reach for it.
Privacy
Audit log retention controls how long Daintree keeps a local record of the Assistant's tool calls: 7 days (default), 30 days, or Off. The log has a viewer with a latency table, copy-as-JSON, export to NDJSON, and a clear button. If an external client connects with a stale key, the count of rejected requests shows up here too.
Connection
Shown only when the MCP server is enabled. It reports the running port, offers a "Copy MCP config" button for pointing external clients at the server, and a "Rotate MCP key" action. Rotating invalidates any existing connections, so it asks you to type the last four characters of the current key to confirm.
Sessions, Hibernation and Resume
Opening the Assistant runs a short startup sequence: launch the CLI, check its version, provision the MCP server, then either resume your last conversation or start a fresh one. If exactly one supported CLI is installed and you haven't picked a preferred agent, it launches that one automatically.
When the panel stays hidden past the hibernation timer and the agent is idle, Daintree shuts the agent down cleanly and captures its resume token. Reopen the panel and the conversation comes back, with a banner confirming it resumed. If the agent is busy when the timer fires, Daintree rechecks every couple of minutes rather than killing work in progress.
Resume tokens are kept per project, so one project's conversation never leaks into another. The session survives minimizing the window, switching away to other projects, and the machine going to sleep. The Assistant also gets a private scratch directory for throwaway files, so it doesn't litter your repo.
For the mechanics behind hibernation and state persistence across the whole app, see Session Management.
Privacy and Trust
The Assistant runs the CLI you already use, authenticated against your own subscription. Daintree doesn't add a new model endpoint and doesn't route your conversation anywhere new.
Every tool the Assistant dispatches is recorded in a local audit log you can read, export, and clear from the Privacy settings. The default capability tier is read and write but never destructive, so destructive and outward-facing actions only happen if you opt into the System tier.
For the broader picture on sandboxing and data storage, see Security & Privacy.
Troubleshooting
| Symptom | What's happening and what to do |
|---|---|
| "Update [agent] to use Daintree Assistant" | Your CLI is older than the Assistant needs. The screen shows the required and installed versions, with a button to Settings → Assistant. Claude needs 1.0.0 or later; Codex has no minimum. |
| Missing CLI | The chosen CLI isn't installed. Daintree offers a "Run anyway" option if you want to proceed regardless. |
| "Daintree Assistant needs MCP, but the server didn't start." | MCP provisioning failed. The error toast carries an "Open settings" action so you can check the Connection section and the MCP server status. |