Skip to content

camalot/vscode-workspace-tasks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Workspace Tasks

package_json version Codecov

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.


v1.6.0 98.5% performance improvement of task discovery in large workspaces.


📑 Table of Contents

📷 Screenshots

Workspace-Tasks Sidebar Collapsed Workspace-Tasks Sidebar Queues & Favorites Workspace-Tasks / TaskExplorer Side By SideWorkspace-Tasks Load v1.6.0

✨ 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 (Queues) ↗ - 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 (▶️)
  • ⏹️ Smarter Stop Controls - Optionally stop running dependsOn child tasks when stopping a compound task
  • 🎯 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

📥 Installation

From Visual Studio Code Marketplace

  1. Open Visual Studio Code
  2. Go to Extensions view (Ctrl+Shift+X / Cmd+Shift+X)
  3. Search for "Workspace Tasks"
  4. Click Install

Visual Studio Marketplace

From Open VSX

  1. Open Editor (example: Cursor)
  2. Go to Extensions view (Ctrl+Shift+X / Cmd+Shift+X)
  3. Search for "Workspace Tasks"
  4. 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:

Package Managers & Build Tools

npm Yarn pnpm Bun Composer Pipenv Poe the Poet Poetry Ant Maven MSBuild

  • 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 Grunt Just mise cargo cargo-make Cake Build

  • 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 mise.toml or mise-tasks/ directory
  • Task (go-task) - Tasks from Taskfile.yml (CLI-based discovery)
  • Cake Build - Tasks from *.cake scripts via Task("...")

DevOps & Containers

Docker GitHub Actions CircleCI GitLab CI Bitbucket Pipelines

Scripts & Other

Shell Scripts Python Jupyter Notebook Visual Studio Code

  • Shell Scripts - .sh, .bash, .zsh, .fish, .ps1, .bat, .cmd; extensionless scripts (shebang + executable bit, opt-in via shellEnabledTaskTypes.extensionless)
  • Python Virtual Environments - Activation scripts in .venv/Scripts/
  • Jupyter Notebook - Execute notebook cells from *.ipynb files
    • Requirements: 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
  • 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

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

  1. Open a workspace with supported task files (e.g., package.json, Makefile, shell scripts)
  2. 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
  3. Browse tasks organized by workspace folder and task type
  4. Run a task by double-clicking it or clicking the play icon (▶️)
  5. Add to favorites by clicking the star icon (☆)
  6. 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.

Group Description
⚙️ General ↗ Debug logging and task execution metrics
🔍 Task Discovery ↗ Exclusion patterns, discovery depth, enabled task types, and shell-script detection
🖥️ Display & Interaction ↗ Tree view grouping, click behavior, action bar, icons, and recent-tasks
▶️ Task Execution ↗ Terminal presentation, graceful stop delay, and compound-task execution modes
🌐 Environment ↗ Executable paths for build tools and tool-specific settings

🤝 Contributing

Full Contributing Guide ↗

Contributions are welcome! If you'd like to improve Workspace Tasks, here's how:

How to Contribute

  1. Report Issues - Found a bug or have a feature request? Open an issue on GitHub
  2. Submit Pull Requests - Fork the repository, make your changes, and submit a PR
  3. Improve Documentation - Help make the docs clearer or add examples
  4. Share Feedback - Let us know how you use the extension and what could be better

Development Setup

  1. Fork the repository: gh repo fork camalot/vscode-workspace-tasks
  2. Open in Visual Studio Code: code vscode-workspace-tasks
  3. Reopen in Dev Container: When prompted, reopen the project in the recommended dev container for a consistent development environment
  4. Install dependencies: npm install
  5. Run the extension: Press F5 to launch a new Extension Development Host instance with the extension loaded
  6. 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

Contributors: Made with contrib.rocks

Made with contrib.rocks.

📄 License

This project is licensed under the Apache 2.0 License.


Made with ❤️ for the Visual Studio Code community

About

A Visual Studio Code extension that automatically discovers, organizes, and runs tasks from across a workspace—such as build scripts, tests, and workflows—providing a single interface to manage and execute development tasks efficiently.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

 
 
 

Contributors