Cache-first loop
Append-only history. No in-place mutation, no marker-based compaction. The byte prefix survives every tool call — DeepSeek's prefix-cache keeps hitting turn after turn.
Engineered around DeepSeek's prefix-cache so token costs stay low across long sessions. Custom cell-diff renderer. MCP first-class. Open source.
$ npx reasonix code
The loop is organized around four architectural pillars. Each one solves a problem generic agent frameworks don't even see — because they were designed for a different cache mechanic.
Append-only history. No in-place mutation, no marker-based compaction. The byte prefix survives every tool call — DeepSeek's prefix-cache keeps hitting turn after turn.
Distills reasoning_content into a typed plan state — subgoals,
hypotheses, uncertainties, rejected paths. Signal kept, noise dropped.
Schema flatten · JSON repair · scavenge from <think> ·
truncation. Four strategies that handle DeepSeek-specific quirks generic
loops mistake for model errors.
Cache-safe folding · aggressive-fold tier · summary-on-exit · model-aware budgets. The loop manages context size without breaking prefix stability.
Every layer is tuned around DeepSeek's specific cache mechanic and pricing. Coupling to one backend is the feature, not a limitation.
MIT licensed and community-developed. Scoped good first issue
tickets with code pointers and acceptance criteria. Real PRs from real
contributors.
Sign up at platform.deepseek.com and create a key.
No install needed.
cd my-project
npx reasonix code
First run walks you through a short wizard — paste API key, pick a preset, optionally attach MCP servers.
The agent proposes edits as reviewable blocks — nothing hits disk until
you /apply. Plan mode lets you stage multi-file changes
before committing any.
Requires Node ≥ 22. macOS, Linux, Windows (PowerShell · Git Bash · Windows
Terminal). Press Esc anytime to abort; /help for the
full slash-command list.
Twelve concrete capabilities. The loop is the foundation; everything below is what you get on top of it.
Custom TUI runtime built on Yoga. No Ink dependency. Wide-char, emoji, bracketed paste, and resize handled cleanly across platforms.
Stdio and Streamable HTTP transports. Tools, resources, and prompts.
In-app browser to inspect any server's surface, plus
--mcp "name=cmd" on the fly.
Review proposed edits before they touch disk. Approve, refine, or reject. Plan checkpoints persist across runs so you can resume mid-review.
allow · ask · deny per-tool.
Granular shell command rules. Interactive prompts you can teach.
Companion web view at localhost. Live cache hit rate, cost
ticker, session timeline, MCP health — all in one place.
Per-workspace, named, resumable. --resume picks up exactly
where you left off — system prompt, history, plan state.
Shell commands fire on lifecycle events. Drop-in skill packs spawn sub-agents. Project memory the agent reads on every turn.
reasonix index builds an embedding index your agent can
query. Local Ollama or DeepSeek-hosted embeddings.
Cursor-style session-scoped rollback for AI edits. Never pollutes git history; the checkpoint stack is yours alone.
/effort knob
Switch reasoning depth per turn. max for the gnarly,
low for routine. Slash command and CLI flag.
reasonix replay plays a recorded session back through the
renderer — useful for bug reports, demos, and audits.
events.jsonl sidecar with reducers and a
reasonix events CLI. Build dashboards, audits, or your own
analytics.
One JSON file at ~/.reasonix/config.json, plus per-project
overrides under .reasonix/. Point. Click. Wire in your stack.
stdio · SSE · Streamable HTTP. One spec format for both
config.json and --mcp.
Markdown playbooks the model invokes. Inline or sub-agent. Project overrides global.
Read →User-private knowledge pinned into the prefix. Global + project scopes. Four typed shapes.
Read →Shell commands on lifecycle events. Pre/post tool, prompt submit, stop. Exit-2 to block.
Read →Per-workspace shell allowlist. Exact-prefix match. Interactive "always allow" persists.
Read →
Mojeek by default, no setup. Switch to self-hosted SearXNG with
/search-engine.
npx reasonix code [path] # coding mode scoped to path
npx reasonix chat # interactive chat (saved config)
npx reasonix run "ask anything" # one-shot, streams to stdout
npx reasonix doctor # environment health check
npx reasonix replay <file.jsonl> # re-render a recorded session
npx reasonix diff a.jsonl b.jsonl # compare two transcripts
npx reasonix events <name> # query the event log
npx reasonix stats # cross-session usage
npx reasonix index # build semantic embedding index
npx reasonix mcp inspect <spec> # probe one MCP server
npx reasonix mcp list # list configured MCP servers
npx reasonix prune-sessions # clean up old sessions
Common flags:
--effort <max|high|medium|low> # reasoning depth for the run
--model <id> # explicit DeepSeek model id
--mcp "name=cmd args…" # attach an MCP server (repeatable)
--session <name> # named session
--resume # pick up the latest session for this workspace
--new # force a fresh session, preserve old
--no-config # ignore ~/.reasonix/config.json (CI)
Reasonix is open source and community-developed. Every avatar on the wall below is a real PR that shipped — not a sponsorship slot.