Why Meerkat
- Fast. Rust from the ground up. Single 5MB binary, <10ms cold start, ~20MB memory. No runtime, no garbage collector, no dependency tree to manage.
- Provider-agnostic. Same code, same tools, same sessions across Anthropic, OpenAI, and Gemini. Switch models with a config change. Run a Claude parent that spawns GPT sub-agents.
- Modular. Twelve crates, all opt-in. Need just the agent loop? Pull in
meerkat-core. Need session persistence? Addmeerkat-store. Need inter-agent comms? Addmeerkat-comms. Your binary includes only what you use. Disabled features return typed errors, not panics. - Stable. Deterministic state machine with defined transitions. Typed errors with compile-time guarantees. Every error code maps to a stable string across JSON-RPC, REST, and CLI exit codes.
- Controlled. Hard budget limits on tokens, wall-clock time, and tool calls. Eight hook points for guardrails, audit, and content rewriting. Shell security with allow/deny lists.
- Multi-agent native. Sub-agents spawn on different providers with isolated budgets. Independent agents communicate over Ed25519-signed channels. Compaction + semantic memory handles conversations that exceed any context window.
How it compares
| Meerkat | Claude Code / Codex CLI / Gemini CLI | |
|---|---|---|
| Design | Library-first, modular crates | CLI-first, SDK bolted on |
| Modularity | Compose only what you need | Monolithic, all-or-nothing |
| Performance | Single 5MB binary, <10ms startup, ~20MB RAM | Runtime + dependencies |
| Languages | Rust core + Python & TypeScript SDKs | TypeScript or Python |
| Surfaces | CLI, REST, JSON-RPC, MCP server, language SDKs | Rich interactive TUI |
| Multi-agent | Native Ed25519-authenticated P2P messaging | No |
| Memory | HNSW semantic indexing + auto-compaction | File-based context |
Use it from anywhere
Rust SDK
Embed as a library.
Python SDK
Drive from Python.
TypeScript SDK
Drive from TypeScript.
CLI
Run from the terminal.
REST API
HTTP endpoints.
JSON-RPC
Stateful stdio for IDEs.
