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.

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

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. Daintree also sets CRUSH_DISABLE_PROVIDER_AUTO_UPDATE=1 on launch so Crush doesn't race a provider-catalog download every time a panel opens.

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. Crush's own --continue flag is not part of its stable CLI surface yet; when it is, this changes.

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.