It asks first
There is exactly one code path that writes to your assistant configuration, and it runs only when you press approve. That is not a policy. It is a property of the build, covered by a test that fails if anyone widens it.
Local-first build console
noirdeck reads your projects and the assistants you already use, does the work alongside you, and stops at the point where something would change. Nothing reaches your files until you say so.
Free to use, including at work. Source-available, not open source.
$ noirdeck serve
→ console on http://127.0.0.1:4747 (loopback only)
→ runtimes: claude, codex, ollama
→ 51 projects · 229 memory notes · 38 skills
· improve/README.md proposed
· skills/deploy.md proposed
? 2 proposals waiting. Nothing applied.
review them at /proposals Runs the assistants you already pay for
What it is
There is exactly one code path that writes to your assistant configuration, and it runs only when you press approve. That is not a policy. It is a property of the build, covered by a test that fails if anyone widens it.
The console binds 127.0.0.1 and nothing else. Point it at a local model and no part of your work leaves the building. Choose a hosted model and it says so, every time, before it sends anything.
Claude Code, Codex, Ollama, or a CLI you wrote yourself. The runner is a setting, not an architecture. Hand a session from one model to another without rebuilding the context by hand.
Install
pipx install noirdeck && noirdeck serve Tell us where to send your key and we will email it. Name, email, and your company if you want to say. The key is verified on your own machine. noirdeck does not phone home to check it, and it keeps working when we do not.
Get your key