Local-first · open source · Apache-2.0
Your prompts leave home
only when they should.
Golem is a local proxy and MCP server that sits in front of your LLM traffic. Secrets and PII are stripped before anything leaves the machine, every model you can reach is one named target away, and the token numbers you see are the ones you were billed for.
- Redactalways first
- Answer locallyif it can
- Compresswhen it pays
- Routeto the fitting model
Redaction, first and fixed
Secrets and PII are stripped before anything leaves the machine. Its place in the pipeline is not configurable, because a redaction step you can reorder is not one you can rely on.
Every model in one table
Anthropic, OpenRouter, OpenAI, Gemini, Azure Foundry, Ollama and llama.cpp are all just rows: an id, an endpoint, a model, and what it is for. Local is not a special case, it is a row whose provider is Ollama.
Two doors, one engine
A transparent proxy for every request, and an MCP server for explicit tools. Point Claude Code at it and nothing else changes.
A wiki that pays for itself
Skills research, synthesise and promote findings into a project wiki, and a vector index answers from it. A question answered once is not paid for twice.
Telemetry you can argue with
Real billed tokens, not estimates, including the honest answer that compression buys roughly nothing on cached traffic.
Quick enough to forget
The control panel opens in about 170ms and the per-tool-call hook runs in about 126ms, because a layer you notice is a layer you turn off.
Right model, right job
Give each model you can reach a name and a purpose. Frontier models for the thinking, a local box for the grinding, a cheap gateway for the drafts, and the subscription you already pay for instead of a second bill.
| Target | Runs on | Good for |
|---|---|---|
| golem/main | Your Anthropic account | The conversation itself |
| golem/coder | Ollama, this box or a GPU box on the LAN | Bulk edits, at no token cost |
| golem/cheap | OpenRouter, OpenAI, Gemini, Azure Foundry | Drafts and throwaway work |
| golem/draft | Your own Claude Code CLI, spawned locally | Work on a seat you already pay for |
Personas pick their own model
A sub-agent declares model: golem/coder in its definition and every request it makes lands on that target. The definition chooses, not the agent, so a persona's abilities and its cost are decided somewhere you can review them.
Nothing is re-routed mid-conversation
Work is diverted out of band, through a tool call or a sub-agent that branches off with its own model. The conversation's cache prefix is never touched, so spreading work across models cannot quietly cost you the cache.
Trust sets a redaction floor
Each target carries a trust level, and it can only raise how much is redacted. A third-party gateway gets more scrubbing than your own account, never less. Routing widens where your context can travel, so the floor travels with it.
Routes are declared, not guessed
A virtual model id, a header, or a default. First match wins, every level is something a person wrote, and there is no failover path silently spending your money somewhere else when a target says no.
Two ways to run it
Nothing is held back from the free one. The paid tier exists because config a team shares has to be hosted somewhere.
Solo
FreeThe whole harness, on your machine, with config on your own disk. No account, no portal, no limits, nothing held back.
Free forever
Team
Somewhere to host the config your team shares, beyond any one project, and connections to your corporate tools.
TBC / seat / month
The depth is in the repo: architecture, the spec, and what has actually been verified.
Read the README on GitHub