vstask

Crates.iovstask
lib.rsvstask
version0.3.0
created_at2025-10-29 22:09:59.063938+00
updated_at2025-11-08 17:43:23.925636+00
descriptionRun VS Code task from the terminal
homepage
repository
max_upload_size
id1907432
size34,799
(AkhilTThomas)

documentation

README

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.json file in your project directory
  • Rust 1.70+ (for building from source)

License

  • MIT License
  • Apache License, Version 2.0
Commit count: 0

cargo fmt