R3BL Task ManagementManage task spaces - collections of open tabs for different work contexts within a
single git branch. Inspired by IntelliJ IDEA's Task Management plugin, this extension
helps you organize multiple concurrent workflows (feature development, bug fixing, code
review, research) while working on the same branch. Integrates with Claude Code to track
implementation plans in Table of Contents
Use CasesContext PreservationStop losing your carefully arranged tabs! Each task space remembers exactly which files were open, their order, and pinned state - so you can switch contexts without mental overhead. Switch between them instantly with Alt+Shift+T without losing your place. Claude Code CollaborationRun multiple Claude Code instances in parallel (different terminal tabs or tmux panes), each working on different aspects of your work. Create task spaces for each to organize files and switch contexts seamlessly. Attach a Multiple Concurrent Workflows (Same Branch)Working on a feature but need to quickly review a PR? Or switch between implementation and research? Create separate task spaces for each workflow on your current branch:
Multi-IDE Workflows (Different Task Spaces Per IDE)The problem: VS Code only allows one window per project folder. You can't open the same project twice in VS Code. The solution: Use multiple IDEs! Open the same project folder in VS Code, VS Code Insiders, and/or VSCodium simultaneously - each with a different task space active:
Each IDE maintains its own active task space independently. Task space definitions (names,
tabs, files) sync across all IDEs via the shared This enables workflows like:
How it works: When you switch task spaces in VS Code, VS Code Insiders' active space stays unchanged. But if you add/remove tabs from "Feature: Auth" in VS Code, those changes sync to Insiders if it also has "Feature: Auth" active. What It Does
Getting StartedRequirements
Quick StartPress Alt+Shift+T to open the Task Spaces dialog.
Screenshots
WorkflowsBasic WorkflowCreate separate task spaces for different aspects of your work on the same branch:
Your previous tabs are auto-saved when you switch. Claude Code WorkflowTask spaces integrate with Claude Code for implementation tracking: Planning Phase:
Implementation Phase:
Completion Phase:
Claude Code Integration CommandsInstall Claude Code Integration
This installs the
Automatic Updates The extension automatically keeps the
This ensures you always have the latest command features without manual intervention. Create Task Space from Task File
Smart Prompting
Power User: Multiple Claude Code InstancesRun multiple Claude Code CLI instances in parallel (terminal tabs or tmux panes), each working on different tasks, coordinated through one VS Code instance:
True parallel development on the same branch! Important: How It WorksTask Spaces Are WITHIN One BranchThis extension helps you manage multiple workflows WITHIN a single git branch. It does
NOT help you manage different feature branches. When you switch git branches, your task
spaces are tied to what's in Filesystem-Based MemoryTask spaces are stored in This means:
Should You Commit
|
| Shortcut | Command ID | When |
|---|---|---|
Alt+Shift+T |
r3bl-task-management.showTaskSpaces |
Not in terminal |
You can customize this shortcut in VS Code's Keyboard Shortcuts settings by searching for the command ID above.
Extension Settings
r3bl-task-management.autoSaveCurrentTaskSpace- Auto-save on tab changes (default:true). Disable for "view-only" mode where this instance syncs from others but doesn't write back.r3bl-task-management.autoSaveDebounceMs- Delay in milliseconds before auto-saving after tab changes (default:500, range: 100-5000). Lower values save faster but may cause more disk writes.r3bl-task-management.confirmBeforeSwitch- Confirm before switching (default:false)r3bl-task-management.showStatusBar- Show status bar item (default:true)r3bl-task-management.restoreTabsOnStartup- Restore tabs from active task space when VS Code starts (default:true)
Status Bar
Bottom-left corner shows:
- Active task space: Name + tab count (e.g., "Feature: Auth (5)")
- No task space: "No Task Space" with warning background
Click to open Task Spaces dialog.
File Format
Task spaces are stored in two separate locations to support multi-instance editing and avoid git noise:
.vscode/task-spaces.json (Shared File)
This file is synced across all VSCode instances opening the same project. Changes made in one window (creating/deleting/renaming task spaces, modifying tabs) are reflected in others.
{
"version": "3.0",
"taskSpaces": [
{
"name": "Feature: Authentication",
"id": "uuid",
"tabs": [
{ "path": "src/auth.ts", "isPinned": true },
{ "path": "src/login.ts", "isPinned": false }
],
"taskFile": "task/authentication.md",
"activeTab": "src/auth.ts",
"createdAt": 1234567890
}
]
}
VSCode Workspace State (Per-Instance)
Per-instance data is stored in VSCode's workspace state. This data is NOT shared between VSCode windows, allowing different windows to have different task spaces active simultaneously.
Storage Location:
- Linux:
~/.config/Code/User/workspaceStorage/<workspace-id>/state.vscode.* - macOS:
~/Library/Application Support/Code/User/workspaceStorage/<workspace-id>/state.vscode.* - Windows:
%APPDATA%\Code\User\workspaceStorage\<workspace-id>\state.vscode.*
Data Format:
{
"activeTaskSpaceId": "uuid",
"taskSpaceMetadata": {
"uuid-1": { "lastAccessed": 1234567890 },
"uuid-2": { "lastAccessed": 1234555555 }
}
}
Note: This metadata is automatically cleaned up when task spaces are deleted, preventing any memory leaks or storage bloat.
Multi-Instance Behavior
| Data | Synced? | Notes |
|---|---|---|
| Task space list | ✅ Yes | Creating/deleting/renaming syncs across all windows |
| Tab content | ✅ Yes | Adding/removing files from a space syncs |
| Active task space | ❌ No | Each window can have different task space active |
| Last accessed | ❌ No | Each window tracks its own usage history |
Example use case: Open the same project in VS Code and VS Code Insiders, with different task spaces active in each window. Both windows stay in sync for task space definitions, but each maintains its own context.
Storage Benefits:
- ✅ Task space definitions remain clean and git-friendly
- ✅ No git noise from frequent timestamp/active space updates
- ✅ Multiple VSCode windows can work on different task spaces simultaneously
- ✅ "Last accessed" sorting still works perfectly per-instance
- ✅ Automatic cleanup when task spaces are deleted (no memory leaks)
Note: The extension automatically migrates from v1.0 → v2.0 → v3.0 format as needed.
When Does the File Get Saved?
The JSON file is automatically saved to disk in these situations:
- Create task space - Saves the new task space with current tabs
- Delete task space - Saves after removing the space (and archives task file)
- Switch to task space - Saves to persist the switch (active ID stored in workspaceState)
- Rename task space - Saves with the new name
- Auto-save tabs - Saves current open tabs (500ms after tab changes, if
autoSaveCurrentTaskSpaceis enabled)
Note: The lastAccessed timestamp is updated separately in VSCode workspace state and
does NOT trigger file saves, keeping git history clean.
Note on missing files: When auto-save runs, it saves only the tabs that are currently open. If a file was in your task space but failed to open (e.g., missing on current branch), it won't be in the "currently open tabs" list and will be automatically removed from the task space on the next save. This keeps task spaces clean and accurate to your actual workspace.
Shared Infrastructure
This extension uses the R3BL Shared extension for centralized services across all R3BL extensions (message queuing, global configuration, and more).
See the R3BL Shared documentation for available services, API usage, and configuration options.
Release Notes
See CHANGELOG.md for detailed release notes and version history.
License
MIT
Contributing
Found a bug or have a feature request? Please open an issue at: https://github.com/r3bl-org/r3bl-vscode-extensions/issues
Stay organized and productive!
Main dialog showing all your task spaces
Create a new workflow context
Link to Claude Code task files
Automatic archival to task/done/
Status bar shows active context
Command palette → "R3BL Task Management: Install Claude Code Integration"
Creates .claude/commands if needed
Installs
Command palette → "Create Task Space from Task File"
Shows all task/.md files (⚠️ = not linked)*
Pre-fills name from filename
Ready to use!
Creating task space with linked file...
...prompts to install Claude Code integration (with "Don't Ask Again" option)