Emotional Research // Local-First Coding Agent

Dispatch a brief. Walk away. Come back to a reviewed PR.

Nyx runs autonomously on your machine, routes each task to an isolated worktree, and hands back a clean, reviewable branch. Nothing auto-ships.

Live workers

Fleet status

Worker Task Status

How it works

Four things the engine handles so you don't have to.

01 / Isolated by default

One worktree per task

Every task runs in its own git worktree. Parallel work never collides and rollback is a single command.

02 / Green or nothing

Ships only when types and tests pass

The engine gates every branch on a strict typecheck and full test run. A red tree stays local and never gets proposed for review.

03 / Your model or ours

Bring your own key or run on a flat subscription

Point Nyx at any model provider with an API key, or run on a flat Claude subscription. No per-token invoice surprises.

04 / A brain that heals itself

Supervised loop, self-recovering

A moderator layer monitors each worker, restarts on recoverable failures, and escalates only when it genuinely cannot continue unattended.

The CLI

Three commands cover most of your day.

# dispatch a task
$ nyx "add a /health endpoint with a test"

# check what the fleet is doing
$ nyx status

# run a multi-step project from a brief
$ nyx marathon <brief>

Safety model

Auto-merge is off. Always.

Nothing Nyx produces reaches your main branch without you. Every task completes as a reviewable branch. You inspect the diff, run it locally if you want, and decide to merge. Nyx does not have push access to your default branch and does not request it. The gate that ships a branch is yours to pull.

Quickstart

Up in two minutes.

Via npm
$ npm install -g nyx
$ nyx login
Via Docker
$ docker run -it emotionalresearch/nyx

Early access

Request access.

The repository is private and access is invite-only right now. Drop your email and we will reach out when your spot opens.

Request received. We will be in touch.