Skip to main content

Environment variables

Required API keys (at least one):
VariableProvider
ANTHROPIC_API_KEYAnthropic Claude
OPENAI_API_KEYOpenAI GPT
GOOGLE_API_KEYGoogle Gemini
See providers for the full list of environment variables and RKAT_* overrides.

Config files

ScopePath
User~/.config/rkat/config.toml
Project.rkat/config.toml
Project config overrides user config. CLI flags override both. Precedence: defaults → user config → project config → env vars → CLI flags.
[agent]
model = "claude-opus-4-6"
max_tokens_per_turn = 8192

[budget]
max_tokens = 50000
max_duration = "5m"

[shell]
program = "bash"
timeout_secs = 30

MCP configuration

MCP servers are configured in TOML files:
ScopePath
User~/.rkat/mcp.toml
Project.rkat/mcp.toml
Project servers take precedence over user servers with the same name.
# Stdio server (local process)
[[servers]]
name = "filesystem"
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/dir"]

# Stdio server with environment variables
[[servers]]
name = "database"
command = "python"
args = ["-m", "db_mcp_server"]
env = { DATABASE_URL = "${DATABASE_URL}" }

# HTTP server (streamable HTTP - default for URLs)
[[servers]]
name = "remote-api"
url = "https://mcp.example.com/api"
headers = { Authorization = "Bearer ${MCP_API_TOKEN}" }

# Legacy SSE server
[[servers]]
name = "legacy-sse"
url = "https://old.example.com/sse"
transport = "sse"
Environment variable expansion is supported using ${VAR_NAME} syntax.

Session storage

Sessions are stored in the user’s data directory:
PlatformPath
macOS~/Library/Application Support/meerkat/sessions/
Linux~/.local/share/meerkat/sessions/
Windows%APPDATA%\meerkat\sessions\

Exit codes

CodeMeaning
0Success
1Error
2Budget exhausted (graceful termination)

See also