Tempest v0.1.0
Tempest v0.1.0 — Initial Release
The first public release of Tempest. Run a fleet of AI coding agents in parallel — each isolated, none colliding.
What's in this release
Multi-agent workspace
Every agent session runs in its own git worktree — a real, isolated branch with its own working tree. Agents write to their branch. Your main branch is never touched. You can have five agents working in parallel on five different features and none of them will ever see each other's files.
Supported agents out of the box: Claude Code, Gemini CLI, Opencode, GitHub Copilot CLI, Cline, Cursor Agent, Goose.
Terminal & agent sessions
- PTY-backed terminal sessions (PowerShell on Windows,
$SHELLon Unix) - Agent sessions wrap the CLI so exiting the agent drops back to a live shell — no frozen terminal
- Custom prompt — pass an opening instruction at spawn time; the agent starts on the task immediately without waiting for user input
- Per-session tab bar with drag-to-reorder, inline rename, and close
- Split panes — split any terminal vertically (
Ctrl+Shift+|) or horizontally (Ctrl+Shift+_); sub-sessions nest under their parent in the sidebar with an L-connector; splitting a sub-session works recursively
Work-done detection
Tempest watches each agent session and signals when it has finished:
- OSC 9 — Claude Code emits a shell notification on task completion; Tempest catches it instantly
- Byte-quiet timer — 4-second silence after output stops triggers
donefor all other agents - Tab bar and sidebar show a spinner while the agent is working and a green dot when it finishes
- Clicking the active tab while
doneresets to idle
Staging area
Full git staging UI accessible via the Eye button in the right sidebar:
- Staged / Unstaged file lists with per-file stage (
+), unstage (−), and discard (✕) buttons; Stage All / Unstage All one-click actions - Files with both staged and unstaged changes appear in both sections simultaneously
- Per-file diff — click any file to see
git diff --cached(staged) orgit diff(unstaged); untracked files rendered as all-added lines - Commit form — title input + optional description textarea;
Ctrl/Cmd+Entersubmits; co-authored-by Tempest toggle (synced with Settings → Attribution) - Push / Open PR — solid green header buttons; push detects staged content and commits only that; falls back to stage-all only when nothing is staged
File editor
Click any file in the right sidebar's Files tab to open it in a CodeMirror 6 editor tab:
- Syntax highlighting for JS, JSX, TS, TSX, CSS, HTML, Rust, Python, JSON, Markdown
- Theme hot-swap — editor chrome and syntax colors update instantly when switching themes
- Markdown preview — Raw / Preview toggle for
.mdfiles; rendered withreact-markdown+ GitHub-accurate theming (dark and light); local images resolve correctly via Tauri's asset protocol
Live Preview
Open a native embedded browser tab pointed at your local dev server. Watch changes land in real time as agents edit files — no switching to a separate browser window.
- URL bar with Back, Forward, Reload
- Tracks SPA navigation automatically
- Webview is destroyed when hidden and recreated on reveal — no idle memory cost
Right sidebar
- Files tab — lazy-loading file tree of the project root; directories expand on click
- Changes tab —
git statusagainst the active worktree; auto-refreshes every time an agent finishes a turn - Resizable via drag handle (180–560px); collapses via PanelRight toggle in the sub-bar
Settings
- Appearance — theme picker (Origin Dark / Origin Light), sidebar font size (12–18px)
- Terminal — font size, font family (7 presets), cursor style, cursor blink, scrollback; all settings hot-swap on open sessions without restarting
- Git — branch prefix (prepended to every new worktree branch), commit message template
- Keybindings — rebind any action
- Attribution — toggle the
Co-authored-by: Tempesttrailer on commits
Session persistence
All app state (sessions, projects, settings, keybindings, recents) is stored at:
- Windows:
%APPDATA%\com.user.tempest\runtime-state.json - macOS:
~/Library/Application Support/com.user.tempest/runtime-state.json - Linux:
~/.local/share/com.user.tempest/runtime-state.json
Sessions restore on restart. Closing a tab leaves a ghost entry in the sidebar — clicking it resumes the agent conversation from where it left off (--resume for Claude Code, -s <id> for Opencode, etc.).
Performance
- DashMap — per-session writer locks replace a global mutex; session A's slow write never blocks session B
Channel<T>— per-session unicast channels replace a shared broadcast event; each terminal receives only its own output- WebGL pool — up to 6 GPU-accelerated xterm.js contexts shared across sessions; LRU eviction to canvas fallback prevents Chromium context exhaustion at 9+ sessions
- Headless Session Manager — ring buffers and work-done detection run independently of visible panes; switching tabs never loses output
- Junction links —
node_modulesand.venvare junction-linked (Windows) or symlinked (Unix) into each worktree instead of copied; branch creation goes from 30–120s to under a second OnceLockshell probe — shell binary resolved once at startup; per-session probe penalty eliminated
Overview page
Dashboard shown when no session tab is active:
- Live list of all open workspaces — work-state dot, agent icon, branch name, changed file count
- Rows sorted: done → working → idle
- Open / Eye (diff) / PR buttons per row
- Splash screen with recent projects and keyboard shortcut reference when no sessions are open
Broadcast
Send the same prompt to multiple agent sessions simultaneously via the Megaphone button in the tab bar (Ctrl+Shift+M). Useful for cross-agent instructions like "commit your changes" or "run tests".
CI / CD
.github/workflows/ci.yml— type check + frontend build +cargo checkon every push and PR tomain.github/workflows/release.yml— full Windows build, artifact upload (NSIS installer, MSI, portable.exe,.sigfiles), andlatest.jsonupdater manifest published on everyv*tag- In-app auto-updater wired via Tauri's updater plugin (quiet install mode)
Platform support
| Platform | Status |
|---|---|
| Windows 11 (x64) | Supported. Pre-Built binary available |
| macOS | Build from source (untested) |
| Linux | Build from source (untested) |
WebView2 is required on Windows (ships with Windows 11; installer bundles a bootstrapper for older systems).
Known issues
- Zen mode blank screen — opening a project in Zen mode results in a blank white window; the child
WebviewWindowis created but the React app does not render - Orphaned PTY on delete (unconfirmed) — the
.tempest-pidsidecar fix is logically sound but has not been tested with a real orphaned process after restart - History nav blank — the History sidebar button sets a nav state but nothing renders for it; navigating to History shows a blank content area
What's next
- macOS support — native
.appbundle and DMG distribution - Linux support —
.AppImageand.debpackaging for major distributions