Skip to main content
Meerkat is provider-agnostic. Your tools, sessions, hooks, and configuration work identically across Anthropic, OpenAI, and Gemini. Switch providers by changing the model name — no code changes. Set an API key for at least one.

Provider setup

export ANTHROPIC_API_KEY="sk-ant-..."
ModelContextMax outputBest for
claude-opus-4-6200K / 1M (beta)128KComplex reasoning, highest quality
claude-sonnet-4-5200K / 1M (beta)64KBalanced performance and cost
claude-opus-4-5200K64KLegacy Opus (still supported)
claude-haiku-4-5200K64KFast, simple tasks
.rkat/config.toml
[agent]
model = "claude-opus-4-6"
max_tokens_per_turn = 16384

Environment variables

VariableFallbackProvider
RKAT_ANTHROPIC_API_KEYANTHROPIC_API_KEYAnthropic Claude
RKAT_OPENAI_API_KEYOPENAI_API_KEYOpenAI GPT
RKAT_GEMINI_API_KEYGEMINI_API_KEY, GOOGLE_API_KEYGoogle Gemini
The RKAT_* variants take precedence over provider-native names, so you can run Meerkat with dedicated keys separate from other tools.

SDK feature flags

When using Meerkat as a Rust library, enable only the providers you need:
FeatureDescriptionDefault
anthropicAnthropic Claude supportYes
openaiOpenAI GPT supportNo
geminiGoogle Gemini supportNo
all-providersAll LLM providersNo
meerkat = { version = "0.1", features = ["anthropic", "jsonl-store"] }

Provider parameters

Provider-specific options can be passed via the --param CLI flag or provider_params in the SDK:
ParameterDescription
thinking_budgetToken budget for extended thinking (integer)
top_kTop-k sampling parameter (integer)
rkat run --model claude-sonnet-4-5 --param thinking_budget=10000 "Solve this problem"

Auto-detection

The provider is automatically inferred from the model name:
  • claude-* models use Anthropic
  • gpt-*, o1-*, o3-*, chatgpt-* models use OpenAI
  • gemini-* models use Gemini
You can override this with --provider on the CLI or provider in API requests.