Crush
What It Is (confidence: medium)
Crush (charmbracelet/crush) is Charm’s “glamourous” terminal-native, multi-model agentic coding CLI — “your tools, your code, and your workflows, wired into your LLM of choice.” 27k stars at capture. Sits in the agentic-coding-CLI class with Claude Code and Grok Build.
Key Points (confidence: medium)
- Multi-model + deep extensibility: MCP servers (stdio/http/sse) with built-in OAuth authorization-code flow (RFC 7591 dynamic client registration, fallback to pre-registered GitHub/Slack), LSPs for extra context, and the Agent Skills standard (
~/.claude/skills/,~/.agents/skills/, project paths;user-invocableanddisable-model-invocationfrontmatter knobs). - Bash-as-config + global context files:
crushrc(a Bash-with-builtins script, cross-platform); long-lived instructions from auto-loadedCRUSH.md(tool-specific) +AGENTS.md(cross-tool) — “personal additions to the system prompt”;crush initanalyzes the codebase and generatesAGENTS.md. - Provider surface is huge and community-driven: ~30 providers via env var + arbitrary OpenAI-/Anthropic-compatible custom providers (
openaivsopenai-compat,--price-input/output,--price-cache-*); local models (ollama, llama.cpp, lmstudio, litellm); metadata auto-updates from Catwalk. - Permission-by-default safety model: granular allow/deny lists,
--yolobypass, skill disabling;crushrc/crush.jsonare trusted code (“crushrcruns in a full shell”); metrics pseudonymous with prompts/responses never collected, opt-out viaCRUSH_DISABLE_METRICS=1/DO_NOT_TRACK. - Shared-workspace multi-client model:
crush servewithIsBusy/AttachedClients,--yolofirst-wins — its analog of multi-session coordination.
Implications (confidence: medium)
Crush is a catalog data point for agentic coding CLI architecture: its global-context-files pattern (CRUSH.md/AGENTS.md) is a direct analog of the claude-code-memory CLAUDE.md hierarchy, and its permission tiering parallels claude-code-best-practices. The price-parameter surface (--price-cache-*, --default-max-tokens) is a cost-modeling lever in the token-usage-reduction space. License is FSL-1.1-MIT (Functional Source License — not OSI open source despite “open source” positioning).
Open Questions
- Old JSON config “still supported, but should be considered deprecated” — internal tension between
crushrcandcrush.json; hooks are “preliminary support.” - Provider/model list auto-updates from community Catwalk database — snapshot-only; example configs hardcode version-sensitive model names; repo metrics will rot.
Related
claude-code-best-practices — nearest agentic-coding-CLI peer claude-code-memory — CRUSH.md/AGENTS.md ≈ CLAUDE.md memory system ai-agents-guide — catalog context for agentic tools grok-build — structural analog: AGENTS.md-style project instruction files claude-code-parallel-agents — shared-workspace multi-client coordination
Sources
- raw/external/github-com-crush-fb00f031.md