2 unstable releases
Uses new Rust 2024
| 0.3.0 | Nov 8, 2025 |
|---|---|
| 0.2.0 | Oct 31, 2025 |
| 0.1.0 |
|
#2 in #vs
15KB
259 lines
vstask
A command-line tool to run VS Code tasks from the terminal.
Overview
vstask allows you to execute VS Code tasks defined in .vscode/tasks.json directly from the command line, without needing to open VS Code. It supports all the features of VS Code tasks including:
- Shell and process tasks
- Platform-specific configurations (Windows, Linux, macOS)
- Working directory changes (
cwd) - Environment variables
- Background tasks
- Variable substitution (e.g.,
${workspaceFolder},${env:VAR})
Installation
Using Cargo
If you have Rust installed, you can install vstask directly from crates.io:
cargo install vstask
This will install the binary to ~/.cargo/bin/ which should be in your PATH.
From Source
cargo build --release
The binary will be available at target/release/vstask.
You can then copy it to a location in your PATH:
cp target/release/vstask ~/.local/bin/
# or
sudo cp target/release/vstask /usr/local/bin/
Usage
Run a Task
vstask "Task Name"
List All Available Tasks
vstask --list
# or
vstask -l
Run Without Arguments
Running vstask without any arguments will display a list of available tasks:
vstask
Shell Completion
Zsh
Add the following to your ~/.zshrc for dynamic task name completion:
# --- vstask Dynamic Completion ---
compinit
_vstask_tasks_completion() {
# Read JSON task list into array
local -a tasks
tasks=("${(@f)$(vstask --json 2>/dev/null | jq -r '.[]')}")
# Add task names to Zsh's completion list.
_describe 'vstask tasks' tasks
}
compdef _vstask_tasks_completion vstask
After adding this, reload your shell configuration:
source ~/.zshrc
Now you can use tab completion when typing task names:
vstask <TAB>
HINT: Use " if the tasks contain spaces for the auto complete to display without the escape character.
Requirements
- A
.vscode/tasks.jsonfile in your project directory - Rust 1.70+ (for building from source)
License
- MIT License
- Apache License, Version 2.0
Dependencies
~7–9.5MB
~173K SLoC