Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Peridot AgentNew to Visual Studio Code? Get it now.
Peridot Agent

Peridot Agent

Peridot Agent

|
20 installs
| (0) | Free
Rust CLI/TUI autonomous coding agent with multi-LLM committee mode, native tool calling, and 2-Tier context management. VS Code panel layered on top of the `peridot` daemon.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Peridot Agent

VS Code panel for Peridot Agent — a Rust CLI/TUI autonomous coding agent with multi-LLM committee mode, native tool calling, and 2-Tier context management.

Status: v0.7.1 refreshes dependencies (diff 9, TypeScript 6 / eslint 10 toolchain) on top of v0.7.0's decluttered chat surface — the header keeps just the session menu, find, a ⋯ overflow menu, and settings (down from 42 inline icons), the view-title menu is curated down to 16 items, and the context strip only shows pills that carry signal. The sidebar still includes onboarding, queued prompts, persistent chat sessions, Markdown answers, single-line tool activity (with risk-class chip colouring), approval/diff cards, usage/budget HUD, an inline plan panel, a compact context donut, daemon-backed slash commands, and a structured /branch picker.

Commands

Command Description
Peridot: Hello Pops a "extension is alive" toast.
Peridot: Check Daemon Version Spawns the bundled daemon, asks peridot.version, displays both the daemon and extension versions side-by-side.
Peridot: Run Task Prompts for a task, calls session.start, and streams daemon events into the Peridot sidebar.
Peridot: Cancel Current Task Sends session.cancel for the active daemon session.
Peridot: Login with ChatGPT Runs peridot login openai-oauth from the active workspace.
Peridot: Refresh Status Refreshes daemon workspace/provider/model/auth status.
Peridot: Set Execution Mode Picks Execute, Plan, or Goal and runs the matching shared slash command.
Peridot: Set Permission Mode Picks Auto, Safe, or Yolo and runs the matching shared slash command.
Peridot: Set Reasoning Effort Picks a reasoning tier and runs /reasoning <tier>.
Peridot: Switch Runtime Provider Picks a provider id and runs /provider <id> for this session.
Peridot: Set Runtime Model Prompts for a model override and runs /model <name>.
Peridot: Set Committee Mode Picks Off, Planner, or Full and runs /committee <mode>.
Peridot: Show Workspace Code Map Runs the shared /codemap scan and appends public symbols plus TODO markers to the sidebar transcript, refreshing stale indexes first.
Peridot: Show Workspace Code Map Status Runs /codemap status to show whether the persisted code map index is missing, fresh, or stale.
Peridot: Refresh Workspace Code Map Index Rebuilds .peridot/codemap.json through /codemap refresh.
Peridot: Search Workspace Code Map Prompts for a query and runs /codemap find <query> against the persisted index.
Peridot: Locate Workspace Symbol Prompts for a symbol, runs /codemap locate <symbol>, and opens the first indexed definition.
Peridot: Outline Current File Runs /codemap outline <path> for the active editor file and renders indexed symbols.
Peridot: Find Workspace Symbol References Prompts for a symbol and runs /codemap refs <symbol> to render matching reference lines.
Peridot: Show Skills Runs /skills and renders active stored skills with copy/use/pin/archive actions.
Peridot: Show Archived Skills Runs /skills archived and renders archived skills with show/restore actions.
Peridot: Search Skills Prompts for a query and runs /skills search <query> against active stored skills.
Peridot: Search Archived Skills Prompts for a query and runs /skills archived <query> against archived stored skills.
Peridot: Attach File to Session Picks a workspace file, runs /attach <path>, and renders a compact attachment block with open/copy actions.
Peridot: Show Session Attachments Runs /attachments and renders files already loaded into the current session context, with open/copy/detach actions.
Peridot: Show Workspace TODOs Runs /todos against the shared code-map index for TODO, FIXME, HACK, XXX, and BUG markers, refreshing stale indexes first.
Peridot: Show Context Top Runs /context top for the active session and renders the largest context entries plus source token totals.
Peridot: Show Working Tree Diff Runs /diff and renders the current working tree diff in the sidebar transcript.
Peridot: Compact Context Runs /compact to queue context compaction for the active daemon session's next turn.
Peridot: Rewind Last Exchange Runs /rewind, removes the visible last exchange, and restores the last prompt in the composer when available.
Peridot: Undo Last Change Confirms, then runs /undo to restore the latest Peridot file checkpoint.
Peridot: Show Branch Turns Runs /branch and renders the current session turn picker for forking from an earlier context turn.
Peridot: Show Branch Snapshots Runs /branch list and renders saved context snapshots from .peridot/branches.
Peridot: Save Branch Snapshot Prompts for a snapshot name and runs /branch save <name> against the active session context.
Peridot: Restore Branch Snapshot Picks a saved snapshot and runs /branch restore <name> against the active session.
Peridot: Fork Branch at Turn Prompts for a context turn id and runs /branch turn <id>.
Peridot: Show Branch Tree Runs /branch tree to show abandoned conversation limbs from the active session journal.
Peridot: Switch Branch Limb Prompts for a branch limb index from /branch tree and runs /branch switch <index>.
Peridot: Show MCP Servers Runs /mcp list and renders configured MCP server names, transports, and details.
Peridot: Add MCP Server Prompts for name, transport, and command/URL, then runs /mcp add <name> <transport> <target>.
Peridot: Test MCP Server Picks a configured MCP server, runs /mcp test <name>, and renders the connectivity result.
Peridot: Remove MCP Server Picks a configured MCP server, asks for confirmation, and runs /mcp remove <name>.
Peridot: Add Session Note Prompts for an operator note and runs /note <text> against the active session.
Peridot: Show Session Notes Runs /notes, optionally limited to recent entries, and renders the active session's note list.
Peridot: Clear Session Notes Asks for confirmation and runs /notes clear for the active session.
Peridot: New Session Runs /session new [task] to create an authoritative persisted session and optionally start its first task.
Peridot: Switch Session Picks a persisted session, runs /session switch <id>, and makes it active in the sidebar.
Peridot: Close Session Picks a persisted session, asks for confirmation, runs /session close <id>, and refreshes the session list.
Peridot: Show Session Count Runs /session count and renders the persisted lifecycle totals.
Peridot: Show Session Details Picks a persisted session and runs /session show <id> to render lifecycle, workspace, usage, and notes metadata.
Peridot: Locate Session Directory Picks a persisted session and runs /session locate <id> to render its .peridot/sessions/<id> directory.
Peridot: Resume Session Picks a persisted session, runs /session resume <id>, and starts the generated continuation task.
Peridot: Rename Session Picks a persisted session and runs /session rename <id> <title>, then refreshes the session list.
Peridot: Delete Session Picks a persisted session, asks for confirmation, runs /session delete <id>, and refreshes the session list.
Peridot: Show Sessions Runs /session list, optionally filtered by lifecycle status, and refreshes local session cards only for full inventory results.
Peridot: Search Sessions Prompts for a query, runs /session search <query>, and renders persisted transcript hits.
Peridot: Prune Sessions Previews /session prune with status and age filters, then asks for confirmation before removing matching persisted sessions.
Peridot: Replay Session Timeline Picks a persisted session and runs /session replay, optionally limited to recent timeline entries.
Peridot: Export Session Artifacts Picks an active or persisted session, exports its attachments, notes, and replay timeline to a portable directory, then opens it.
Peridot: Import Session Artifacts Picks a portable session directory and runs /session import <dir> with optional id and overwrite controls.
Peridot: Show GitHub PR Status Runs gh pr status from the workspace and appends the result to the sidebar transcript.
Peridot: Ship Changes to PR Previews peridot ship --dry-run, asks for confirmation, then commits, pushes, and optionally opens a PR.
Peridot: Merge GitHub PR Prompts for PR/merge strategy, asks for confirmation, then runs gh pr merge.
Peridot: Open Settings Opens an editor-area form for .peridot/config.toml. Toggle autonomy loops, defaults, committee mode, security, git automation, language, and updates. New sessions started after a save pick up the values automatically; running sessions keep their boot snapshot. Also reachable from the gear icon in the Peridot sidebar title bar.

