# Install with Go 1.27+, or download a release build go install github.com/risadams/janus/cmd/janus@latest # Check the setup, then start it janus doctor janus # In another terminal, point Claude Code at it ANTHROPIC_BASE_URL=http://127.0.0.1:8787 ENABLE_TOOL_SEARCH=true claude
Every request, accounted for.
Out of the box Janus only keeps the books. Everything else is a switch you turn on when you want it.
See what every request costs
A ledger line for each request, and janus stats to add them up by kind of request, model, and backend, with prompt-cache hits and cost at list price.
Untouched until you say so
With every feature off, what reaches Anthropic and what comes back match a direct connection. Your login passes through, and is never stored or logged.
Local first, Claude as the net
Send subagent turns to a model in LM Studio. Janus checks each answer before you see it, and hands the turn to Claude when it fails.
Keep working when Claude is down
At a usage limit or an outage, the local model stands in. Janus loads it if needed, queues requests, and fits a long conversation to its context.
Secrets stay on your machine
Credentials it recognises become placeholders before a request leaves, and are put back in the answer. Files you name never reach Anthropic at all.
Kind to the prompt cache
Anything already sent goes out in the same bytes on every later turn, so Claude Code keeps reading from its cache and nothing costs more than it should.