What are Workspaces?
Workspaces are isolated task environments in Superset. Each workspace represents one branch and provides a dedicated space where you can run coding agents, edit code, and manage tasks without affecting your main working directory or other workspaces.Key Concept: Each workspace = one git branch. Workspaces are backed by git worktrees, giving each branch its own directory, terminal sessions, and port allocations.
How Workspaces Use Git Worktrees
Superset leverages git worktrees to provide true filesystem isolation between workspaces. When you create a workspace:- Superset creates a new git worktree in your configured worktree directory (default:
~/.superset/worktrees/) - A new branch is created for the workspace (or an existing branch is checked out)
- The workspace gets its own working directory with a full checkout of your repository
- All workspaces share the same git object store — commits, trees, and blobs exist exactly once
Creating a worktree is fast (seconds) and cheap (megabytes) because you’re not cloning the repository — you’re just checking out another copy of the files.
Workspace Lifecycle
Creating a Workspace
There are multiple ways to create a workspace: 1. Quick Create with Preset (⌘⇧N)
Launches a workspace pre-configured with your preset commands.
2. New Workspace (⌘N)
Opens a dialog where you can:
- Name your workspace
- Choose a base branch
- Select a branch prefix (optional)
- Import an existing worktree from disk
Using a Workspace
Once created, a workspace contains:- Terminal tabs: Run commands, start dev servers, or launch coding agents
- File viewer: Review diffs and edit code
- Browser panes: Test your application in isolation
- Port allocation: Each workspace gets a dedicated range of 10 ports to avoid conflicts
Switching Between Workspaces
Superset provides multiple ways to navigate between workspaces:| Shortcut | Action |
|---|---|
⌘1-9 | Switch to workspace 1-9 |
⌘⌥↑ | Previous workspace |
⌘⌥↓ | Next workspace |
⌘B | Toggle workspace sidebar |
Deleting a Workspace
Right-click a workspace in the sidebar and select Delete. This:- Closes all terminal sessions
- Runs teardown scripts (if configured)
- Removes the git worktree from disk
- Cleans up workspace metadata
Workspace Metadata and State
Each workspace tracks:- Name: Display name (editable)
- Branch: Git branch name
- Base branch: The branch this workspace was created from
- Created date: When the workspace was created
- Last opened date: When you last switched to this workspace
- Unread status: Whether the workspace has notifications requiring attention
- Port base: Starting port number for this workspace’s 10-port range
Database Schema
Workspaces are stored in the local SQLite database with the following structure:Workspace Sidebar Navigation
The workspace sidebar shows all workspaces for the current project:- Name and branch: Display name and git branch
- Unread indicator: Orange dot when agents need attention
- Right-click menu: Quick actions (rename, delete, open in editor)
- Drag to reorder: Change workspace order in the sidebar
Use
⌘B to toggle the sidebar visibility and maximize your workspace area.Best Practices
One Task Per Workspace
Keep workspaces focused on a single task or feature. This makes it easier to review changes and manage concurrent work.
Use Descriptive Names
Name workspaces after the task or feature, not just the branch name. Good: “Add OAuth Integration”. Bad: “agent/task-123”.
Clean Up Regularly
Delete workspaces after merging their changes. Keeping too many workspaces can clutter your sidebar and consume disk space.
Leverage Setup Scripts
Configure setup scripts to automate environment preparation. Copy
.env files, install dependencies, or seed test data.Workspace Types
Superset supports two workspace types:Worktree Workspaces
Type:worktree
Each worktree workspace has its own isolated directory via git worktrees. Multiple worktree workspaces can exist per project, allowing you to work on different branches simultaneously.
When to use:
- Running multiple coding agents in parallel
- Working on several features at once
- Testing changes without affecting your main working directory
Branch Workspaces
Type:branch
A single workspace that always reflects the current branch of your main repository. Only one branch workspace can exist per project.
When to use:
- Quick experiments on your main working directory
- Single-threaded development workflow
- Projects where worktree isolation isn’t needed
Most users will use worktree workspaces for the full benefits of Superset’s parallel development capabilities.
Next Steps
Agents
Learn how to run coding agents in workspaces
Worktrees
Deep dive into git worktree mechanics
Presets
Configure workspace templates for quick creation
Configuration
Set up automated workspace scripts