Copilot Progress Reporter
A VS Code extension tool that reports Copilot agentic task progress to an external backend via HTTP POST.
What it does
The extension contributes one language model tool named reportProgress.
When Copilot invokes it, the extension sends a JSON payload to the configured endpoint:
event: task_start, step_complete, or task_finish
stepCurrent
stepTotal
stepLabel
taskSummary
timestamp (added automatically by the extension)
Set this in your workspace settings:
{
"copilotReporter.endpoint": "https://your-backend.com/copilot/progress"
}
Local development
npm install
npm run compile
Press F5 in VS Code to launch an Extension Development Host.
Install In Main VS Code
To run this extension in your regular VS Code window (not Extension Development Host):
- Build and package the extension:
npm install
npm run compile
npm run package
- Install the generated VSIX in VS Code:
code --install-extension copilot-progress-reporter-0.1.0.vsix
Reload VS Code.
Open Extensions and confirm Copilot Progress Reporter is enabled.
ESP32-S3 Receiver (Arduino)
This repo includes an ESP32-S3 sketch at:
arduino/esp32s3_progress_receiver/esp32s3_progress_receiver.ino
The board hosts an HTTP server and accepts:
POST /copilot/progress (JSON payload from this extension)
POST /print-text (plain text)
Setup steps:
- Open the sketch in Arduino IDE.
- Set
WIFI_SSID and WIFI_PASSWORD in the sketch.
- Select your ESP32-S3 board and upload.
- Open Serial Monitor at 115200 baud.
- Copy the printed board IP and set VS Code setting:
{
"copilotReporter.endpoint": "http://<esp32-ip>/copilot/progress"
}
- In VS Code, choose the
Run Copilot Progress Reporter debug profile and run it (F5).
- In the Extension Development Host, open Copilot Chat and run an agentic task that can call tools.
- Ask Copilot to use
#reportProgress while executing the task steps.
- Verify payloads in the ESP32 Serial Monitor.
Publish To VS Code Marketplace
- Create a publisher in Visual Studio Marketplace Manage Publishers.
- Update
publisher in package.json to exactly match your publisher ID.
- Create a Personal Access Token (PAT) with Marketplace publish permissions.
- Login with VSCE:
npx vsce login <your-publisher-id>
- Publish:
npm run publish:marketplace
- For updates, bump
version in package.json and publish again.
Publish VSIX On GitHub Releases
You can also distribute a VSIX for easy manual install:
- Build package:
npm run package
- Upload the generated
.vsix file to a GitHub Release.
- Users install with:
code --install-extension copilot-progress-reporter-<version>.vsix