AI Terminal Agent · Rust 2024 · MCP Native

Your AI Copilot,
always in the terminal

A universal AI agent that lives in your terminal — TUI, CLI, or background daemon. Powered by DeepSeek-V4, wired via MCP, built in Rust.

arcc tui
$ arcc tui
> show me the latest git log
🧠 Let me check the repo...
$ git log --oneline -5
a468c42 docs: add server deployment guide
9ea7e94 Add scheduler and queue design doc
db1a7f0 Bump to 0.8.0
4308bfa Add one-shot task support
b92d94b Fix cron timezone parsing
>

Three modes, one engine

Same core runtime, three surfaces — pick the interface that fits your workflow.

TUI — Interactive Terminal

Full-screen ratatui interface with markdown rendering, spinner animations, multi-turn conversation, slash commands, and tab completion.

multi-turn tool calls session persist 60fps

CLI — One-shot & Pipes

Drop-in replacement for shell commands. Single-prompt execution with tool calling, pipe-friendly output, and JSON mode for programmatic use.

single-turn pipes JSON scriptable

Server — Background Daemon

HTTP server with SSE streaming, Feishu bot integration, scheduled tasks, and Prometheus metrics. Runs 24×7 as a background service.

daemon webhook scheduler metrics

Built for the terminal

Every feature designed for zero-friction automation — no IDE, no browser, just your shell.

Dual-Model Dispatch

DeepSeek-V4-Pro for complex reasoning & orchestration; V4-Flash for high-frequency dialogue and context compression. Automatic routing based on task complexity.

MCP Native

Full Model Context Protocol support — stdio and SSE transports. Register any MCP server as a tool provider. Claude Code can call ARCC as an MCP tool.

Safety Engine

Three-layer defense: command allowlist, risk rating, interactive confirmation. Serde-typed secondary validation prevents LLM injection.

Zero-Dependency Storage

SQLite (bundled, WAL mode) for sessions & messages, TOML for config, JSON Lines for audit. No external databases, no daemons.

Context Compression

Automatic token-budget management. When approaching ~8K tokens, the flash model generates a summary — preserving decisions, dropping redundancy.

Observability

Structured tracing via tokio/tracing, Prometheus metrics export, session replay from SQLite, audit trail in JSON Lines. Debug with confidence.

Cargo workspace

Six crates, clean separation of concerns. The core is model-agnostic — swap providers without touching the rest.

arcc (binary entry · clap routing)
arcc-tui
ratatui · crossterm
arcc-cli
portable-pty
arcc-server
axum · Feishu
arcc-core
ModelProvider · Session · Safety · Tools · MCP · Memory · Prompts
arcc-storage
SQLite · TOML · JSON Lines
Model Provider Interface:
  ModelProviderDeepSeek-V4-Pro (reasoning)
                      DeepSeek-V4-Flash (dialogue)

Persistence (embedded, no external services):
  Config  → TOML    · ~/.arcc/config.toml
  Session → SQLite  · WAL mode, rusqlite bundled
  Audit   → JSONL    · append-only, tail-seekable
  Metrics → Memory   · Prometheus scrape endpoint

Quick start

All you need is a DeepSeek API key.

⧩ install.sh curl → bash
# One-line install $ curl -fsSL https://raw.githubusercontent.com/niyongsheng/arcc/main/scripts/install.sh | bash # Set your API key $ echo '[model]' > ~/.arcc/config.toml $ echo 'api_key = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"' >> ~/.arcc/config.toml # Start the TUI $ arcc tui
⎇ Development cargo
$ cargo build # Debug build $ cargo run -- tui # Launch TUI $ cargo run -- cli "<prompt>" # CLI mode $ cargo build --release # Release build
⊞ MCP Integration Claude Code
# Add to ~/.claude/settings.json: { "mcpServers": { "arcc": { "type": "stdio", "command": "/path/to/arcc-mcp" } } }

See config/config.toml for all available options  ·  Read the README