Releases: joelmoss/workroom
v2.0.0-beta.6
Per-project run commands, richer notifications, and polish
This beta adds a per-project run command — point a project at npm run dev (or whatever
starts it) and drive it from a dedicated run terminal — plus a system menu bar item for
notifications, a collapsible terminal-tab sidebar, and a round of stability and design fixes.
⚠️ Still a beta — expect rough edges. Existing installs auto-update via Sparkle.
Run command (#7)
- Set a run command per project in Project Settings, with optional auto-run when a
workroom is created - Drive it from a dedicated "Run" terminal — Run / Stop / Restart in the toolbar, the new
Run menu, the sidebar row, or ⌘R / ⇧⌘R / ⌥⌘R. Stop is a graceful Ctrl-C that escalates to
a hard kill on a second press; Restart waits for the process to exit before respawning, so it
releases the port first - The pane stays open showing output after the command exits; Go ▸ Run Terminal jumps to it
Notifications
- A system menu bar item for notifications (#33)
- The notifications bell stays visible even with no workroom selected
- The notification jump moved into the Go menu; ⇧⌘N / ⌥⌘N now reach the menu even inside
enhanced-mode TUIs (Claude, Codex)
Terminals & sidebar
- Terminal tabs now appear as a collapsible sidebar subtree
- The terminal surface no longer shifts when toggling between a solo pane and a split
- Design polish: clearer active tab and split-group brackets, a calmer focused split-pane ring,
tab ✕ and pane grips revealed on hover, tighter tab chips, dimmed terminal titles, and a
unified sidebar caret column
Stability
- The agent progress indicator no longer times out mid-task (#38)
- Fixed a crash on quit caused by freeing terminal surfaces while their IO was still active
Dev
- Debug builds now run side by side with the release app as Workroom Dev
v2.0.0-beta.5
Getting around — and staying on top of activity
This beta is about movement and awareness: navigate your terminals like a browser, jump
straight to whatever just needs attention, and land on the exact line you ⌘-clicked.
⚠️ This is a beta — expect rough edges.
Navigation
- Browser-style back/forward (⌘[ / ⌘]) over the terminal locations you've visited —
across workrooms, project roots, and terminal tabs/splits. New back/forward chevrons in
the toolbar and a Go menu to match. (#26)
Notifications
- Go to Next Notification (⇧⌘N) — jumps to the oldest pending notification's terminal
and dismisses it; press again to walk the backlog oldest → newest. - Dock unread badge — the unread-notification count now shows on the Dock icon, and
keeps updating even while the app is in the background. (#32)
Terminal
- Smarter ⌘-click on file paths — paths with a trailing
.or afile:line[:col]
suffix (compiler / Rails-style) now resolve, and a:linesuffix seeks to that line
in VS Code, Zed, or Xcode. (#34)
Install: download workroom-macos-app_2.0.0-beta.5.dmg below, or let an existing install
auto-update via Sparkle. CLI binaries for macOS, Linux, and Windows are attached too.
Full changelog: v2.0.0-beta.4...v2.0.0-beta.5
v2.0.0-beta.4
workroom 2.0 beta 4 — split terminal panes
This beta brings split terminal panes to the macOS app, plus a clearer picture of
what each terminal is doing while it runs.
⚠️ This is a beta — expect rough edges.
macOS app
- Split terminal panes — split any terminal into multiple panes, move between them
with the keyboard, and split or open terminals straight from a right-click menu - Live activity at a glance — terminal progress now animates in the sidebar and tab
strip, driven by the shell'sOSC 9;4progress reports rather than the command title - Setup overlay — new workrooms block the terminal behind a progress overlay until
your setup script finishes, then open ready to use - Confirm before closing a terminal — optional guard so you don't lose a running
session by accident
Fixes
- Sidebar expand/collapse now commits on click instead of on mouse-move
- The busy spinner no longer sticks on for deep-cwd terminals
- App build targets always run
xcodegen
Under the hood
RootViewandWorkroomTerminalsViewsplit into focused view files- Split-pane UI tests run on injected fixtures, with a11y/animation polish; headless CI
teardown crash fixed; swift-format lint cleaned up
v2.0.0-beta.3
workroom 2.0 beta 3 — a global hotkey and a more focused app
This beta makes the macOS app feel like an always-available companion: summon or dismiss it
from anywhere with a global ⌘§, a tighter single-window model, and a guard against quitting
your terminals by accident. Plus a batch of terminal, notification, and sidebar refinements —
and crash reporting so beta bugs actually reach us.
⚠️ Still a beta — expect rough edges.
App & windows
- Global ⌘§ hotkey to show/hide workroom from anywhere (toggle it off in Settings)
- Single-window model — dropped macOS window tabbing and File ▸ New Window
- Confirm before quitting (default on), with a "Don't ask me again" option in the dialog
- Sidebar tree state — collapsed projects and selection — now persists across launches
Terminals
- The running command now shows on each terminal tab
- Drag files and images into a terminal to insert their path
- The tab close button is always visible
- "Copy on Select" is now toggleable from the Edit menu
Notifications
- A terminal's notifications are marked read once it gets focused
- Terminal notifications are now ephemeral and minimal, with a tidier empty state
Editor integration
- App icons now appear in the "Open in…" button and menu
Under the hood
- Crash & error monitoring via Sentry (no PII) so beta issues get triaged
- Preferences moved to a type-safe
Defaultsstore
v2.0.0-beta.2
workroom 2.0 beta 2 — a new terminal engine
This beta replaces the embedded terminal (previously SwiftTerm) with libghostty, the
terminal core behind Ghostty, for faster and more faithful emulation.
It also lands the first automated UI tests for the macOS app.
⚠️ Still a beta — expect rough edges.
Terminal
- Embedded terminals now run on libghostty instead of SwiftTerm
- Fixed keyboard input on the new engine — arrow keys and backspace
- Added an overlay scrollbar
Testing & CI
- New XCUITest target with a starter UI-workflow suite
- Unit tests for the terminal key-text filter and scrollbar geometry
- The Sparkle appcast feed release is now correctly marked a pre-release when first created
v2.0.0-beta.1
workroom 2.0 — now with a native macOS app
The headline of 2.0 is a native macOS app (macOS 14+): a SwiftUI interface with a
project → workroom sidebar and embedded terminals. The CLI ships bundled, so app users
don't need a separate install — and it stays fully standalone for terminal-first use on
macOS, Linux, and Windows.
⚠️ This is a beta — expect rough edges.
macOS app
- Project → workroom tree sidebar, with an always-available project root
- Embedded terminals: multiple tabs per workroom, drag-to-reorder, copy-on-select,
⌘-click to open file paths, and activity notifications - "Open in…" menu that remembers your last editor; offer to open new workrooms in
$EDITOR - Streamed setup/teardown script output in a log panel
- Settings window, light/dark/system theme, and Sparkle auto-updates
- "Install workroom Command in PATH" helper, plus a new app icon
CLI
- New setup/teardown script env vars:
WORKROOM_PATHandWORKROOM_ROOT_PATH - Machine-readable
--jsonAPI that powers the app
Build & CI
- GitHub Actions CI; runs macOS app tests/lint and ships a notarized DMG
golangci-lintandswift-formatwired in- Unified, namespaced root
Makefile
Appcast
Sparkle update feed for the Workroom macOS app. Do not delete.