Nyx v0.2.0 phase 2c shipped

An autonomous multi-agent operator for your codebase.

Local-first. Bring your own Claude or Codex. Push Gate-protected. Built for solo developers and small teams who need an always-on engineer that doesn't go rogue.

Current workflow (phase 2c shipped)

What actually happens today: single channel input, single provider, three-tier Push Gate with hardcoded floor, audit log on every decision. Every box in this diagram is shipped and tested (130/130).

INPUT MODERATE + GATE EXECUTE PERSIST + NOTIFY User chat dashboard composer ws: chat_send Moderator (Hono) two-phase prompt prepended Push Gate matcher tier 1 floor + tier 2 blacklist.yml + best-effort normalize Worker Manager spawn / cap 8 concurrent Worker (Claude) claude code subprocess stream-json events opus 4-7 default Permission MCP stdio sidecar + research tool SQLite (WAL) sessions / events / queue / audit WebSocket Hub topics: agents / gate / dev_servers /audit endpoint every decision queryable Dashboard notify sonner toast + push gate bar SAFETY INVARIANT (provable by test) Tier 1 hardcoded floor cannot be overridden by any operator config  |  floor-cannot-be-lifted.test.ts
green = shipped  ·  arrows = real data flow today

Full vision (all phases shipped)

What the same request looks like when every phase has shipped. New always-on processes can inject their own triggers; memory persists across all sessions; multiple worker providers run in parallel; reviewers gate quality before persist. The delta between this diagram and the green one above is the entire remaining roadmap.

TRIGGER ROUTE MODERATE EXECUTE REVIEW PERSIST User chat Discord DM Email CI / runtime webhook Cron tick Channel Router classify / dedupe map to session Moderator clarify, decompose Memory load core + project Skill lookup replay if match Push Gate blacklist.yml + floor Worker (Claude) opus 4-7 Worker (Claude) sonnet 4-6 Worker (Codex) image / fast code Worker (Gemini) long context Critic diff review Vision Critic screenshot loop Debugger on error result Self-Editor on improvement asks Memory Keeper write 5 layers Skills Librarian save if 3x success Sync Server multi-machine Notify operator push / toast / DM route dispatch result approved ALWAYS-ON OVERSIGHT (re-injects triggers) Watchdog  |  Scheduler  |  Error Ingest  |  Self-Editor independent processes that detect drift, fire crons, receive webhooks, and inject new triggers back into the leftmost column without operator action re-trigger MEMORY (PERSISTENT ACROSS ALL SESSIONS) Core (frozen) MEMORY.md + USER.md Project (per repo) PROJECT.md + CLAUDE.md Session (FTS) SQLite full text Skill (procedural) self-authored files Multi-Machine Sync Pro Cloud server WORKER TOOL SURFACE (via MCP) GitHub MCP Playwright (browser) Postgres / SQLite MCP Filesystem MCP Mem0 / Honcho
all components active  ·  flow left to right per request  ·  always-on layer re-enters at trigger column
For non-tech readers

Plain English

What Ethan is building, why it matters, and how it works, all in normal words. Written for family, friends, anyone who doesn't speak fluent computer.

start here  _
Architecture

Overview

What the system is, how the pieces fit together, the architecture diagram, the memory architecture (Hermes-inspired), and the comparison to Cursor, Devin, OpenHands, Aider, Hermes, and OpenClaw.

read the overview  _
Project status

Status

What's shipped right now, what's next on the roadmap, the current workflow for using the tool, known issues, and the file pointers if you want to dive into the source.

read the status  _