Help the user set up run commands for the current Agent Session workspace. Run commands appear in the session's Run button in the title bar.
Understanding the task schema
A run command is a tasks.json task with:
"inAgents": true— required: makes the task appear in the Agents run button"runOptions": { "runOn": "worktreeCreated" }— optional: auto-runs the task whenever a new worktree is created (use for setup/install commands)
{
"tasks": [
{
"label": "Install dependencies",
"type": "shell",
"command": "npm install",
"inAgents": true,
"runOptions": { "runOn": "worktreeCreated" }
},
{
"label": "Start dev server",
"type": "shell",
"command": "npm run dev",
"inAgents": true
}
]
}
Decision logic
First, read the existing .vscode/tasks.json to check for existing run commands (inAgents: true tasks).
If run commands already exist: treat this as a modify request — ask the user what they'd like to change (add, remove, or update a command).
If no run commands exist: try to infer the right commands from the workspace:
- Check
package.json,Makefile,pyproject.toml,Cargo.toml,go.mod,.nvmrc, or other project files to understand the stack and common commands. - If it's clear what the setup command is (e.g.,
npm install,pip install -r requirements.txt), add it with"runOptions": { "runOn": "worktreeCreated" }— no need to ask. - If it's clear what the primary run/dev command is (e.g.,
npm run dev,cargo run), add it with just"inAgents": true. - Only ask the user if the commands are ambiguous (e.g., multiple equally valid options, no recognizable project structure, or the project uses a non-standard setup).
Writing the file
Always write to .vscode/tasks.json in the workspace root. If the file already exists, merge — do not overwrite unrelated tasks.
After writing, briefly confirm what was added and how to trigger it from the Run button.