Skip to content

Installation

  • Rust 1.75+ (MSRV — Minimum Supported Rust Version)
  • Tokio runtime (TraitClaw is async-first)
Terminal window
cargo add traitclaw traitclaw-openai-compat tokio anyhow

This gives you the core framework with the OpenAI-compatible provider (works with OpenAI, Ollama, Groq, Mistral, and vLLM).

The traitclaw meta-crate re-exports everything through feature flags:

[dependencies]
# Minimal — just core + macros + OpenAI-compatible provider
traitclaw = "1.0"
# With specific features
traitclaw = { version = "1.0", features = ["steering", "sqlite", "mcp"] }
# Everything
traitclaw = { version = "1.0", features = ["full"] }
FeatureCrateDefaultDescription
openai-compattraitclaw-openai-compatOpenAI, Ollama, Groq, Mistral, vLLM
macrostraitclaw-macros#[derive(Tool)] proc macro
steeringtraitclaw-steeringGuards, Hints, Trackers
sqlitetraitclaw-memory-sqliteSQLite persistent memory
mcptraitclaw-mcpModel Context Protocol client
ragtraitclaw-ragRAG pipeline (BM25, embeddings)
teamtraitclaw-teamMulti-agent orchestration
evaltraitclaw-evalEvaluation & benchmarking
strategiestraitclaw-strategiesReAct, CoT, MCTS reasoning
fullAll of the aboveEverything
Terminal window
export OPENAI_API_KEY="sk-..."
use traitclaw_openai_compat::OpenAiCompatProvider;
let provider = OpenAiCompatProvider::openai("gpt-4o-mini", std::env::var("OPENAI_API_KEY")?);
Terminal window
cargo add traitclaw-anthropic
export ANTHROPIC_API_KEY="sk-ant-..."
use traitclaw_anthropic::AnthropicProvider;
let provider = AnthropicProvider::new("claude-sonnet-4-20250514", std::env::var("ANTHROPIC_API_KEY")?);

No API key needed — just run Ollama locally:

Terminal window
ollama pull llama3.2
use traitclaw_openai_compat::OpenAiCompatProvider;
let provider = OpenAiCompatProvider::ollama("llama3.2");
// Groq
let provider = OpenAiCompatProvider::groq("llama-3.3-70b-versatile", groq_key);
// Mistral
let provider = OpenAiCompatProvider::new("https://api.mistral.ai/v1", "mistral-large", key);
// Any OpenAI-compatible endpoint
let provider = OpenAiCompatProvider::new("http://localhost:8000/v1", "my-model", "no-key");