Workspace Tasks



A powerful Visual Studio Code extension that automatically discovers, organizes, and runs tasks from your workspace. Manage build scripts, run tests, execute workflows, and organize your development tasks with favorites and queues—all from a single, intuitive interface.
📑 Table of Contents
📷 Screenshots
 
✨ Key Features
- 🔍 Automatic Task Discovery ↗ - Scans your workspace for tasks from 20+ file types and build systems
- 📍 Flexible Placement - View tasks in the dedicated sidebar or as a dockable panel in the Explorer
- ⭐ Favorites ↗ - Pin frequently used tasks for instant access
- 🌱 Recent Tasks ↗ - Tracks the most recently executed tasks
- 📋 Multiple Compound Tasks ↗ - Create and manage named sequences of tasks with sequential or parallel execution
- ▶️ Quick Execution - Double-click tasks to run instantly, or use the play icon (▶️)
- ⚡ Fast Performance — Optimized for large workspaces with caching and incremental updates
- 📄 Editor Title Bar Buttons ↗ - Run shell scripts and GitHub Actions workflows directly from the editor title bar without switching to the task tree
- 🔍 Inline CodeLens Actions ↗ - Run, favorite, queue, and hide tasks directly from inline CodeLens lenses above each task definition in its source file
- ⏹️ Smarter Stop Controls - Stop tasks gracefully with a configurable delay, or force kill after the timeout; Compound Tasks have an option to stop all child tasks together or individually
- 🎯 Smart Organization - Hierarchical tree view organized by workspace, task type, and file
- 🔀 Drag & Drop - Reorder tasks in compound tasks (queues) with drag and drop
- 🎭 GitHub Actions Support ↗ - Run GitHub Actions workflows locally with act
- ⭕ CircleCI Support ↗ - Run CircleCI jobs locally and execute workflows sequentially via the CircleCI CLI
- 🪣 Bitbucket Pipelines Support ↗ - Run Bitbucket Pipelines locally via
pipeline-runner
- 📝 Custom Tasks ↗ - Define reusable task templates with dynamic inputs
- 🔐 Environment Variable & Secrets Management ↗ - Inject env vars and secrets into any task with fourteen-layer precedence; manage SecretStorage keys directly from the Secrets tree group (store, update, delete, copy key) or via the Command Palette; git-tracked env/secret files are flagged in the Problems panel to prevent accidental credential exposure
- 🚫 Task Filtering ↗ - Use
.tasksignore files to exclude unwanted tasks
- 🙈 Hide Tasks & Groups ↗ - Hide individual tasks or entire task groups from view
- 🕰️ Task History, Statistics & Dashboard ↗ - Track all task executions in a sortable history table, view per-task performance metrics (duration trends, success rates, failure streaks), and explore workspace-wide health in the interactive Dashboard with Chart.js charts
- 💾 Persistent State - Favorites and Compound Tasks (queues) are saved across Visual Studio Code sessions
- ☁️ Settings Sync - Sync your favorites and Compound Tasks (queues) across multiple machines via VS Code's Settings Sync
- 🛡️ Run Guard ↗ - Require confirmation before running destructive or sensitive tasks; guard via manual toggle, definition flag, or label pattern
- 🕜 Estimated Task Duration ↗ - View estimated duration for tasks based on historical execution data
- 🤖 Language Model Tools ↗ - Use
#wTasks and #runWTask in GitHub Copilot chat to discover and run tasks without leaving the chat interface
- 🔒 Workspace Trust - Respects VS Code Workspace Trust: no tasks are discovered or displayed in untrusted workspaces
- 👉 Guided Arguments ↗ - Arguments for supported
shell script types are discovered and prompted as defined inputs when Run with Args.
📥 Installation
From Visual Studio Code Marketplace
- Open Visual Studio Code
- Go to Extensions view (
Ctrl+Shift+X / Cmd+Shift+X)
- Search for "Workspace Tasks"
- Click Install
Visual Studio Marketplace
From Open VSX
- Open Editor (example: Cursor)
- Go to Extensions view (
Ctrl+Shift+X / Cmd+Shift+X)
- Search for "Workspace Tasks"
- Click Install
Open VSX Registry
From Command Line
code --install-extension darthminos.workspace-tasks
cursor --install-extension darthminos.workspace-tasks
codium --install-extension darthminos.workspace-tasks
antigravity --install-extension darthminos.workspace-tasks
kiro --install-extension darthminos.workspace-tasks
windsurf --install-extension darthminos.workspace-tasks
✔️ Requirements
- Visual Studio Code 1.105.1 or later
- External tools must be installed for task execution (see External Tools)
🛠️ Supported Task Types
Workspace Tasks automatically discovers and organizes tasks from a wide variety of tools and frameworks:
- npm - Scripts from
package.json
- Yarn - Scripts from
package.json
- pnpm - Scripts from
package.json
- Bun - Scripts from
package.json via bun run <script>, plus built-in bun:install, bun:build, and bun:test
- Composer - PHP scripts from
composer.json
- Pipenv - Python scripts from
Pipfile
- Poe the Poet - Python task runner from
pyproject.toml
- Poetry - Python scripts from
pyproject.toml
- Apache Ant - Targets from
*.xml build files
- Apache Maven - Lifecycle goals from
pom.xml
- Gradle - Tasks from
*.gradle files
- MSBuild - .NET project targets
Task Runners
- Gulp - Tasks from
gulpfile.js or gulpfile.mjs
- Grunt - Tasks from
Gruntfile.js
- Cargo - Tasks for
Cargo.toml
- cargo-make - Rust task runner from
Makefile.toml or *.toml files (requires Cargo)
- Just - Recipes from
justfile or *.just files
- Make - Targets from
Makefile
- mise - Tasks from active mise TOML config files (for example
mise.toml, .mise.toml, and .config/mise/config.toml)
- Task (go-task) - Tasks from
Taskfile.yml (CLI-based discovery, wildcard task prompting, required variable prompts from requires.vars, {{.CLI_ARGS}} forwarding)
- Cake Build - Tasks from
*.cake scripts via Task("...")
DevOps & Containers
Scripts & Other
- Shell Scripts -
.sh, .bash, .zsh, .fish, .ps1, .bat, .cmd; extensionless scripts (shebang + executable bit, opt-in via shellEnabledTaskTypes.extensionless)
- Jupyter Notebook - Execute notebook cells from
*.ipynb files
- Discovery: Notebook tasks are discovered from
*.ipynb files even if the Jupyter extension is not currently available
- Requirements for execution: Jupyter Extension must be installed
- Setup: Configure a Jupyter Server through the Jupyter extension
- Features:
- Notebooks appear as parent tasks with code cells as children
- Click to open notebook in Visual Studio Code's notebook editor
- Execute individual cells or entire notebooks
- Real-time cell execution status via the Jupyter Extension UI
- Inline CodeLens actions are not supported for
.ipynb notebook documents
- Notebook editor title action buttons from this extension are not supported for
.ipynb files
- Visual Studio Code Tasks - Tasks from
.vscode/tasks.json and the user-level tasks.json (%APPDATA%\Code\User\tasks.json on Windows, ~/.config/Code/User/tasks.json on Linux, ~/Library/Application Support/Code/User/tasks.json on macOS)
- Workspace Tasks - Custom tasks from
.workspace-tasks.json
- Supports positional run-time args via
${args} in command
- Supports command context tokens like
${workspaceFolder}, ${file}, and ${env.VAR}
The extension discovers tasks regardless of whether tools are installed. Execution requires the respective tool to be available in your PATH. See Requirements for details.
🚀 Quick Start
- Open a workspace with supported task files (e.g.,
package.json, Makefile, shell scripts)
- Open the Workspace Tasks view from the Activity Bar (sidebar) or Explorer panel
- Sidebar: Click the Workspace Tasks icon in the Activity Bar
- Explorer: Find "Workspace Tasks" in the Explorer panel, or drag it to your preferred location
- Browse tasks organized by workspace folder and task type
- Run a task by double-clicking it or clicking the play icon (▶️)
- Add to favorites by clicking the star icon (☆)
- Create a Compound Task by clicking the list icon to organize task sequences
Tips:
- Double-click a task to execute it immediately
- Single-click a task to open its definition file (when applicable)
- Use the collapse button (⊟) to toggle view states
- Create
.tasksignore files to exclude unwanted tasks
- Drag the Explorer view to any panel location (sidebar, panel, or as a floating window)
⚙️ Configuration
All settings are grouped into five categories. See the full configuration reference for details.
🤝 Contributing
Full Contributing Guide ↗
Contributions are welcome! If you'd like to improve Workspace Tasks, here's how:
How to Contribute
- Report Issues - Found a bug or have a feature request? Open an issue on GitHub
- Submit Pull Requests - Fork the repository, make your changes, and submit a PR
- Improve Documentation - Help make the docs clearer or add examples
- Share Feedback - Let us know how you use the extension and what could be better
Development Setup
- Fork the repository:
gh repo fork camalot/vscode-workspace-tasks
- Open in Visual Studio Code:
code vscode-workspace-tasks
- Reopen in Dev Container: When prompted, reopen the project in the recommended dev container for a consistent development environment
- Install dependencies:
npm install
- Run the extension: Press
F5 to launch a new Extension Development Host instance with the extension loaded
- Run tests:
npm test to run unit tests and npm run test:coverage for coverage reports
Guidelines
- Follow the existing code style and conventions
- Write clear commit messages
- Add tests for new features when applicable
- Update documentation for user-facing changes
- Ensure all tests pass before submitting
📦 Contributors
Made with contrib.rocks.
📄 License
This project is licensed under the Apache 2.0 License.
Made with ❤️ for the Visual Studio Code community
| |