Skip to main content

Crush

Install and authenticate Charm's Crush inside Daintree, including provider env vars and why Daintree does not resume Crush sessions.

Updated
Reviewed

Crush

Crush is Charm's terminal-native agent, built on the Bubble Tea TUI framework. It runs as a process in its own Daintree terminal panel with full PTY emulation, like every other built-in agent.

Commandcrush
Shortcut— (assignable in Keyboard settings)
RenderingAlt-screen, always — Bubble Tea needs it to draw at all
ResumeNone. Daintree captures no session ID for Crush
Quit command— (no slash-quit; Daintree closes the process)
Permission bypass--yolo
PlatformsDaintree ships install commands for macOS and Linux

Install & Authenticate

brew install charmbracelet/tap/crush
# or
go install github.com/charmbracelet/crush@latest

Daintree carries no built-in Windows install command for Crush. Charm does publish Windows builds — winget install charmbracelet.crush or npm install -g @charmland/crush — and Daintree will detect the binary once it's on PATH.

brew install charmbracelet/tap/crush
# or
go install github.com/charmbracelet/crush@latest

Authenticate by editing ~/.config/crush/crush.json, or set ANTHROPIC_API_KEY, OPENAI_API_KEY, or GOOGLE_API_KEY in your environment — Daintree accepts either as proof of auth. To control Crush's provider-catalog refresh yourself, add CRUSH_DISABLE_PROVIDER_AUTO_UPDATE=1 to its agent environment or a preset. A registry suggestion is not an automatically injected environment value.

Resuming Sessions

Daintree does not resume Crush. Crush has no slash-quit command, and Ctrl+C opens a confirmation dialog rather than exiting, so there is no clean shutdown moment at which a session ID could be captured — the agent registry therefore declares no resume path and every launch starts fresh. This describes Daintree's integration. A resume option in an installed Crush release does not become part of Daintree's restore flow until the integration declares it.

What Daintree still keeps is the panel: scrollback is serialized to disk and replayed on restart, and the panel's position in the grid survives a project switch. See Session Management for what persists.

Launch flags, custom presets and display titles are covered in Agent Presets. What the working, waiting and exited badges on a running agent mean is covered in Agent States.

Tip
If crush isn't detected after install, confirm it's on your PATH, then restart Daintree. A go install build lands in ~/go/bin, which isn't on PATH for a GUI-launched process — Daintree probes that path directly for exactly that reason.

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.