Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Copilot TriggersNew to Visual Studio Code? Get it now.
Copilot Triggers

Copilot Triggers

Yash VS extensions

|
4 installs
| (0) | Free
Auto-start Copilot Chat from COPILOT_TASK (<doc>:<args>) and render workspace .copilot-triggers/*.md via @copilot-trigger
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Copilot Triggers Extension

A lightweight VS Code extension that auto-starts Copilot Chat and renders workspace markdown triggers via the single @copilot-trigger participant.

https://marketplace.visualstudio.com/items?itemName=yash-vs-ext.copilot-triggers

Key Features

Capability Description
Auto Start Opens a fresh Copilot Chat thread on startup with interpreted instructions.
Environment Injection COPILOT_TASK="<doc>:<arg string>" maps directly to @copilot-trigger <doc> <args>.
Generic Templates Any .md file under .copilot-triggers/ becomes instantly callable.
Argument Placeholders {{ARGC}}, {{ARGS}}, {{ARG0}}..{{ARG19}}, {{TARGET}} (alias of ARG0).
Safe Fallback Built-in help text displays if no template file exists.

Installation

From Marketplace

  1. Open the Extensions view (Ctrl/Cmd+Shift+X)
  2. Search for "Copilot Triggers"
  3. Install
  4. Reload (if VS Code doesn't auto‑reload)

Manual / Local (VSIX)

From the extension root folder:

npm install
npm run package   # creates a .vsix via vsce
code --install-extension copilot-triggers-*.vsix

Packaging relies on the onStartupFinished activation event (see VS Code docs) so startup is not delayed.

Packaging & Publishing (Maintainers)

npm run package   # create VSIX
npm run publish   # publish (requires VSCE_PAT environment variable)

Auto-Start Logic

On activation (triggered by onStartupFinished) the extension reads process.env.COPILOT_TASK:

  • Empty / unset → Prefills @copilot-trigger help.
  • Matches <doc>:<args> (split on the FIRST colon only) → Prefills @copilot-trigger <doc> <args>.

Environment variables are available because VS Code launches the extension host as a Node.js process before this activation event fires (see official Activation Events documentation). No additional configuration is required beyond exporting the variable in the shell / container environment before VS Code starts.

Creating a New Trigger (Workspace Author)

  1. Create .copilot-triggers/myflow.md in the workspace root.
  2. Add content using placeholders as needed.
  3. Optional: Add a one-line description as a blockquote right after the heading (the extension will extract this and display it in help).

Example:

# My Flow

> One-line description of what this trigger does

Target: {{TARGET}}
Args: {{ARGS}} ({{ARGC}} total)

Description Format:

  • Must be a blockquote (line starting with >) immediately after the heading
  • Blank lines between heading and blockquote are okay
  • Will be displayed in @copilot-trigger help output

Usage:

@copilot-trigger myflow foo bar baz

Argument Placeholders

Placeholder Meaning
{{ARGC}} Number of arguments provided
{{ARGS}} All arguments joined by a single space
{{ARG0}} First argument
{{TARGET}} Alias for first argument (compatibility)
{{ARG1..ARG19}} Subsequent arguments (up to 20 total indexed)

Help Override

If .copilot-triggers/help.md exists it replaces the built-in help. Otherwise the extension renders the internal fallback help document listing available triggers.

Using in Codespaces (Environment Auto-Start)

Set COPILOT_TASK before the Codespace (or local dev container) starts and the first chat will be auto‑seeded:

Options

  • Codespaces UI: Repository → Codespaces → Create → Add variable COPILOT_TASK.
  • Codespaces Secret (persistent): Settings → Codespaces → Secrets → New secret COPILOT_TASK.
  • devcontainer.json: Add under containerEnv (good for defaults):
{
  "containerEnv": { "COPILOT_TASK": "myflow:alpha beta" }
}
  • Shell export before launching code . locally.

Accepted Pattern

COPILOT_TASK="<doc>:<raw argument string>"

Only the first colon divides the template name from the rest; additional colons stay inside the argument string. If your arguments contain spaces, just include them—they are passed as a single string then tokenized for placeholders.

Examples

export COPILOT_TASK="help:"
export COPILOT_TASK="myflow:customer-123 refresh"
export COPILOT_TASK="deploy-plan:staging:api v2 rollout"

Behavior Summary

Scenario Result
COPILOT_TASK unset Prefills @copilot-trigger help
COPILOT_TASK=demo:alpha beta Prefills @copilot-trigger demo alpha beta
Any <doc>:<args> Prefills with parsed values
Unknown <doc> Lists available templates + help

Contributing

  • Add new participant logic carefully; keep core extension orchestration-only.
  • Avoid network calls: let Copilot Agent + MCP servers handle data fetching.
  • Use .copilot-triggers/ for extensibility instead of modifying extension code.

License

MIT

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