First run

The extension contributes a Get Started with Peridot walkthrough in VS Code's welcome flow. It links the same surfaces used day to day: open the Peridot sidebar, connect a provider, review workspace settings, then run a first task.

When you open the Peridot Activity Bar with no provider configured, you land on a three-button onboarding screen:

  • Sign in with ChatGPT — OAuth via your ChatGPT account (peridot login openai-oauth under the hood).
  • OpenRouter API key — one key, 75+ models. Stored in Peridot's local env store, never your shell rc.
  • Local LLM endpoint — point at any OpenAI-compatible HTTP API (Ollama, LM Studio, vLLM, …).

Already configured? The session view opens directly. Use the "Switch provider" button in the session header to come back.

Sidebar

Once a provider is live, the sidebar shows workspace / provider / model / auth context, AGENTS/MCP/code-map/attachment/note status, a session dropdown, a HUD for token usage and cost / turn budget, an inline plan panel that follows plan_updated, a compact context donut in the composer options row, a chat-style Markdown transcript with single-line tool activity and inline unified diffs, plus approve/deny controls with a diff preview for file_write / file_patch. The slash picker loads the same command catalog exposed by the TUI through the daemon session.command_catalog RPC, and supported session-control slashes run through session.command so mode, permission, model, provider, committee, note, compact, branch, MCP, TODO, codemap, info, cost, plan show, goal control, session save, session count, session rename/delete, rewind, export, diff, undo, and context results stay aligned with the daemon. Typing /branch opens a picker backed by the current context turns; selecting a row runs /branch turn <id>. The session header also exposes artifact export for the active session's attachments, notes, and replay timeline.

Type at the composer — Enter sends, Shift+Enter inserts a newline. Sending while a task is in flight queues the message; the queue UI lets you edit, remove, or clear individual entries before they auto-run. Follow-up prompts continue the active session until you run /clear or open a new session from the dropdown. Typing @ at a token boundary opens a workspace file picker. Tab or click inserts the selected @path/to/file mention as a navigation hint for the model; the extension does not inline file contents automatically.

