Global runtime scope flags
All CLI commands accept realm scope flags:--realm <id>--instance <id>--realm-backend <sqlite|redb|jsonl>(creation hint only)
Default realm behavior
| Command surface | Default when --realm is omitted |
|---|---|
rkat run, rkat resume, rkat sessions ... | Workspace-derived stable realm (ws-...) |
rkat mob ... | Workspace-derived stable realm (ws-...) |
rkat-rpc | New opaque realm (realm-...) |
--realm to both.
Environment variables
Required API keys (at least one):| Variable | Provider |
|---|---|
ANTHROPIC_API_KEY | Anthropic Claude |
OPENAI_API_KEY | OpenAI GPT |
GOOGLE_API_KEY / GEMINI_API_KEY | Google Gemini |
RKAT_* variants included).
Config files
Canonical runtime config for CLI commands is realm-scoped (<realm>/config.toml under platform data dir).
Compatibility files still exist:
| Scope | Path |
|---|---|
| User | ~/.rkat/config.toml |
| Project | .rkat/config.toml |
rkat init) and compatibility workflows, but realm config is the runtime source of truth for CLI/RPC/REST/MCP surfaces.
Session storage layout
Realm storage lives under platform data dir:- macOS:
~/Library/Application Support/meerkat/realms/<realm>/ - Linux:
~/.local/share/meerkat/realms/<realm>/ - Windows:
%APPDATA%\meerkat\realms\<realm>\
realm_manifest.json(backend pinning)config.toml(realm config)sessions.sqlite3(when backend is sqlite)sessions.redb(when backend is redb)sessions_jsonl/(when backend is jsonl)mob_registry.json(CLI mob registry)mob_registry.lock(CLI mob registry lock)
--realm-backend is a creation hint. After first realm creation, backend selection is pinned by realm_manifest.json.
This applies to both session storage and rkat mob command behavior in that realm.
When SQLite support is compiled in, new persistent realms default to sqlite.
MCP configuration
MCP servers are configured separately from realm runtime state:| Scope | Path |
|---|---|
| User | ~/.rkat/mcp.toml |
| Project | .rkat/mcp.toml |
Exit codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Internal error |
| 2 | Budget exhausted (CLI) or invalid params (contracts) |
| 10 | Session not found |
| 11 | Session busy |
| 12 | Session not running |
| 20 | Provider error |
| 21 | Budget exhausted |
| 22 | Hook denied |
| 30 | Agent error |
| 40 | Capability unavailable |
| 41 | Skill not found |
| 42 | Skill resolution failed |
