Claude Code
Install, authenticate, and resume Anthropic's Claude Code inside Daintree, including provider templates and launch-assigned session IDs.
Claude Code
Claude Code is Anthropic's CLI coding agent. It runs as a process in its own Daintree terminal panel with full PTY emulation, like every other built-in agent.
| Command | claude |
|---|---|
| Shortcut | Option-Command-C Control-Alt-C Control-Alt-C |
| Color | Terracotta (#CC785C) |
| Bundled context estimate | 200,000 tokens |
| Default rendering | Alt-screen (Claude Code has no inline flag) |
| Permission bypass | --dangerously-skip-permissions |
| Platforms | macOS, Windows, Linux |
Install & Authenticate
Anthropic's native installer is the recommended path. The npm package installs the same binary and is what Daintree offers from the in-app install prompt.
curl -fsSL https://claude.ai/install.sh | bash Or with npm: npm install -g @anthropic-ai/claude-code.
irm https://claude.ai/install.ps1 | iex Or with npm: npm install -g @anthropic-ai/claude-code.
curl -fsSL https://claude.ai/install.sh | bash Or with npm: npm install -g @anthropic-ai/claude-code.
Run claude once and follow the browser prompts. Claude Code needs a Pro, Max, Team, Enterprise, or Console account; setting ANTHROPIC_API_KEY works too. Daintree reads that state from ~/.claude.json, ~/.claude/config.json, or ANTHROPIC_API_KEY to decide whether the agent shows as ready.
Daintree also probes the native installer's own locations — ~/.local/bin/claude on macOS and Linux, %LOCALAPPDATA%\claude-code\bin\claude.exe on Windows — so a native install is still detected when the Electron process inherits a PATH that misses it.
How Daintree Launches It
Claude Code declares no inline-rendering flag, so it takes the alternate screen buffer the way its own CLI does, whatever the global "use alt-screen mode by default" switch says. Turning on permission bypass adds --dangerously-skip-permissions to the launch.
Six provider templates ship with the agent: Anthropic (native), Z.AI, OpenRouter, DeepSeek, Ollama, and a custom OpenAI-compatible endpoint. Create a preset From template and the non-secret environment variables (base URL, model aliases, timeout) are pre-filled, with API key fields left blank for you. See Presets.
Daintree's unified input completes Claude's / commands from its built-in catalog plus the custom commands and skills it finds under .claude/commands and .claude/skills, honoring CLAUDE_CONFIG_DIR. /goal is offered for Claude Code and Codex alike.
Subagents
When a Claude Code session delegates work with its Task tool, the children show up in the panel header as a count you can open and read. Claude Code writes each child's transcript as a JSONL file, with a small sidecar, inside its own per-session folder under ~/.claude/projects/; Daintree reads those files and never writes to that store. Because Daintree minted the session ID at launch, the parent is an exact lookup, so the list is never ambiguous the way a folder-and-recency match would be.
What the files can't say, Daintree doesn't claim. There is no completion record — the transcript simply stops — so a child reads Done only when its last turn ended cleanly, Working while the file is still changing, and Unknown once it goes quiet. Never Error: a file that stopped mid-tool-call looks the same whether the child failed or is still running. Claude Code is also the only provider that records a spawn depth, so a row can say how far down the tree a child sits once it is past the first level. One thing to check if the header never shows a count: Daintree resolves the store from its own environment, so a preset or shell profile that exports a different CLAUDE_CONFIG_DIR to Claude Code alone leaves the list empty rather than wrong. The mechanism, the status vocabulary, and the transcript view are covered in full under Subagents in the Header.
Resuming Sessions
Daintree mints the session ID itself and hands it to Claude Code at launch with --session-id <uuid>, rather than scraping it back out when the session ends. That is why a Claude session survives a crash, a force quit, or a SIGKILL: the ID was recorded before the CLI ever produced output.
Later relaunches reuse that same ID with claude --resume <session-id>. An ID can only be assigned to a new conversation, so Daintree assigns once and resumes thereafter. If the ID is lost anyway, the fallback is --continue, which reopens Claude's most recent session in that directory. For the resume mechanics across all agents, see Session Resume.
~/.claude/projects/, keyed by the working directory. Move or rename a project and the old conversation can't be resumed at the new path. Daintree warns about that in the move-or-rename preview rather than letting you discover it afterwards.claude isn't detected after install, confirm it's on your PATH (which claude on macOS/Linux, where claude on Windows), then restart Daintree. See Agent Availability for the five detection states.Integration reference
This guide describes Daintree's checked-in integration. Its agent definition records the launch command, install guidance, authentication probes, rendering capabilities, and resume support. Authentication badges report local evidence; the CLI still owns sign-in and provider access. After changing an installation, use Re-check in Settings > CLI Agents; restart Daintree if its inherited PATH has changed.