v0.28.0
Nebula v0.28.0 is out. Markdown rendered as a page, comments on pull requests and issues without leaving the keyboard, PR sessions in the PR's own checkout, a harness registry with Muse on board, collapsible panels, five more themes, a Project tab in Settings, and an idle reaper that no longer kills an agent mid-job.
π Read and reply in place
- Markdown as a page. A
.mdis a rendered page wherever nebula shows one: the file tabs an agent'snebula openraises, anβ₯-click orfon a markdown path (read first,Enterfor the editor,mfor the source), the tree browser's preview (b,Ctrl+rflips to the source and back), and the issue and pull-request reading panes for GitHub bodies. Headings, lists, quotes, tables, task lists, alerts, links, and fenced code with the tree browser's own highlighting. - Comment and edit without leaving.
yon a pull request row opens a comment box andEnterposts it as you throughgh pr comment; in the issues modal (i)ccomments on the issue andEedits its title and description in the reading pane's place throughgh issue edit. A postghrefuses brings the box back with your text intact. - Issues open on rows. Once the cursor has rested on a project its open issues are fetched in the background and kept fresh every couple of minutes, so
ipaints at once instead of on an empty pane.
π Pull requests get their own checkout
- PR sessions in the head branch.
n(orm/ right-click) on an OPEN PRS row now starts the session in a checkout of the pull request's head branch β the project's worktree already on it, or one the daemon cuts β instead of the project's root worktree. That checkout lists directly under its pull request, stepped in behind aβ, and the Sessions column folds to a rule while the cursor rests on the PR itself. - A preset on a pull request.
eon an OPEN PRS row is a picker: choose one of your agent presets and it launches as a PR session, the PR's rule in the system prompt and the preset's prefix + task + postfix as the first prompt. Askip-task preset launches straight from the picker.
π Run any CLI, and keep it running
- A harness registry. One
harnessesmap inconfig.jsondrives thenpicker,epresets, spawn, resume, hooks and session titles; the Agents tab grows one section per entry, andnebula config harnessesprints the merged table. Muse ships as a built-in, and a third-party CLI such as Grok is a config block β no rebuild. Settings βΊ Agents βΊhide_uninstalled_harnesseskeeps the picker to CLIs found onPATH. Thanks @kaminskypavel (#79). - Background jobs are not idle. The idle reaper used to take an agent whose backgrounded tool call was still running β Claude's
run_in_backgroundBash or Monitor watch, a Codex shell command β because the hook-fed status read the turn's Stop as finished. It now reads the process tree: a job detached from the agent's terminal keeps the session up, and the idle clock restarts when that job ends (#78).
π«₯ Shape the screen
- Collapsible panels. Projects, Worktrees and Sessions collapse to a slim rail with a chevron rather than vanishing,
Shift+Sfolds the Sessions panel at last, andCtrl+B(orβB, orShift+Zunder tmux) collapses every panel and the workspaces bar at once β expanding never steals focus. Persisted under the existinghide_*keys and in Settings βΊ Appearance. Thanks @kaminskypavel (#77). - Five more themes. Settings βΊ Appearance βΊ
themeaddslavender,coral,slate,sandand a grayscalemonobeside the five you had. - A Project tab. Settings βΊ Project holds the rows that belong to the selected project, stored under
projectsby repo path β so far Hide root worktree, which moves there from Experimental. The old top-levelhide_root_worktreestays as the fallback for projects without an entry.
curl -fsSL https://raw.githubusercontent.com/AgentSystemLabs/nebula/main/install.sh | sh