OpenSpec - VSCode Extension
Monitor OpenSpec changes in a dedicated panel within Visual Studio Code.
Features
- Dedicated Panel: Display all active OpenSpec changes and their tasks in a native VSCode panel (similar to Problems panel)
- Progress Tracking: Shows completion counts for each change (e.g., "2/5 tasks completed")
- Badge Notifications: Displays a badge with the count of changes with unchecked tasks for at-a-glance status
- Real-time Updates: Automatically refreshes when
tasks.md files change
- Hierarchical Display: Organizes tasks by change → section → individual task
- Visual Indicators: Uses checkboxes (☑/☐) to show task completion status
- Click-to-Navigate: Click on any task to open the
tasks.md file at the exact line where the task is defined
- Copy Change ID: Right-click on a change to copy its ID for use in CLI commands
- Copy Title: Click on a change with a title to copy the title to clipboard
Requirements
- VSCode version 1.85.0 or higher
- Workspace must contain an
openspec/changes/ directory structure
Usage
- Open a workspace that contains an
openspec/changes/ directory
- The "OpenSpec" panel will automatically appear in the panel area (bottom of VSCode, alongside Problems, Output, Terminal)
- Expand changes to see sections and individual tasks
- Click on any task to open the
tasks.md file at the specific line where the task is defined
- The badge on the panel tab shows the count of active changes that have unchecked tasks
There are two ways to copy change information:
- Copy Title: Click directly on a change item (with a title) to copy the title to clipboard
- Copy Change ID: Right-click on a change item and select "Copy Change ID" from the context menu
Example: For a change displayed as "VSCode Extension Copy Change ID Button (vscode-copy-change-id-button) - 0/8 tasks completed":
- Clicking the item copies: "VSCode Extension Copy Change ID Button"
- Right-clicking and selecting "Copy Change ID" copies: "vscode-copy-change-id-button"
Panel Location
The OpenSpec panel appears in the bottom panel area by default. You can:
- Show/hide it using the panel toggle button
- Move it to a different location by dragging the panel tab
- Access it via View → OpenSpec in the menu
Configuration
The extension provides the following configuration options:
Auto-Collapse Completed Sections
Setting: openspec.autoCollapseCompletedSections
Type: Boolean
Default: false
Automatically collapse task sections where all todos are checked. When enabled, sections with all tasks completed will be displayed in a collapsed state, reducing visual clutter and helping you focus on incomplete work.
Enable in Settings UI
- Open VSCode Settings (File → Preferences → Settings / Cmd+,)
- Search for "openspec" or "collapse"
- Check the "Auto Collapse Completed Sections" option
Enable in settings.json
Add this to your workspace or user settings:
{
"openspec.autoCollapseCompletedSections": true
}
Note: Changes to this setting take effect when the tree view refreshes (on file changes or manual refresh).
Extension Activation
The extension activates automatically when:
- A workspace is opened that contains
openspec/changes/ directory
If the directory doesn't exist, the extension remains inactive to avoid performance impact.
Troubleshooting
Extension doesn't activate
- Ensure your workspace contains an
openspec/changes/ directory
- Check the VSCode Developer Console (Help → Toggle Developer Tools) for errors
- Try reloading the window (Ctrl+R / Cmd+R in Extension Development Host)
Panel doesn't show tasks
- Verify that
tasks.md files exist in change directories
- Check file permissions
- Try refreshing the view using the refresh icon in the panel toolbar
Badge not updating
- The badge updates automatically when
tasks.md files change
- You can manually refresh using the refresh command (Ctrl+Shift+P → "OpenSpec: Refresh")
Known Limitations
- Read-only display (cannot edit tasks from the extension)
Future Enhancements
Potential features for future versions:
- Mark tasks complete from the extension
- Filter/search tasks
- Sort by completion status
- Additional configuration options
License
UNLICENSED
Author
István Antal istvan@antal.xyz