Overmind continuously trains & improves your agents, with data from your production traces
The SDK and CLI you install (pip install overmind) are MIT. The platform behind them is AGPL-3.0 and you can self-host it. Details in Licence.
Point it at your agent's codebase and it turns production traces (or any dataset) into a fine-tuned model, benchmarked against the eval metrics you define and served via 1 unified API, with no ML infrastructure to build.
The weights are yours to download, retrain or roll back.
Available from the Console, the overmind CLI, the REST API, and an MCP server for Cursor, Claude Code, OpenCode and Codex. Hosted at console.overmindlab.ai or run it yourself.
| Agent & Capabilities | A graph of your agent — capabilities, prompts, tools, and tasks — scanned from the repo. |
| Observability | OpenTelemetry traces, scored as they arrive and matched to the capability that produced them. |
| Datasets | Production traces or uploaded files become versioned eval and training datasets. |
| Eval | What "good" means per capability, measured on live traces and in batch. |
| Optimisers | Prompt, tool, and control-flow experiments in your repo; the winner is a git diff. |
| Models | Fine-tunes you own, trained on your data and benchmarked against production. |
| Inference | Trained and frontier models on one OpenAI-compatible API. |
Sign up at console.overmindlab.ai, pick your coding agent on Get started — Cursor, Claude Code, OpenCode or Codex — and paste the onboarding prompt into it with your agent's repo open. It installs overmind, runs overmind init and overmind sync, and builds the context graph. From then on everything is a /overmind command in the same chat:
| Command | What it does |
|---|---|
/overmind ensure-tracing |
Inspect traces and instrument the agent |
/overmind dataset |
Build, clean, upload or export a dataset |
/overmind finetune |
Fine-tune, deploy and smoke-test a model |
/overmind optimise |
Run prompt and code optimisation |
/overmind backtest |
Compare models against the agent's own traces |
Self-hosting keeps traces and training data inside your own network. The hosted and self-hosted stacks are the same code.
git clone https://github.com/overmind-core/overmind.git && cd overmind
cp .env.example .env # set the required keys below
docker compose up -d # Postgres, Redis, API on :8000, Console on :5173, Celery workers, beat, Grafana on :3001Document uploads include local English OCR for scanned PDFs, embedded images and direct PNG/JPEG/WebP uploads. Direct images are capped at 100 MB and 64 megapixels; animated images are not supported. The Docker image includes Tesseract and its English/orientation data. For workers or backend tests outside Docker, install tesseract-ocr, tesseract-ocr-eng and tesseract-ocr-osd on Debian/Ubuntu, or brew install tesseract on macOS. No external OCR service is required.
On first boot the API runs migrations and seeds the built-in evaluators; Swagger is at /api/docs/. Sign in at http://localhost:5173 with any email and password. docker compose exec api python manage.py seed_demo --owner <your email> loads a full demo workspace.
What the API needs to boot
The API refuses to start until every required key is set, and the error names each missing one. .env.example documents every key.
| Required | Used for |
|---|---|
OPENROUTER_API_KEY |
Judges, evals, trace scoring, optimiser scoring, frontier inference |
MODAL_TOKEN_ID, MODAL_TOKEN_SECRET |
Modal training and serving workers (set MODAL_ENVIRONMENT explicitly) |
INFERENCE_API_URL, INFERENCE_API_KEY |
Serving trained models — the endpoint printed by modal deploy and its shared secret |
AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_BUCKET_NAME |
The fine-tuning checkpoint archive |
HF_TOKEN |
Gated Hugging Face base models; also set it in the Modal secret |
| Optional | Effect |
|---|---|
OPENAI_API_KEY |
The embedding_cosine evaluator |
STRIPE_SECRET_KEY |
Paid plans and the credit cap; without it, usage is metered with no cap |
Fine-tuning and serving also need the Modal workers deployed (modal deploy overbae/modal/modal_vllm_worker.py, register_model.py and modal_sft_worker.py) and a Modal secret named overmind-inference with the AWS keys, INFERENCE_API_KEY and HF_TOKEN.
Self-hosted login uses email and password. Keep Clerk and Stripe secrets blank. Data Workshop transformations are authored by your native coding agent through MCP; the platform stores source files, immutable cell versions and execution receipts. There is no platform Workshop agent or ChatGPT account connection. Reusable scripts, cross-source revisions and continuous bindings use the dedicated Workshop runtime and package protocol. See self-hosting for configuration and private VM setup.
pip install "overmind[tracing]"
export OVERMIND_API_KEY=ovr_… # project key from Console → Settings; add OVERMIND_API_URL for self-hostimport overmind
overmind.init(
service_name="support-agent", capability_id="<capability-uuid>", providers="auto"
)
@overmind.tool()
def search(query: str) -> list[dict]: ...
def handle(request: dict, session_id: str) -> dict:
with overmind.run(
"support-run", intent=request["question"], conversation_id=session_id
) as run:
answer = agent(request)
run.deliver(answer) # the final output that gets scored
return answerproviders="auto" instruments the LLM SDKs you already use over OpenTelemetry; without a key, tracing is off and nothing breaks. Any OTel exporter can POST /api/v1/traces instead, and existing traces in Langfuse, LangSmith, Braintrust or Galileo can be synced through a connector. Open Observability to see the trace and its score.
Overmind ships an MCP server at /api/mcp/ with tools, resources and prompts for the platform's agent workflows. Account API keys and OAuth connections can access every active project their account is authorized to use: call list_projects, then pass the selected project_id on project tools and resource URIs. Membership is checked on every operation. Project API keys remain limited to their configured project. Every tool declares what it costs to run (free, compute, llm, gpu) and whether it is destructive. Evaluation matrix rows can be deleted through their scoped lifecycle tool.
The optional plugin packages the MCP connection, Overmind branding and nine workflow skills. OAuth connections remain authorized until revoked; access tokens expire after one hour and refresh tokens rotate. Direct MCP connections can use an API key without OAuth or a plugin.
overmind init --ide <cursor|claude|opencode|codex> prepares the local configuration and overmind sync installs the repository's project API key. To configure an API key by hand:
Cursor — .cursor/mcp.json
{
"mcpServers": {
"overmind": {
"url": "https://api.overmindlab.ai/api/mcp/",
"headers": { "X-Api-Key": "ovr_…" }
}
}
}Claude Code
claude mcp add --transport http overmind https://api.overmindlab.ai/api/mcp/ --header "X-Api-Key: ovr_…"OpenCode — opencode.json
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"overmind": {
"type": "remote",
"url": "https://api.overmindlab.ai/api/mcp/",
"enabled": true,
"headers": { "X-Api-Key": "ovr_…" }
}
}
}Codex — .codex/config.toml
[mcp_servers.overmind]
url = "https://api.overmindlab.ai/api/mcp/"
http_headers = { "X-Api-Key" = "ovr_…" }What the tools cover
| Domain | Tools |
|---|---|
| Projects | list_projects |
| Observability | inspect_capability_health, query_failures, query_traces, query_task_executions, get_job |
| Datasets | list_datasets, inspect_dataset, query_dataset, create_dataset_from_traces, create_dataset_from_llm_calls, inspect_dataset_workbench, save_dataset_pipeline, run_dataset_pipeline, import_dataset_version, update_dataset |
| Evaluations | check_evaluation_readiness, upsert_evaluator, run_evaluation, compare_evaluations, annotate_evaluation_sample |
| Training | check_finetune_readiness, estimate_finetune, start_finetune, retry_deployment, set_active_model, run_inference, get_model_swap_prompt |
| Optimiser | check_optimizer_readiness, start_optimizer, inspect_optimizer_result |
| Connectors | inspect_connectors, configure_connector, sync_connector |
| Instrumentation | get_instrumentation_plan, verify_instrumentation |
| Catalog | get_model_catalog |
Prompts such as investigate-capability, finetune-capability and ship-model chain the tools into complete workflows.
For a self-hosted instance, replace the host with your API URL (http://localhost:8000 locally). Keys are written to git-ignored files only; overmind sync will not write a key into a tracked file.
Open an issue, or a PR from a feature branch using .github/PULL_REQUEST_TEMPLATE.md — main is protected and AGENTS.md describes how we work. Questions go to the Discord.
The SDK and CLI send anonymous usage analytics to PostHog — one cli.invoked event per CLI run and sdk_init on library use; never prompts, trace contents, keys or dataset contents. Opt out with OVERMIND_ANALYTICS_ENABLED=false or DO_NOT_TRACK=1; analytics is also off when CI is set. Your traces go only to your own project.
This repository contains two licences. The platform (overbae/, frontend/, and everything else outside overmind/) is AGPL-3.0; the root LICENSE file is the verbatim AGPL-3.0 text. The SDK, CLI and client libraries under overmind/ are MIT. Copyright (c) 2026 Overmind Ltd. A commercial licence is a paid alternative from Overmind Ltd if you need different terms — support@overmindlab.ai.