Your coding agent.
Your machine.
Your rules.
A terminal coding agent you run yourself — fully local and offline for total privacy, or wired to OpenRouter's entire catalogue with a key you control. No daily limits. Your code never leaves your machine.
“You've hit your daily limit.”
The moment you get into flow, the hosted tools tap out. And the daily cap isn't the only tax you're quietly paying.
Daily limits
Claude Code and Codex lock you out mid-task. Your throughput is capped by someone else's quota, not your ambition.
Your code leaves
Every file, prompt and secret is uploaded to a vendor's cloud. For proprietary code, that alone is a non-starter.
Vendor lock-in
One provider, one model, one price. No fallback when it's slow, down, or quietly discontinued.
One harness. Two modes.
A real terminal coding agent that's yours — it reads, edits, runs and searches your code. Point it wherever you want the intelligence to come from.
Private by default
- Ollama · LM Studio · llama.cpp · vLLM
- Code never touches the network — at all
- $0 per token, unlimited runs
- Works on a plane, in a vault, anywhere
The whole catalogue
- Claude · GPT · Gemini · Llama · Qwen · DeepSeek…
- No daily limits — pay only per token used
- Switch models without leaving the REPL
- One key you control, transparent cost
A real agent loop —
not a chat box.
Lumen streams a reply, calls tools, watches what happens, and keeps going until the work is done. Every write or shell command asks your permission first.
⚠ = asks approval before it runs. Toggle /auto or start with --yolo to run unattended.
Six things hosted tools won't do.
Privacy and control aren't add-ons in Lumen — they're the whole point.
🛡 Secret Guard
Before anything reaches a cloud model, Lumen scans for API keys, private keys and .env values — then blocks, redacts, or asks. Offline? Skipped entirely, because nothing leaves.
Diff before write
Every write and edit shows a colored diff before it happens. Nothing touches your files unseen.
Instant undo
/undo reverts the last change — restores edited files, deletes ones it created. Experiment without fear.
Local sessions
Resume any conversation with --continue or --resume <id>. Your history lives on your disk — never a server.
Project memory
Drop a LUMEN.md and Lumen follows your conventions every turn. Or run /init and it writes one by exploring the repo.
Auto-fallback
Local model down or rate-limited? Lumen fails over to your cloud provider automatically — with an honest “your code will now leave this machine” warning.
Bonus: Lumen parses tool calls even from models that emit them as plain text — so it runs the whole local ecosystem, not just the well-behaved ones.
Airgap mode: one flag blocks every socket.
Other tools ask you to trust them. Lumen lets you verify. Flip --airgap and Lumen patches the network layer itself — local models keep working, but nothing can leave your machine, even by accident or a rogue dependency. Try to reach the cloud and it's refused before a single byte moves.
Same model, same tokens.
A very different bill.
We won't pretend a model reads fewer tokens because you self-host it. On the same task, it reads the same tokens. What changes is who bills you, whether you get locked out, and how much of the context is spent on the harness instead of your code.
Lumen vs. hosted tools
| Hosted (Claude Code / Codex) | Lumen | |
|---|---|---|
| Daily usage limits | Yes — locked out at the cap | None local · none beyond your balance |
| Where your code goes | Uploaded to a vendor cloud | Stays on your machine (local mode) |
| Provable offline | No | Airgap mode blocks all egress at the socket layer |
| Secret leak protection | None — it's all uploaded | Secret Guard blocks keys before they leave |
| See changes before applying | Varies / hidden | Colored diff + approve, with /undo |
| Cost model | Fixed subscription, capped | Free (local) or pay-per-token |
| Model choice | One vendor's models | Whole OpenRouter catalogue + any local model |
| If the model is down | You wait | Auto-fallback to another provider |
| Works offline | No | Yes |
| Context overhead / turn | Large, hidden | ~1,088 tokens, measured |
| You control it | No | Open, self-hosted, yours |
Your machine. Your models.
Two commands to a fully local, private coding agent. One more for the entire cloud catalogue.
Secret Guard, diff previews and local session history are on by default — no flags, no setup.