Repository navigation
Nebula v0.45.0 is out. Sessions you can move between worktrees and projects, sessions that can ask each other questions, side-by-side diffs with images and Mermaid in previews, worktree deletes that check for unsaved work first, and a long list of launch and status fixes from contributors.
🚚 Move work where it belongs
- Move a session.
mon a card (or Move to… in its menu) lists every other checkout, this project's first and then other projects' asproject ▸ branch;Entermoves the session, which resumes on the same conversation. You can also drag a card onto another band or project tab. A drop asks first; turn that off with Settings › Sessions ›confirm_drag_move. An idle session moves right away, and a busy one moves when its turn ends. nebula spawn --worktree <branch>starts the sibling session in that branch's worktree, cutting it first if needed, and--base <ref>picks the start point. Anything the launch would refuse is refused before git cuts a worktree.- Moved or renamed project folders. A project tab whose folder is gone asks whether to locate it:
yopens a path-completing Locate project prompt. Its worktrees, git links and sessions follow it to the new folder.
🤝 Sessions that talk to each other
nebula sessions/read/ask. Any agent can list every session across projects, read another session's recent context (nebula read <session> --lines N), or ask it a question and get the answer back (nebula ask <session> "…"). Claude and Pi are told when to use them.nebula sbxopens nebula inside a local Docker sandbox, so agents never see this machine's files. Thenebula-sbxcontainer is kept between runs, so its daemon, sessions and logins survive;nebula sbx NAMEgives a separate sandbox and--imagepicks the base. (#112)
🔎 Read it without leaving
- Side-by-side diffs. When the pane is at least 90 columns wide,
gopens diffs old-left/new-right with line numbers on both sides;Ctrl+stoggles unified and remembers your choice. Settings › Appearance ›source_control_graphadds a read-only commit GRAPH under CHANGES, where you can unfold a commit into its files. Thanks @kaminskypavel (#138, #146). - Images and Mermaid in previews. File tabs, the tree browser and
nebula openshow PNG, JPEG, GIF, WebP and SVG images, and.mmdfiles and```mermaidblocks render whenmmdcis on your PATH. Settings › Appearance ›inline_graphics(auto…off). - Links you can click. Claude Code's OSC 8 hyperlinks survive nebula's pane, so Cmd-click opens them. Thanks @kaminskypavel (#160).
- A columns layout, and settings search. Settings › Appearance › Worktree layout ›
columnsshows Projects, Worktrees and Sessions as three side-by-side lists. Thanks David Budac (#139). In Settings,/searches every tab by label, hint or hotkey chord (/^f).
🔔 Status you can trust
- MCP input turns the session red. A Claude session whose MCP server asks for your input used to stay yellow. It now goes red like a permission prompt. Thanks @yobazy (#173).
- Codex leaves yellow when it's done. Without its completion hook, Codex's finished turn was missed. Nebula now reads Codex's terminal idle signal instead. Thanks @TommoDotCommo (#175).
- No more view jumps. A turn finishing in another project could flip the recency sort and move the cursor to that project's session. The sort no longer reads the clock.
🧹 Worktrees that look after themselves
- Delete checks for work in progress first.
don a band, a card delete that takes its worktree, andShift+Dnow list processes still working in the checkout, uncommitted files and how recently they changed, and commits its base branch doesn't have. Thanks @DrewBradfordXYZ (#170). - Deleted checkouts drop their rows. A worktree removed with
rm -rfor Finder instead of git (locked ones included) loses its row on the next sync. A session whose checkout is gone refuses to start, and its pane says how to get it back. Thanks @DrewBradfordXYZ (#164, #127). - Opt-in merged cleanup. Settings › Sessions ›
auto_cleanup_mergedremoves a linked worktree once its PR is merged, but only if it is clean, idle and still at the merged head. Merged-PR matching also stops paintingmainpurple from an old PR.
🛠 Launches that just work
- Claude starts on macOS again. A stdin change made every Claude agent exit with
EINVAL: invalid argument, kqueue. The agent now gets its own PTY back, even when an rc file clearsNEBULA_PANE_TTY. Thanks @DrewBradfordXYZ (#166). - rc autostart, WSL2, and nested Claude. Shell rc hooks that autostart a program no longer swallow agent launches (#130). WSL2 falls back to
/tmp/nebula-$UIDwhenXDG_RUNTIME_DIRis unmanaged, and WSL1 says it is unsupported (#131). nebula started from inside a Claude Code session no longer passes that session's identity on, so its agents keep their transcripts. Thanks @DrewBradfordXYZ (#120). - Relaunch and relocation fixes. Full-screen agents like Grok Build are painted after a relaunch, not left blank until a resize. Thanks @michael-dg (#171). A
nebula worktreerelocation that loses its conversation now says so. Thanks @DrewBradfordXYZ (#165). The daemon releases a client's connection as soon as it hangs up. Thanks @isactornberg (#116).
⚠️ Heads up
Protocol version is now 51 (oldest compatible 49), so a v0.44.0 daemon can't talk to the new TUI: run nebula kill before the new TUI attaches.
curl -fsSL https://raw.githubusercontent.com/AgentSystemLabs/nebula/main/install.sh | sh