Pugi for VS Code
Pugi, the AI engineering team, inside your editor. Chat with the agents next to your code, hand off
work, watch tasks and deploys, and keep one Pugi account across the CLI and the IDE.
Install
Install the Pugi CLI (the extension runs it as its local engine):
npm i -g @pugi/cli
Sign in once. The CLI and the extension share the same account:
pugi login
Or run Pugi: Sign In from the Command Palette, which opens a terminal running pugi login.
Install the extension and open the Pugi view in the activity bar.
Features
- Chat beside your code: the Pugi console in a sidebar that fits narrow and wide panels.
- Pugi models and personas: the same model picker and Team / Engineer modes as the web console,
served by your Pugi account.
- Agent Manager: send one prompt to several models in parallel and compare the results.
- Right-click actions: add a selection to context, explain it, or ask for an improvement.
- Click-to-open: file paths in tool output open in the editor; edits open in a diff view.
- Session editor tabs: keep chat sessions open next to your files.
- Theme-aware, with Pugi's accent: backgrounds, text and borders follow your light, dark and
high-contrast VS Code theme; buttons, links, focus rings and badges use Pugi's colors, as in the web
console. On a high-contrast theme your theme's accent is kept, for readability.
- Tasks, Deploy, Artifacts and Plan: the same views as the web console, from the compass button in
the panel header or the commands below, with the same agent avatars and Pugi mark.
Pugi projects in VS Code
The open folder is the project. Tasks, Deploy and Artifacts show data for it once Pugi knows it as a
project, which happens the first time you start a build for that folder with the CLI:
cd my-app
pugi build "a todo app with sign-in"
The CLI and the extension derive the same project identity from the folder's absolute path, so nothing
else needs linking. Run the build from the folder itself (or pass its absolute path to --directory):
a relative --directory . names a different project. A folder Pugi has not built yet shows how to start instead of an empty pipeline. Projects created
in the web console live in their own workspace; open them at https://app.pugi.io.
Deploy is read-only here: Publish deploys the project's Pugi repository, not the files open in your editor,
so it runs from the web console (the Deploy view links to it).
Commands
| Command |
Description |
Pugi: Sign In |
Open a terminal running pugi login, then pick up the new account |
Pugi: Sign Out |
Open a terminal running pugi logout |
Pugi: Focus Chat |
Focus the chat panel |
Pugi: New Session |
Start a new chat session |
Pugi: Open Sidebar |
Open the Pugi sidebar |
Pugi: Open Agent Manager |
Run one prompt across several models |
Pugi: Open Session in Editor |
Open the current or a new session in an editor tab |
Pugi: Settings |
Open the Pugi settings |
Pugi: Open Tasks |
The project's task board, runs and decisions |
Pugi: Open Deploy |
Repository, build, deploy, database and live app of the project (read-only) |
Pugi: Open Plan and Usage |
Your plan, allowance and credit; upgrades open in the browser |
Pugi: Restart API Connection |
Restart the local pugi serve engine |
Pugi: Show Engine Status |
Diagnostics for bug reports |
Select code, right-click, and open the Pugi submenu:
| Action |
Description |
| Add to Context |
Attach the selection to your next prompt |
| Explain |
Ask the agent to explain the selection |
| Improve Code |
Ask the agent to improve the selection |
Configuration
| Setting |
Default |
Description |
pugi.cliPath |
(empty) |
Absolute path to the pugi binary. Empty means: PUGI_CLI_PATH, then PATH, ~/.bun/bin, ~/.local/bin and the npm global prefix. |
pugi.apiUrl |
(empty) |
URL of an already running Pugi engine. Empty starts a local pugi serve. |
pugi.telemetry.errorReporting |
true |
Send error reports to Pugi (see below). Only when VS Code telemetry is fully on (all). |
openchamber.apiUrl / openchamber.opencodeBinary from settings.json are copied to pugi.apiUrl /
pugi.cliPath on first start, per scope (user and workspace). Preferences the old extension kept inside
VS Code (chosen model, UI options) do not carry over: VS Code stores them per extension id, and the id
changed. Set them again once.
Environment
| Variable |
Description |
PUGI_API_KEY |
Use this Pugi key instead of the one saved by pugi login |
PUGI_API_URL |
Pugi API base URL (default https://api.pugi.io) |
PUGI_CLI_PATH |
Path to the pugi binary |
Account and privacy
The extension reads the key that pugi login saves (~/.local/share/pugi/auth.json, or
$XDG_DATA_HOME/pugi/auth.json). It is sent only to the Pugi API, as a bearer token, and is never
written to logs. The key is read again on every request, so signing in or out in a terminal takes
effect without reloading the window.
Error reports
When something in the extension breaks (the local engine fails to start, the Pugi API is unreachable,
sign-in does not take, an uncaught error in the extension), a report goes to Pugi's own error tracker
(self-hosted GlitchTip) so it can be fixed. A report is built only from codes Pugi defines (for example
engine_start:exit_1 or pugi_api:upstream_502), the error type (TypeError), the extension version, and
the file names and line numbers inside the Pugi extension's own code. It never contains error messages, your
code, prompts, file contents, file paths, your Pugi key, or anything the engine or the API printed.
Reports are sent only when VS Code telemetry is fully on (telemetry.telemetryLevel is all, which is what
VS Code reports as telemetry enabled). Any lower level sends nothing. pugi.telemetry.errorReporting: false
turns them off for this extension only. Either change applies immediately.
Builds made without a DSN (see src/DOCUMENTATION.md, "Build inputs") never report.
Requirements
- VS Code 1.85 or newer
- Pugi CLI (
npm i -g @pugi/cli)
Links
License
Pugi for VS Code includes code from the OpenChamber VS Code extension, used under the MIT license (see the LICENSE file included with the extension).