Workspaces
A workspace in Tempest is an isolated git worktree with its own branch. Each workspace is a complete copy of your project files, checked out to a unique branch, allowing multiple agents to work simultaneously without conflicts.What is a Workspace?
Tempest workspaces are powered by git worktrees. When you create a workspace, Tempest:- Creates a new git worktree under
.tempest/<workspace-name> - Creates a corresponding git branch with the same name as the workspace
- Copies shared dependencies (like
node_modulesand.venv) as symlinks or junctions to save disk space - Opens a terminal or agent session in the workspace directory
Creating a Workspace
Open the session menu
Click the + button next to a project name in the sidebar, or press the keyboard shortcut for “New Workspace”.
Enter workspace details
Provide a name for your workspace. Optionally add a prompt that will be sent to the agent when the session launches.
Select session type
Choose between running a terminal session or launching an agent (Claude Code, Aider, OpenCode, etc.).
Workspace Naming
Workspace names become git branch names. If you configure a branch prefix in settings, it will be prepended to the name. For example:- Workspace name:
fix-login - Branch prefix:
agents/ - Result: branch name is
agents/fix-login
Switching Workspaces
Click any workspace in the sidebar to switch to it. If the workspace session is closed, clicking it will reopen the session exactly where it left off (agent sessions resume via stored conversation IDs). In default mode (multiple projects), workspaces are grouped under their parent project. In zen mode (single project), all workspaces appear in a flat list.Managing Workspaces
Viewing Workspace Changes
Each workspace appears in the Overview tab with:- Branch name - the git branch this workspace is checked out to
- Changed files - files modified by the agent or local work
- Status - whether the session is working, done, or idle
- Last activity time - how long ago the workspace was last active
Deleting a Workspace
Right-click a workspace in the sidebar and select delete. Tempest will:- Close any open session for that workspace
- Kill the running PTY child process (shell or agent CLI)
- Remove the workspace directory from disk
- Remove the git worktree registration
Workspace Storage
File Layout
Session Persistence
Workspace sessions are persisted in browser storage (localStorage) and survive app restarts. When you reopen Tempest:- Terminal workspaces reopen to where they left off
- Agent workspaces resume via stored conversation IDs, so the agent can continue where it stopped
- The entire workspace state (including scrollback history) is preserved
- Workspace name and path
- Current git branch
- Agent configuration (if running an agent)
- Conversation ID for resuming agent sessions
- Terminal scrollback buffer (kept in memory)
Worktree Metadata
Git stores worktree metadata in.git/worktrees/<name>/. Tempest also writes a .tempest-pid file to each worktree’s git info/exclude, allowing Tempest to track and kill the shell process if the app crashes.
Advanced: Shared Files and Symlinks
To save disk space, Tempest creates symlinks (macOS/Linux) or directory junctions (Windows) for large shared directories:node_modules- shared Node.js dependencies.venv- shared Python virtual environment
npm install, all workspaces see the updates immediately.
If a symlink or junction fails to create, Tempest logs the error but continues, allowing the workspace to function normally.
Git Initialization
If your project is not yet a git repository, Tempest will prompt you when creating the first workspace. You can:- Let Tempest initialize git and optionally add a remote URL
- Skip git initialization and continue without version control
- Go back and initialize git manually in your project root
Data Structure
WorktreeSession
Each workspace session is stored with:Worktree Object
In the UI, workspaces are represented as:Closing vs Deleting
- Closing a session removes the tab from the UI but leaves the workspace directory intact. You can reopen it later.
- Deleting a workspace removes both the session and the entire directory from disk. This action cannot be undone.