it’s smart. it’s in the wires. it’s already in prod. Run Claude Code on any model, with a budget. gremlord wraps Claude Code in a thin local router. Same TUI, same tools, same auto-updates — Anthropic runs byte-faithful passthrough, while OpenAI, xAI, and any OpenAI-compatible endpoint (Ollama, vLLM, OpenRouter) work through full request/stream translation. Every token is metered, priced, and checked against a budget you set. A cheap classifier picks the model for each turn, filtered by which models can actually hold the request; a second, independent pass flags tasks that want a recurring loop instead of a single reply. And now, sessions find and message each other by name. What Claude Code alone doesn't do. It's a great harness and it keeps getting better — forking it means losing that. But it only talks to one provider, and it never tells you what a session cost. Two dialects, every provider Anthropic runs byte-faithful passthrough. Everything else — OpenAI, xAI, Ollama, vLLM, OpenRouter, a local llama.cpp server — works through the same request/stream translation. Model names are aliases you define in config.yaml.

Every token priced A local SQLite log prices every request as it happens. gremlord cost --by model breaks spend down by model, profile, or session.

Budgets that actually stop you Daily, weekly, monthly caps, global or per profile. Hit one and the router refuses the next request with a clear message in the TUI — in-flight responses are never cut. Two classifiers watch every turn --model auto sends planning to a big model and mechanical edits to a cheap one, sticky for the whole turn. The same classifier call can also name a task specialist — see task routing below. A second, independent pass, Auto Goal, flags tasks...