Dedicated tasksA powerful VS Code extension that transforms your tasks.json and launch.json into an organized, easy-to-access UI with grouping, icons, and quick-access status bar integration. Why Dedicated tasks?If you have many tasks and debug configurations in your workspace, the default VS Code task picker and launch menu can become overwhelming. This extension solves that by:
Features
Usage1. Configure Your Tasks and Launch ConfigurationsAdd the
And/or add it to your launch configurations in
2. View Your Tasks and Launch Configurations
3. Configure Status Bar (Optional)Add frequently used tasks and launch configs to the status bar for quick access:
Status Bar Tips:
Configuration FilesThis extension uses the following configuration files in your workspace:
|
| Property | Type | Required | Description |
|---|---|---|---|
label |
string | No | Display label for the task/config (defaults to task's label or config's name) |
detail |
string | No | Additional detail text shown below the item label |
hide |
boolean | No | Set to true to hide this item from the UI (default: false) |
groups |
array | Yes | Array of group paths. Each item can be a string for single-level groups or an array of strings for multi-level hierarchies |
order |
number | No | Sort order within the group - tasks and launch configs sort together (lower numbers appear first, default: 0) |
Group Path Examples
The groups field supports flexible hierarchies:
- Single-level group:
"groups": ["Build"]- Item appears in "Build" group - Multi-level group:
"groups": [["Build", "Frontend"]]- Item appears nested under Build → Frontend - Multiple locations:
"groups": ["Quick Tasks", ["Build", "Frontend"]]- Item appears in both "Quick Tasks" and "Build → Frontend" - Mixed levels:
"groups": ["Build", ["Development", "Build"]]- Item appears in top-level "Build" and nested "Development → Build" - Shared groups: Tasks and launch configs can use the same group names and will be sorted together by
order
Complete Examples
Task Example (in tasks.json):
{
"label": "Build Production",
"type": "shell",
"command": "npm run build:prod",
"options": {
"dedicatedTasks": {
"label": "$(package) Production Build",
"detail": "Build optimized production bundle",
"groups": [["Build", "Production"], "Quick Actions"],
"order": 2,
"hide": false
}
}
}
Launch Config Example (in launch.json):
{
"name": "Debug Production Build",
"type": "node",
"request": "launch",
"program": "${workspaceFolder}/dist/index.js",
"dedicatedTasks": {
"label": "$(debug) Debug Production",
"detail": "Debug the production build",
"groups": [["Build", "Production"], "Quick Actions"],
"order": 3,
"hide": false
}
}
Both items will:
- Display with their respective icons
- Appear in two locations: "Build → Production" and "Quick Actions"
- Be sorted together by order (task at 2, launch config at 3)
- Be visible in the UI (not hidden)
Requirements
- VS Code version 1.85.0 or higher
Extension Settings
This extension does not add any VS Code settings. All configuration is done through tasks.json and launch.json.
Tips & Tricks
Organizing Large Lists
For projects with many tasks and launch configs (50+), use a hierarchical structure:
"groups": [["Build Type", "Architecture", "Operation"]]
Example: ["Debug", "x64", "Build"] → Debug → x64 → Build
Status Bar Best Practices
- Select parent groups instead of individual items to quickly show all related tasks and launch configs
- Use icons to make items visually distinct in the status bar
- Keep labels short for status bar items (the detail field provides additional info on hover)
- Use order numbers to control the sequence of items in the status bar (lower = left)
- Mix tasks and launch configs in the same groups for related workflows (e.g., build task at order 1, debug config at order 2)
Quick Access Pattern
Create a "Quick Actions" or "Favorites" group for your most-used tasks and launch configs:
"groups": ["⭐ Favorites", ["Build", "Debug"]]
This makes the item appear both in its logical location and in a quick-access group. Works for both tasks and launch configurations.
Hiding Implementation Details
Use "hide": true for helper tasks that should run via dependsOn but don't need to be directly accessible:
{
"label": "clean-temp",
"command": "rm -rf temp",
"options": {
"dedicatedTasks": {
"groups": ["Build"],
"hide": true
}
}
}
Similarly for launch configs you rarely use directly but want to keep configured.
Known Issues
Launch.json Schema Validation
VS Code's built-in schema for launch.json doesn't recognize the dedicatedTasks property, so it may show as a validation warning/error in the editor (yellow/red squiggly lines). This is cosmetic only - the extension works perfectly fine.
Workarounds:
- Ignore the warning - The property is read correctly by the extension
- Add a comment to document it for other developers:
{ "name": "Debug Extension", "type": "extensionHost", "request": "launch", // For Dedicated Tasks extension - organizes launch configs in sidebar "dedicatedTasks": { "label": "$(debug) Debug Extension", "groups": [["Debug"]] } } - Disable schema validation for launch.json (not recommended as it disables all validation)
This limitation exists because VS Code doesn't allow extensions to extend the built-in launch.json schema, only replace it entirely (which would break all standard IntelliSense). The tasks.json schema works fine because VS Code allows custom properties in the options object.
Release Notes
0.0.1
Initial release of Dedicated tasks:
Core Features:
- Dedicated activity bar view for task and launch configuration organization
- Unified tree view showing both tasks and launch configs
- Hierarchical grouping with unlimited nesting levels
- Items can appear in multiple groups simultaneously
- Custom labels and descriptions for better clarity
- Tasks and launch configs can share groups and sort together
Dual File Support:
- Configure tasks in
.vscode/tasks.json - Configure launch configs in
.vscode/launch.json - Same metadata structure for both types
- Live reload when either file changes
Icon Support:
- Full VS Code icon library integration
- Icons display in both tree view and status bar
- Simple syntax:
$(icon-name) Label - Default icons:
$(play)for tasks,$(debug-start)for launch configs
Status Bar Integration:
- Pin individual tasks/launch configs or entire groups to status bar
- Hierarchical group selection (parent groups include all children)
- One-click execution from status bar (run task or start debugging)
- Persistent configuration across sessions
- Visual indicators for selected items
- Mixed task and launch config support
Developer Experience:
- JSON schema validation for both tasks.json and launch.json
- IntelliSense support in both configuration files
- Sorting and ordering control
- Selective item visibility
License
MIT