One ~4 MB Rust binary · no Electron · no browser · no server

Mission control for
your coding agents

Run Claude Code, Codex, Cursor, Pi and Muse across every project and git worktree you own — from one terminal, one keyboard, one tree. They keep working when you close it.

$ curl -fsSL https://raw.githubusercontent.com/ameerdhi7/NebulaX/main/install.sh | sh
macOS & Linux · same command installs and updates
nubla x: projects, worktrees and sessions on the left, a live Claude Code session on the right
Read the dots, not the screens

Three agents, three tabs, and no idea which one needs you

nubla x replaces the reading with a tree and a color. Every session carries a status dot; every parent rolls up its children — so a red dot on a collapsed project tells you exactly where to look.

Freshagent never run
Runningturn in progress
Unseenfinished, nobody looked yet
Finisheddone and read
Needs feedbackwaiting on you
Terminatedprocess died mid-run
What you get

One tree, up to four panels

Projects → worktrees → sessions → terminal pane. h/j/k/l moves, Enter drills in, and landing on a live pane hands it the keyboard.

🌳

A daemon that owns the PTYs

Quit the TUI, shut the laptop, come back tomorrow. The agents never stopped, and the scrollback ring is replayed on attach.

●

Status dots you read instead of screens

Yellow mid-turn, violet finished-and-unseen, green read, red waiting on you — plus a n done badge counting the terminals you still owe a look.

🔀

Real git worktrees, one keystroke

n branches off into an actual git worktree. Two agents in two directories never collide, and a worktree hook can claim a port or route.

🎯

Agents that drive nubla x back

Tell a session "do this in a worktree" and it runs nebula worktree, then restarts itself resumed inside the new checkout.

🔧

Every pull request & issue, in place

nubla x asks gh what's open. Read a PR under the cursor, g for its diff, y to comment, n for a session scoped to it.

🔎

Diff, find, grep, browse

g the diff viewer, f the file finder, F a git grep, b the tree browser — all scoped to the selected worktree, one key from anywhere.

⌘

/ finds anything, anywhere

The palette spans every workspace, sorted by attention: needs-feedback first, then running, then unseen — so / Enter is the fastest way back to whatever needs you.

🛰️

It follows you to other machines

nebula ssh <host> opens nubla x there, installing if missing. nebula tunnel puts that machine's TUI in a browser tab over one ssh tunnel.

📴

No Electron, no browser, no MCP

One ~4 MB Rust binary and a unix socket. A daemon and a ratatui client — that's the whole thing.

Jira-driven agentic workflow

The ticket board, in your terminal

Pull the Jira tickets assigned to you and show them as a board — cards you scan and open, kept current by the daemon whether or not the UI is open. Press Shift+J in the TUI, or run nebula web for the same board in a browser.

s
Start a run

The daemon cuts feat/<key>-<slug> and launches Claude with the ticket as context. Batch-start with a concurrency limit; the rest queue.

✓
Checks & an independent review stage

Configured checks run, plus a separate review pass, tracking quality evidence that goes stale when the code moves.

↺
An honest loop

The agent reports with nebula stage done, the daemon captures the diff as evidence, and the card becomes Ready — a turn that ends without a report is Needs input, never a fake Ready.

⛓
Dependency gating

Only explicit Blocks links gate a ticket; a blocked card shows blocked by AQ-### and sorts after the work you can actually start.

nubla x Jira ticket board with cards, filters, evidence badges and status dots
Supported harnesses

Five CLIs out of the box

Install the CLI, pick it in the n picker, done. A sixth, Grok, needs one config block. Teach nubla x any new CLI with one harnesses entry.

ClaudeClaudeclaude
CodexCodexcodex
CursorCursorcursor-agent
PiPipi
MuseMusemuse
GrokGrokgrok
Quickstart

From zero to an agent in five keys

Add a repo

A project is just a git checkout. nebula add ~/code/my-app — or nebula add . from inside it.

Open the TUI

A bare nebula launches it and auto-starts the daemon. Tab / h l move focus, j k the selection.

Pick a worktree

n in the worktrees panel branches off into a real git worktree. Two agents, two directories, no collisions.

Start the agent

n opens the picker — Claude, Codex, Cursor, Pi, Muse — then type the first prompt. Or p for a quick prompt.

Walk away

q leaves the TUI; the daemon keeps every PTY. Come back with nebula an hour later, scrollback replayed.

Documentation

Everything, one page away

The full docs render right here in the browser — keys, commands, sessions, configuration and how it all works.