Supported Task Types
Workspace Tasks automatically discovers and organizes tasks from 25+ file types and build systems.
Table of Contents
Overview
| Category | Description |
|---|---|
| Package Managers & Build Tools | npm, Yarn, pnpm, Bun, Composer, Pipenv, Poetry, Ant, Maven, Gradle, MSBuild |
| Task Runners | Gulp, Grunt, Cargo, cargo-make, Just, Make, mise, Cake Build |
| DevOps & Containers | Docker, Docker Compose, GitHub Actions |
| Scripts & Other | Shell scripts, Python, Jupyter Notebooks, VS Code Tasks, Workspace Tasks |
| GitHub Actions Integration | Run GitHub Actions workflows locally with act |
Task Discovery Notes
The extension discovers tasks regardless of whether tools are installed. Execution requires the respective tool to be available in your PATH.
- All patterns respect
.gitignoreand.tasksignoreexclusions - The following patterns are always ignored:
**/node_modules/****/.git/****/.vscode-test/****/__pycache__/**
Discovery Patterns
| Constant | Pattern | Should Match Examples |
|---|---|---|
GLOB_GLOBAL_EXCLUDE | **/node_modules/**,**/.git/**,**/__pycache__/**,**/vendor/bundle/** | ย |
GLOB_EXTENSIONLESS_EXCLUDE | **/node_modules/**,**/.git/**,**/.venv/**,**/dist/**,**/out/**,**/build/**,**/coverage/**,**/.vscode/**,**/.vscode-test/**,**/vendor/bundle/** | ย |
GLOB_SHELL_EXCLUDE | **/.venv/** | ย |
GLOB_ANT | **/*.xml | build.xml |
GLOB_CARGO_MAKE | **/*.toml | any *.toml file (cargo-make can use arbitrary TOML task definition files) |
GLOB_DENO | **/deno.{json,jsonc} | deno.jsondeno.jsonc |
GLOB_JUST | {**/[Jj]ust[Ff]ile,**/.[Jj]ust[Ff]ile,**/*.just} | justfileJustfilejustFile.justfile.Justfile.justFilefoo.just |
GLOB_MAVEN | **/pom.xml | pom.xml |
GLOB_MISE | **/{mise.toml,mise.local.toml,.mise.toml,mise/config.toml,.mise/config.toml,.config/mise.toml,.config/mise/config.toml,.config/mise/conf.d/*.toml} | mise.tomlmise.local.toml.mise.tomlmise/config.toml.mise/config.toml.config/mise.toml.config/mise/config.toml.config/mise/conf.d/dev.toml |
GLOB_MSBUILD | **/*.{csproj,vbproj,vcxproj,xml,proj,sln,targets,*proj,msbuild,build} | foo.csprojfoo.vbprojfoo.vcxprojfoo.xmlfoo.projfoo.slnfoo.targetsfoo.msbuildfoo.buildfoo.anythingprojfoo.bar.proj |
GLOB_GULP | **/[Gg]ulp[Ff]ile.{m,c,}js | gulpfile.jsgulpfile.mjsgulpfile.cjsGulpfile.jsGulpfile.mjsGulpfile.cjsgulpFile.jsgulpFile.mjsgulpFile.cjsGulpFile.jsGulpFile.mjsGulpFile.cjs |
GLOB_GRUNT | **/[Gg]runt[Ff]ile.{m,c,}js | Gruntfile.jsGruntfile.mjsGruntfile.cjsgruntfile.jsgruntfile.mjsgruntfile.cjsGruntFile.jsGruntFile.mjsGruntFile.cjsgruntFile.jsgruntFile.mjsgruntFile.cjs |
GLOB_GRADLE | **/*.gradle | build.gradlemodule.gradle |
GLOB_MAKE | **/[Mm]ake[Ff]ile | MakefilemakefileMakeFile |
GLOB_NODEJS | **/package.json | package.json |
GLOB_PNPM | **/package.{json,yaml,yml} | package.yamlpackage.ymlpackage.json |
GLOB_PERL | **/*.pl | foo.pl |
GLOB_COMPOSER | **/composer.json | composer.json |
GLOB_GITHUB_ACTIONS | **/.github/workflows/*.{yml,yaml} | .github/workflows/ci.yml.github/workflows/ci.yaml.github/workflows/release.yml.github/workflows/release.yaml |
GLOB_GITLAB_CI | **/.gitlab-ci.{yml,yaml} | .gitlab-ci.yml.gitlab-ci.yaml |
GLOB_CIRCLECI | **/.circleci/config.{yml,yaml} | .circleci/config.yml.circleci/config.yaml |
GLOB_BITBUCKET_PIPELINES | **/bitbucket-pipelines.yml | bitbucket-pipelines.yml |
GLOB_JUPYTER | **/*.ipynb | foo.ipynb |
GLOB_PYTHON | **/*.py | foo.py |
GLOB_PIPENV | **/[Pp]ip[Ff]ile | PipfilepipfilePipFile |
GLOB_POE | **/pyproject.toml | pyproject.toml |
GLOB_POETRY | **/pyproject.toml | pyproject.toml |
GLOB_RAKE | {**/*.rake,**/Rakefile} | RakefilerakefileRakeFile |
GLOB_RUBY | **/*.rb | foo.rb |
GLOB_TSCONFIG | **/tsconfig.{json,*.json} | tsconfig.jsontsconfig.app.json |
GLOB_VSCODE | **/.vscode/tasks.json | .vscode/tasks.json |
GLOB_MCP | **/.vscode/mcp.json | .vscode/mcp.json |
GLOB_WORKSPACE | **/.workspace-tasks.{json,*.json} | .workspace-tasks.json.workspace-tasks.dev.json |
GLOB_CMAKE | **/CMakeLists.txt | CMakeLists.txt |
GLOB_CAKE | **/*.cake | foo.cake |
GLOB_TASKFILE | **/[Tt]ask[Ff]ile{.dist,.*,}.{yml,yaml} | Taskfile.ymlTaskfile.yamlTaskFile.ymlTaskFile.yamltaskFile.ymltaskFile.yamlTaskfile.dist.ymlTaskfile.dist.yamlTaskFile.dist.ymlTaskFile.dist.yamltaskFile.dist.ymltaskFile.dist.yamlTaskfile.local.ymlTaskfile.local.yamlTaskFile.local.ymlTaskFile.local.yamltaskFile.local.ymltaskFile.local.yaml |
Performance: Task Discovery Depth
Control how deep the extension searches for tasks using the workspaceTasks.taskDiscovery.fetchDepth setting:
{
"workspaceTasks.taskDiscovery.fetchDepth": 3
}
Depth is measured from the workspace folder root:
workspace-folder/ (depth 0)
โโโ package.json โ
depth 0
โโโ src/ (depth 1)
โโโ Makefile โ
depth 1
โโโ components/ (depth 2)
โโโ package.json โ
depth 2 (if fetchDepth >= 2)
null(default) โ Full recursive search- Positive integer โ Limits search to that depth
Enabling / Disabling Task Types
Use workspaceTasks.enabledTaskTypes in your settings.json to control which task types are active:
{
"workspaceTasks.enabledTaskTypes": {
"npm": true,
"gulp": true,
"grunt": false,
"ant": false,
"gradle": false
}
}
See the Configuration Reference for the full list of available task type keys.
Next Steps
- Configuration Reference โ Full settings reference including task type toggles
- Task Filtering โ Exclude specific files from task discovery
- GitHub Actions Integration โ Run workflows locally with act
- Custom Workspace Tasks โ Define your own task templates