Skip to main content

Every feature built for developers who ship

CruxCLI is a provider-agnostic terminal AI coding agent with 24 task-specific modes, per-mode token budgets, workspace checkpoints, client/server architecture, LSP integration for 30+ languages, and MCP plugin support. 1,204 tests passing, 13/13 packages typechecking.

Mode → Model Tier Mapping

24 task-specific modes each map to a model tier. When you ask CruxCLI to review code, it picks a strong reasoning model. When you ask it to format imports, it picks a fast cheap model. You control cost without micromanaging model selection.

No other terminal agent does this. OpenCode, Claude Code, Gemini CLI, and Codex CLI all use a single model for every task regardless of complexity.

cruxcli.jsonc

{
  "modes": {
    "code-review": {
      "tier": "strong",    // Opus, GPT-5, Gemini Ultra
      "budget": 50000
    },
    "format": {
      "tier": "fast",      // Haiku, GPT-4o-mini, Flash
      "budget": 5000
    },
    "debug": {
      "tier": "strong",
      "budget": 80000
    }
  }
}

Token Budget System

Per-mode token budgets replace step-count limits. Every mode has a configurable token budget with a warning threshold at 75% and a hard limit at 90%. When the agent approaches the limit, it wraps up gracefully instead of stopping mid-edit.

Step counts are a blunt instrument: 10 tool calls might use 500 tokens or 50,000. Token budgets measure actual cost.

Token budget in action

> debug failing test in auth module

Mode: debug (tier: strong, budget: 80,000 tokens)
[============================----]  72% (57,600 / 80,000)
⚠ Approaching token limit — wrapping up

Found: race condition in session refresh.
Applied fix, all 47 auth tests pass.
Tokens used: 63,200 / 80,000

Workspace Checkpoints

Before every destructive tool call (edit, write, bash, patch), CruxCLI takes a git-based snapshot. Up to 50 checkpoints per project. Restore to any point with cruxcli checkpoint restore.

Not a full file copy. Built on git tree hashing for minimal storage overhead. Your project stays clean.

Terminal

$ cruxcli checkpoint list
#  Time       Mode      Files Changed
1  14:23:01   refactor  src/auth/index.ts, src/auth/session.ts
2  14:22:45   debug     src/server/routes.ts
3  14:21:30   code      src/cli/cmd/run.ts

$ cruxcli checkpoint restore 2
Restored workspace to checkpoint #2 (14:22:45)

Client/Server Architecture

CruxCLI starts a local HTTP server (Hono-based, port 4096). The TUI, web app, desktop app (Tauri/Electron), and VS Code extension all connect as clients. Run the agent on a remote machine and drive it from your phone.

Only CruxCLI and OpenCode have this architecture. Claude Code, Gemini CLI, and Codex CLI are monolithic processes.

Architecture

cruxcli serve  →  HTTP server on :4096

Clients:
  ├── TUI         (cruxcli — default)
  ├── Web UI      (http://localhost:4096)
  ├── VS Code     (CruxCLI extension)
  ├── Desktop     (Tauri / Electron)
  └── Custom      (any HTTP client)

LSP Integration

Built-in Language Server Protocol client supporting 30+ language servers. The agent gets real diagnostics, symbol lookup, and go-to-definition — not just string matching. Auto-detects the right server per language.

Only CruxCLI and OpenCode have LSP integration. Every other terminal agent relies on regex and string matching for code understanding.

LSP diagnostics in agent context

> fix type errors in session module

LSP: typescript-language-server
3 diagnostics found:
  src/session/index.ts:42 — Type 'string' not assignable to 'SessionId'
  src/session/llm.ts:108 — Property 'model' missing
  src/session/status.ts:23 — Argument of type 'null'

Fixing all 3... Done. 0 diagnostics remaining.

Plugins and MCP

Full MCP (Model Context Protocol) client supporting stdio, SSE, and StreamableHTTP transports. Connect external tool servers, databases, APIs. Plugin API lets packages contribute custom tools and hook into the execution lifecycle.

Built-in plugins for Codex auth, Copilot auth, and GitLab auth. Add third-party plugins with cruxcli plugin add.

cruxcli.jsonc — MCP config

{
  "mcp": {
    "playwright": {
      "command": "npx",
      "args": ["@playwright/mcp-server"],
      "transport": "stdio"
    },
    "postgres": {
      "url": "http://localhost:3001/sse",
      "transport": "sse"
    }
  }
}

Provider-Agnostic

Works with 75+ LLM providers out of the box. Anthropic, OpenAI, Google, Azure, Bedrock, Vertex, OpenRouter, xAI, Mistral, Groq, DeepInfra, Cerebras, Cohere, TogetherAI, Perplexity, Ollama, and more. Runtime model fetching from models.dev with offline fallback.

Switch providers by changing one environment variable. No code changes, no config rewrites.

Switch providers in seconds

# Use Anthropic
export ANTHROPIC_API_KEY=sk-ant-...
cruxcli

# Use OpenAI instead
export OPENAI_API_KEY=sk-...
cruxcli

# Use a local model via Ollama
export OLLAMA_HOST=http://localhost:11434
cruxcli

CruxDev Integration

CruxCLI connects to the CruxDev convergence engine via MCP. CruxDev drives autonomous audit-fix-re-audit loops — the agent doesn't stop when it thinks it's done, it stops when two consecutive independent clean passes confirm it's done.

No other terminal agent has a convergence methodology. They all rely on the user to decide when code is complete.

CruxDev convergence loop

> converge BUILD_PLAN_001

Round 1: 12 issues found, 12 fixed
Round 2: 3 issues found, 3 fixed
Round 3: 0 issues found ✓
Round 4: 0 issues found ✓

Converged — two consecutive clean passes.
All 1,204 tests passing.

CruxCLI vs generic agents

Feature comparison based on publicly available documentation as of March 2026.

Feature CruxCLIOpenCodeClaude CodeGemini CLICodex CLI
Open source
Provider-agnostic
Mode → model tier mapping
Token budget system
Convergence engine
Workspace checkpoints Worktree
Client/server architecture
LSP integration
Plugin API
Custom modes 24 modes Plan Mode
MCP support
VS Code extension

Data sourced from official documentation and GitHub repositories. Last verified March 2026. See detailed comparisons →

Try CruxCLI today

One command to install. Bring your own API key. Start building.