Skip to main content

Claude Code

Install, authenticate, and resume Anthropic's Claude Code inside Daintree, including provider templates and launch-assigned session IDs.

Updated
Reviewed

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.

Commandclaude
ShortcutOption-Command-C Control-Alt-C Control-Alt-C
ColorTerracotta (#CC785C)
Bundled context estimate200,000 tokens
Default renderingAlt-screen (Claude Code has no inline flag)
Permission bypass--dangerously-skip-permissions
PlatformsmacOS, 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.

Note
Claude Code keeps its transcripts per-folder under ~/.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.
Tip
If 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.