GolemOpen source

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.

  1. Redactalways first
  2. Answer locallyif it can
  3. Compresswhen it pays
  4. 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.

TargetRuns onGood for
golem/mainYour Anthropic accountThe conversation itself
golem/coderOllama, this box or a GPU box on the LANBulk edits, at no token cost
golem/cheapOpenRouter, OpenAI, Gemini, Azure FoundryDrafts and throwaway work
golem/draftYour own Claude Code CLI, spawned locallyWork 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

Free

The whole harness, on your machine, with config on your own disk. No account, no portal, no limits, nothing held back.

Free forever

Install Golem

Free, open source, and it runs entirely on your machine. No account needed.

curl -fsSL https://golem.run | sh

Installs to ~/.local/bin, or via npm if you have Node 22+.

Then

golem init
The script is served over HTTPS from the tagged release on GitHub, and that is the only thing vouching for it. There is no checksum or signature yet, so read it first if that matters to you. Full instructions.

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