- Automated tests
- 118 unit files · 35 end-to-end specs
- Network calls by default
- Your AI CLI only
Run against a stand-in Claude CLI, so the whole pipeline is tested without spending a token
Everything else (GitHub, integrations) is opt-in, and the server binds to localhost
BeforeYour projects need building. Your hours go to everything else. AfterAn AI team builds them. You approve from wherever you are.
- AI teammates built in
- 7
- Sign-offs on every change
- 2
- Watchdog sweep
- 1.5 min
- Permission modes
- 3
A team, not a chatbot
FixSeven AI colleagues, on the Claude Code or Codex plan you already have. talkTalk to them like employees. They talk to each other the same way. shipEvery change is a ticket: spec, build, review, and two sign-offs from you.
Manage it like a team
Ask for an update, make a suggestion, approve a spec, move the project along. The agents plan, build and review on their own, and stop wherever only you should decide.
The night shift
overnightThey keep working overnight, and resume on their own after a usage limit. ResultYou wake up to decisions, not to-dos.
Your plan, your machine
Each agent is a Claude Code or Codex process using the login you already have. Everything runs on your computer, with no account and no telemetry.
Hexstate is live, and it is used every day to build its own repo.
Read the engineering detail
A team, not a chatbot
Seven built-in roles: Zeus the manager, Prometheus the product manager, Hephaestus, Daedalus and Atlas as engineers (general, frontend, backend), Themis the reviewer and Hermes the personal assistant. You can hire more by describing the role, and Hexstate drafts the agent.
Talk to them like a team
You post in #general. The manager asks what it needs to know, then takes the work to the team channel and reports back. Agents talk to each other in threads, one clear handoff at a time. When one needs you, its question appears in your channel with a link to the thread.
Every change is a ticket
The manager tickets it, the PM writes the spec, an engineer builds it in its own git worktree, and the reviewer checks it and merges it to a sandbox branch. You approve the spec and the result, and only then does the manager promote it to main.
The night shift
When a usage limit hits, the work is held, not dropped. At the reset the held agents are woken one by one, the interrupted turn is sent again, and #general gets a note that the window reopened. If the app was closed through the reset, it asks you on the next launch instead of resuming on its own.
Nothing ships without you
Agents ask before they run risky commands, and they can’t approve their own work. Three permission modes set how much they do unasked: ask for everything, auto-allow safe work, or allow everything (only while you watch).
How it works underneath
One process per agent. Each agent is a long-lived headless claude
process (or codex, per turn) with its own workspace, persona, skills and
memory. An idle agent costs nothing: tokens are spent only while a turn runs.
Routing that doesn’t explode. A message wakes exactly one agent, the first one tagged. Status updates and “done” messages wake nobody, and messages that arrive mid-turn are batched, up to five per turn. That keeps a seven-agent team from talking itself into a token bill.
Hooks as the control channel. Claude Code’s own hooks call back to the local server. Risky tool calls wait for your answer in the app, an agent that ends a turn without replying is told to reply, and a resumed session is reseeded with its ticket and memory.
A watchdog that thinks only when it must. Deterministic checks run every 1.5 minutes while the chat is active and back off to 3, 6 and 15 minutes when it goes quiet. An LLM turn runs only for chat findings like an unanswered question. In a scripted stall scenario that took the watchdog from 7 LLM turns to none.
Shared ticket context. Agents on the same ticket share a working log, so a handoff doesn’t restate everything in chat.
Local by default. The server binds to 127.0.0.1. The only outbound
traffic is the AI CLI you already use, plus integrations you choose to turn
on. Analytics and hosted login were removed.
Stack. A Node 22 and Hono server on SQLite with 28 route groups. A React 19, Vite and Tailwind 4 interface on TanStack Query and Router. An Electron shell that forks the server and ships as a Windows installer.
Tested without tokens. A fake Claude CLI streams scripted replies, so 118 unit-test files and 35 Playwright end-to-end specs exercise the full pipeline for free.
Media







How this was built
The spec sheet above lists the stack. This section covers how the work was run, which a screenshot cannot show you.
Where AI did the work
- Built by an agent team working in parallel lanes. Each lane got a written brief before it started and worked in its own git worktree, and one integrator session merged the results.
- Hexstate now builds itself. Its own manager, engineers and reviewer pick up tickets on this repo and take them through the same pipeline a user's project gets.
- A fake Claude CLI that streams scripted replies lets the whole pipeline (chat, tickets, review, promotion) run in tests without spending a token.
The discipline around it
- Three status words, never blurred: Code Complete (it compiles and passes tests), Verified (a fresh user with no seed data walked through it), Done (verified and documented).
- Every backend route and realtime event maps to a screen in a coverage table, or carries a written reason it is agent-only. A backend change that skips the table is incomplete.
- The agents are treated as a second user. Every feature plan answers whether the agents need to know about it, and updates their personas and skills if so.
- Every feature has a plan, a flow test and a completion record. One tracker holds every task by ID.
- Outbound network calls are audited into an allowlist, and analytics and hosted login were removed outright.
What stayed human
- Architectural and product decisions are Husain's. Agents bring the options and a recommendation, and open questions wait for him in a decisions table rather than being decided.
- The build hard-stops at each milestone for his review before the next wave starts.
- Git stays local until he says otherwise. No agent pushes.
- In the product itself the same rule holds. You approve every PRD, every merge to main and every risky command, and agents cannot approve their own work.
Process artifacts in the repo
- CLAUDE.md
- Working rules every agent reads, including the completion, coverage and agent-awareness gates
- docs/TASK_BREAKDOWN.md
- The single tracker, with one row per task and finding, by ID
- docs/features/web-ui/COVERAGE.md
- Every route and event mapped to a screen, or justified
- docs/lanes/
- The brief for each parallel lane, written before it launched
- docs/reference/NETWORK.md
- Outbound-network audit and allowlist
- scripts/qa/fake-claude.mjs
- Zero-token stand-in for the Claude CLI, used by the smoke and end-to-end suites