Skip to content
| Marketplace
Sign in
Visual Studio Code>AI>Terminal ConductorNew to Visual Studio Code? Get it now.
Terminal Conductor

Terminal Conductor

kvega005

|
1 install
| (1) | Free
Orchestrate named terminals for GitHub Copilot and AI agents. Stop the terminal-spawning chaos — agents reuse role-based terminals (dev-server, build, test, ...) with shell-integration-aware output capture.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Terminal Conductor

Orchestrate named terminals for GitHub Copilot and AI agents.

A VS Code extension that gives Copilot (and any other Language Model Tools consumer) a small, opinionated set of terminal-management tools. Instead of the agent spawning a fresh terminal for every command, it reuses named, role-based terminals — dev-server, build, test, git, etc. — with shell-integration-aware output capture.

Why

Without help, AI agents tend to:

  • spin up a new terminal per command (terminal panel fills up fast)
  • lose track of which terminal is running which long-lived process
  • abandon dev servers and watchers in untracked terminals

Terminal Conductor fixes this by making named-terminal reuse the path of least resistance for the model.

Features

  • Six Language Model Tools (#listTerminals, #sendCommand, #getTerminalOutput, #cancelCommand, #createTerminal, #deleteTerminal).
  • Real output capture via VS Code's shell integration — when available, sendCommand waits for completion and returns stdout/stderr + exit code.
  • Background commands — long-running processes (dev servers, watchers) start in the background and can be checked on later with getTerminalOutput.
  • Status tracking — every named terminal exposes idle / busy / exited, last command, last exit code, and cwd (when shell integration provides it).
  • Adopt existing terminals — terminals already open at activation are picked up so they're addressable by name.
  • @conductor chat participant with /run, /list, /output, /cancel, /relaunch slash commands. Natural-language requests are translated into a real shell command via the active chat model before being run.
  • Palette commands for everything the tools do.

Recommended terminal names

Name Use for
dev-server Long-running servers (npm run dev, python manage.py runserver)
build Builds (npm run build, cargo build, dotnet build)
test Test runs and watch modes
package-manager Dependency installs (npm install, pip install)
git Version control
docker Containers
database DB CLIs
cloud Cloud CLIs (az, aws, gcloud)
scripts One-off automation
general Anything that doesn't fit elsewhere

How agents use it

The tools are exposed via VS Code's Language Model Tools API. In Copilot Chat agent mode they appear automatically, and the model is steered (via tool descriptions) to prefer sendCommand with a descriptive terminalName instead of spawning new terminals.

Typical flow:

  1. listTerminals → see what's already running.
  2. sendCommand { terminalName: "test", command: "npm test" } → terminal is created on first use, output is captured.
  3. sendCommand { terminalName: "dev-server", command: "npm run dev", background: true } → fires and returns immediately.
  4. getTerminalOutput { terminalName: "dev-server" } → check on the server later.
  5. cancelCommand { terminalName: "test" } → Ctrl+C if needed.

Configuration

Setting Default Description
terminalConductor.maxOutputChars 8000 Max characters of captured output returned to the model. Older output is dropped.
terminalConductor.commandTimeoutMs 60000 How long sendCommand waits for completion when shell integration is available.
terminalConductor.adoptExistingTerminals true Adopt already-open terminals on activation.

Copilot instructions

The extension ships a tuned instructions file (instructions/terminal-conductor.instructions.md) that tells Copilot to prefer the Terminal Conductor tools over the default run_in_terminal. On first activation the extension asks once whether to enable it globally; doing so adds the extension's instructions/ folder to your user setting chat.instructionsFilesLocations. No workspace files are modified.

You can change this any time:

  • Terminal Conductor: Enable Copilot Instructions
  • Terminal Conductor: Disable Copilot Instructions

The tool descriptions themselves also steer the model, so the extension is useful even without the instructions file enabled.

Development

npm install
npm run compile      # bundle with esbuild
npm run watch        # bundle in watch mode
npm test             # run mocha unit tests (no VS Code required)
npm run check-types  # tsc --noEmit

Press F5 in VS Code to launch the Extension Development Host.

Project layout

src/
  extension.ts        — activation entry
  terminalManager.ts  — named-terminal registry + shell-integration tracking
  outputBuffer.ts     — pure ring buffer for captured output
  tools.ts            — six Language Model Tools
  commands.ts         — palette commands
  types.ts            — shared types / ITerminalManager contract
test/
  mocks/vscode.ts     — vscode module mock for unit tests
  *.test.ts           — mocha tests

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft