Debugging & Tasks

Tasks

Turn any shell command your project needs — build, lint, test, watch — into a one-click, keyboard-shortcut-bound, or fully automatic action.

What a task is

A task wraps a terminal command with a name, so instead of remembering and retyping npm run build (or your project's equivalent), you run Tasks: Run Task → build from the Command Palette, or bind it to a keyboard shortcut, or set it to run automatically whenever you open the folder.

1

Generate tasks automatically

Run Tasks: Configure Task — Gunamaya scans for a package.json, Makefile, or similar and offers ready-made tasks for the scripts it finds.

2

Customize in tasks.json

Fine-tune anything auto-generated, or write your own from scratch, in .vscode/tasks.json.

3

Run it

Ctrl+Shift+B runs your project's default build task directly; anything else goes through Tasks: Run Task.

.vscode/tasks.json
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build",
      "type": "shell",
      "command": "npm run build",
      "group": { "kind": "build", "isDefault": true },
      "problemMatcher": ["$tsc"]
    }
  ]
}

Auto-detection

Gunamaya can detect tasks from common project files without you writing tasks.json first:

  • npm / yarn / pnpm — scripts in package.json (the npm extension)
  • Gulp, Grunt, Jake — tasks defined in their usual config files
  • TypeScript / make — when those tools are present in the folder

Run Tasks: Configure Task and pick from the detected list, or run a detected task directly from Tasks: Run Task. Scripts named build, compile, or watch are treated as build tasks by default.

Problem matchers

The problemMatcher field is what turns raw command output into clickable entries in the Problems panel — a TypeScript compiler error, for instance, becomes a link that jumps straight to the offending file and line instead of leaving you to parse terminal text. Gunamaya ships matchers for the most common compilers and linters; point yours at $tsc, $eslint-stylish, or a custom pattern for anything else.

Background and watch tasks

Mark a long-running task (a dev server, a file watcher) as "isBackground": true so Gunamaya knows not to wait for it to exit before considering it "started" — instead, it watches for a pattern in the output (configurable via problemMatcher.background) that signals readiness.

Run a task automatically on folder open

Set "runOptions": { "runOn": "folderOpen" } on a task — a dev server or file watcher — so it starts the moment you open the project, with no extra step.

Tasks and Gunamaya AI

Gunamaya AI can run any task the same way it runs terminal commands — ask it to "run the build and fix any errors" and it will invoke the task, read the Problems panel output, and iterate.