---
title: "Introduction"
description: "Meerkat is a library-first agent engine built in Rust. Provider-agnostic, modular, fast."
icon: "rocket"
---

Meerkat is an agent engine, not an agent product. Claude Code and Codex CLI are finished applications -- Meerkat is what you'd build them on.

It's a set of modular Rust crates that handle the hard parts of agentic systems: state machines, retries, budgets, streaming, tool dispatch, MCP, multi-agent coordination. You bring your own prompts, tools, and opinions. Meerkat handles execution.

## Why Meerkat

- **Fast.** Rust from the ground up. Lean native binaries and embeddable libraries, &lt;10ms cold start in the core path, and no VM/runtime dependency stack.
- **Provider-agnostic.** Same session/config model across Anthropic, OpenAI, and Gemini, with capability-gated differences where model support diverges.
- **Modular.** A workspace of focused crates, all opt-in. Need just the agent loop? Pull in `meerkat-core`. Need session persistence? Add `meerkat-store`. Need inter-agent comms? Add `meerkat-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 and audit. Shell security with allow/deny lists.
- **Multi-agent native.** Independent agents communicate over Ed25519-signed channels, can be organized into mobs, and can keep working as compaction + semantic memory absorb conversations that exceed any single 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, &lt;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 |

Those tools excel at interactive development with rich terminal UIs. Meerkat has no TUI -- it's for automated pipelines, embedded agents, multi-agent systems, and anywhere you need programmatic control over an agent engine.

## Use it from anywhere

<CardGroup cols={3}>
  <Card title="Rust SDK" icon="code" href="/rust/overview">
    Embed as a library.
  </Card>
  <Card title="Python SDK" icon="python" href="/sdks/python/overview">
    Drive from Python.
  </Card>
  <Card title="TypeScript SDK" icon="js" href="/sdks/typescript/overview">
    Drive from TypeScript.
  </Card>
  <Card title="CLI" icon="terminal" href="/cli/commands">
    Run from the terminal.
  </Card>
  <Card title="REST API" icon="globe" href="/api/rest">
    HTTP endpoints.
  </Card>
  <Card title="JSON-RPC" icon="plug" href="/api/rpc">
    Stateful stdio for IDEs.
  </Card>
</CardGroup>

## Get started

The intended onboarding spine is:

`Introduction -> Quickstart -> Examples gallery -> choose a surface or workflow -> Concepts as needed`

<CardGroup cols={3}>
  <Card title="Quickstart" icon="rocket" href="/quickstart">
    Get to a first successful run as fast as possible.
  </Card>
  <Card title="Examples gallery" icon="code" href="/examples/gallery">
    The central real-code hub for choosing a language, surface, or workflow.
  </Card>
  <Card title="Auth setup" icon="key" href="/guides/auth">
    Configure credentials and bindings when you need more than the env-var fast path.
  </Card>
</CardGroup>

## Choose your path

<CardGroup cols={3}>
  <Card title="Rust embedding" icon="code" href="/rust/overview">
    Start here if Meerkat is part of your Rust application.
  </Card>
  <Card title="Python / TypeScript" icon="terminal" href="/sdks/python/overview">
    Start here if you want an SDK-backed product layer.
  </Card>
  <Card title="CLI / APIs" icon="plug" href="/cli/commands">
    Start here if you are operating Meerkat as a practical surface first.
  </Card>
  <Card title="Multi-agent systems" icon="users" href="/examples/mobs">
    Jump here if your main interest is orchestration and long-lived identity-first agents.
  </Card>
  <Card title="Self-hosting models" icon="microchip" href="/guides/self-hosting-models">
    Start here if your first concern is local or self-managed models.
  </Card>
  <Card title="Architecture" icon="layer-group" href="/reference/architecture">
    Start here if you need ownership, rationale, or internal structure first.
  </Card>
</CardGroup>
