Break work into tickets, dispatch agents that each run on their own branch, in parallel, and review everything as a real pull request before it lands. Your repo stays the source of truth.
A coding agent in a terminal is one conversation wide. Event Horizon runs the work as tickets: a plan up front, an agent per branch, a review gate, and a merged PR at the end.
Parallel agents. Zero collisions. No babysitting.
Each session gets its own branch and git worktree. Five agents build at once; your checkout stays yours.
Queue a batch before bed. It implements, reviews, retries, and leaves every ticket as an open PR. Never merges without you.
Chats dock like windows in a taskbar. A minimized session keeps working and pulses when it needs you.
One view of every in-flight worktree. Files touched twice get flagged before they become a conflict.
Switch boards from a tab strip. Nothing reloads, no session dies, every project keeps burning.
One session plans a whole family of sibling tickets in a single sitting. Cheaper, faster, consistent.
Arm a batch to ignite when a PR merges. The next wave starts itself.
It sees every ticket, session, and PR. Say "split this epic" and watch the cards land.
Enforced on every ticket:
Manual, Guided, or Autonomous. You decide which gates need a human: plans, merges, or nothing.
One diff, three specialist reviewers in parallel, one synthesized verdict posted back.
Agents publish clickable mockups to the ticket. Pin a note on any element; a revision comes back.
Ready opens a real pull request. Review the diff, request changes, rebase, and squash-merge without leaving the board.
When a decision is yours, the agent stops and asks. Prompts wait for you and survive restarts.
Compose personas with their own mission, model, and effort. Reuse them anywhere on the board.
Tool calls stream live: reads, edits, test runs. Collapse the noise; click a path to open the file.
Edit any earlier message and resend, or retry a turn. The conversation is a surface, not a log.
Less ceremony where it’s safe. More throughput everywhere.
An XS ticket grooms and builds in one session, skipping the plan gate it doesn't need.
It reads staleness signals and proposes folds, archives, and moves. Approve the batch in one pass.
Subtasks stack under their epic in one deck, and a roadmap view tracks what remains.
Think out loud off the board. If a scratch chat earns a card, promote it into a real ticket.
Select what shipped, get an annotated changelog, publish the release. Tickets flip to Released.
Every ticket shows its spend, split cached versus fresh, ranked so you know where the budget goes.
Heavy histories collapse into digests, so an agent joining a month-old ticket doesn't pay for all of it.
Your CLI, your repo, your machine.
Claude Code, Gemini CLI, or Copilot CLI. Same board, same tools, no second bill.
A native app, a single tray binary, or plain npm start. Local-first in every form.
Full PTY in a panel. Run tests and scripts next to the tickets that need them.
Flip on Serena for symbol-level edits, Context7 for live docs, Memory for cross-session recall.
Link repos into a group. Shared docs fan out to every member, so every agent knows the whole product.
A stoplight counts uncommitted files. Open the panel, pick diffs, commit right from the board.
When boards diverge, pick use-local or use-remote per file in a modal. No raw merge markers.
Lumen fans transaction events into per-user push digests. Clients register one device token per install.
Card transactions now batch into a 30s digest window — one push per burst of spending, not one per swipe. Consumers should prefer digest webhooks over per-event pushes.
A grooming ticket is a chat with the groomer. It thinks, proposes a living HTML artifact, you annotate it directly — and every pin comes back as a new revision with new acceptance criteria. Approve, and it's a Todo ticket.
the example below: Lumen, a fictional banking app, grooming a spending-insights feature — Event Horizon is just the surface it's planned onchat on the left, the plan takes shape on the right — your pins become rev 2's acceptance criteria
From + New ticket to squash-merge — the cursor does the clicking, you just keep scrolling. Scroll back up to rewind.
The full roster, organized by phase — each persona briefed with exactly the context its job needs, nothing more. Below: the orchestrator assembling a scatter-gather review live.
Turns an ask into a plan: reads the code, sizes the work, publishes mockup artifacts.
The gate between Grooming and Todo — approves or sends the plan back with notes.
Executes the groomed plan on the ticket's branch in its own worktree. Commits, validates, pushes.
Grooms and builds an XS/S ticket in one session — skips the plan gate structurally.
Burns batches unattended: implement → review → retry, leaving open PRs at Ready. Never merges.
Adversarial second pair of eyes — approves to Ready or sends back with the reason attached.
Scatter-gather: ui / state / a11y reviewers run in parallel, each through one lens.
Your conversation above the board: triages, breaks big asks into tickets, dispatches specialists.
Runs a scatter-gather: fans work to workers, synthesizes one result from their outputs.
Custom personas with their own mission, model, and effort — reused across the board.
Markdown with YAML frontmatter, committed to your repo or a dedicated data branch. Which means your board:
git clone--- id: LUM-229 status: In Progress branch: lum-229-push-digests effort: M tags: [mobile, notifications] --- # Push notifications for card transactions > TL;DR: batch card transactions into > per-user push digests (30s window). Wire the transaction stream into the push service so bursts of spending arrive as one digest, not five…
Tickets are markdown — so sync is just git. Keep them next to your code, on a dedicated orphan branch that never touches master's history, or in a local store with no git at all.
push / pull — same remote, same auth, no extra service.same files, three homes — the orphan branch keeps the board in the repo without touching master's history
Runs alongside your IDE and terminal. Node 20+, your repo, nothing else.