Configuration

Setting Default Description
peridot.binaryPath (empty) Absolute path to a peridot binary. Leave empty to use the bundled binary in the .vsix (default for Marketplace / Open VSX installs) or fall back to the system PATH (for sideloaded dev builds without a bundled binary).

Cursor remote install workaround

Some Cursor remote-server builds fail while updating Marketplace extensions whose VSIX response is transported with Content-Encoding: gzip. The Marketplace package is valid after HTTP decoding, but Cursor may cache the gzip transport body and then try to open it as a ZIP, reporting:

End of central directory record signature not found. Either not a zip file, or file is truncated.

Install the decoded VSIX directly on the remote host:

cd extensions/vscode
bash scripts/install-cursor-remote.sh 0.7.1

Or run the same workaround without a checkout:

curl -fsSL https://raw.githubusercontent.com/dlsxj101/peridot-agent/main/extensions/vscode/scripts/install-cursor-remote.sh \
  | bash -s -- 0.7.1

The script downloads the Marketplace VSIX with curl --compressed, validates that the saved file is a decoded ZIP/VSIX, and installs it via the newest ~/.cursor-server/.../cursor-server binary. Reload Cursor after it prints the successful install message.

Local development

Sideloading a .vsix you packaged yourself? npm run package produces a universal build and runs the extension unit tests through VSCE's vscode:prepublish hook. Unless you stage binaries under resources/bin/<target>/ first, Peridot falls back to peridot on your PATH. To exercise a single-platform bundled-binary path locally:

cargo build --release -p peridot-cli
cd extensions/vscode
npm run bundle-binary       # copies target/release/peridot into resources/
npm run package             # .vsix now contains the binary

For WSL/Cursor extension development, install extension dependencies first:

cd extensions/vscode
npm install
npm test

Then use the VS Code/Cursor launch configuration Peridot: Run Extension with bundled CLI. Its prelaunch task typechecks the extension, builds the release peridot-cli, copies the binary into extensions/vscode/resources/, and smoke-checks the bundled CLI with resources/peridot --version before opening the Extension Development Host.

resources/peridot, resources/peridot.exe, and resources/bin/ are gitignored so local binary copies never land on main. The release pipeline drops platform-specific binaries into resources/peridot[.exe] for target packages and into resources/bin/<target>/ for the universal fallback package.

Release

Extension releases use vsce/v<version> tags so they do not collide with Rust CLI v* releases. Before publishing, update extensions/vscode/package.json, then push a matching tag:

git tag vsce/v0.7.1
git push origin vsce/v0.7.1

The release workflow verifies that the tag matches the extension package version, builds six bundled CLI binaries, publishes platform-specific VSIX packages to VS Code Marketplace and Open VSX, publishes the universal fallback VSIX, and attaches all VSIX assets to the GitHub Release. The workflow requires VSCE_PAT and OVSX_PAT repository secrets.

Roadmap

  • v0.5.0 — ✅ Bundled peridot binary for six targets, sidebar webview split into its own esbuild bundle, HUD panel for usage / budget / context, inline plan panel, inline unified-diff cards, pre-approval diff preview for file_write / file_patch, and cached / reused-daemon status reads.
  • v0.7.0 — ✅ Decluttered chat surface: header reduced to session menu / find / ⋯ overflow / settings, view-title menu curated down to 16 items, and context pills trimmed to signal-only (auth warnings, conditional context) with versions moved into the workspace tooltip.
  • v0.6.0 — ✅ Hardened extension internals: daemon JSON-RPC per-request timeouts and graceful→forced shutdown, leak-free run lifecycle with strict approval routing, validated webview/persisted inputs, and the host entry point split into focused commands/ modules.
  • v0.5.21 — ✅ VS Code/Cursor parity for persisted-session management, branch workflows, runtime controls, MCP management, notes, TODOs, context/diff, replay, import/export, shared slash autocomplete, session usage/context metadata, and quieter recovery output.
  • v0.5.20 — ✅ agent_ask_user single-select and multi-select prompts include an Other free-form answer in the sidebar; long tasks show live and final elapsed time in a bottom footer.
  • v0.5.19 — ✅ Request-context donut breakdown matching the next daemon/provider request, routine phase events hidden from the transcript, user-facing checking phase wording, and tool-result mutation markers.
  • v0.5.18 — ✅ Editor-area settings webview (form for .peridot/config.toml), Hermes-style /skill-name slash skill invocation, daemon peridot.handshake schema-version check, routine phase-transition filtering for a quieter transcript, risk-class chip colours on tool rows, and an LLM-authored session title with "No title" fallback.
  • v0.6.x+ — ✅ Settings webview polish, Hermes-style skill directories, skill pin/archive/restore/detail/search surfaces, daemon-backed session/slash parity, attachment inventory/lifecycle, session artifact export, stale worktree/session reconciliation, and shared autocomplete/help metadata across TUI and VS Code.

Source

Extension source lives at github.com/dlsxj101/peridot-agent/tree/main/extensions/vscode. The Rust agent core is in the same repository under crates/.

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