Nyx / internal architecture
Nyx is not a daemon plus a pile of scripts. It is a single self-healing control spine that runs agent work on a harness you can swap (Claude Code or the custom nyx-coder), on models you can swap, across as many devices as you want.
You reach Nyx through a surface. A request becomes a task on the spine. The spine runs it on the selected harness, which calls models through one Route. Heavy work is delegated, never duplicated. Workers can live on any device.
How a single coding task runs, from arrival to delivery. The middle is a loop: read, change, test, repeat. Nothing is called done until it is verified, and the whole task is wrapped in safety rails so a bad run reverts cleanly.
Four guarantees, signed off, that turn "runs tasks" into "you can leave it alone overnight."
did it do the job?
Tests, lint, and build must pass, and an LLM grader confirms the diff matches the task's intent, before anything is called done.
works on any repo?
Installs deps and auto-detects the test, build, and lint commands itself, so it picks up a project it has never seen.
ships like a teammate?
Opt-in: branch, push, open a PR with a summary, and turn review comments into follow-ups. Off by default, never pushes unasked.
what stops a mess?
Each task on its own branch with auto-rollback, plus a token and cost budget so it cannot loop forever or run away.
Everything swappable is config, not a rewrite. This is how Nyx stays cheap, fast, and not locked to any vendor.
The agent runtime that runs a task. Switch with NYX_HARNESS. Migrate gradually, fall back instantly.
Planner, worker, vision, image each pick their own model. DeepSeek for planning, Flash on Baidu for the rest.
Two agents on one spine. The assistant routes and delegates; all coding goes through the harness.