Skip to main content
GSD Pi’s capabilities expand through a layered extension system. Extensions add tools, slash commands, UI integrations, and provider connections to Pi. You can enable or disable most extensions per project, install community extensions from npm, and build your own using the extension SDK.

Extension Tiers

Extensions are grouped into three tiers based on their role and configurability:

Core

System extensions that are always active. They provide fundamental runtime capabilities that Pi depends on and cannot be disabled.

Bundled

Packaged with Pi and enabled by default. You can toggle these on or off per project using /gsd extensions enable and /gsd extensions disable.

Community

User-installed extensions from npm, a git URL, or a local path. Install them with gsd install or /gsd extensions install.

Bundled Extensions

These extensions ship with GSD Pi and are enabled by default. Toggle any of them with /gsd extensions enable <id> or /gsd extensions disable <id>.
Provides browser automation tools backed by Playwright. Pi can open pages, interact with UI elements, take screenshots, run visual diffs, and record sessions. Useful for E2E testing workflows, scraping documentation, and visual verification tasks.
Enables background async task execution. Pi can dispatch long-running jobs and poll for results without blocking the main agent context. Useful for CI waits, build pipelines, and external API workflows.
Allows Pi to start and manage background shell processes — dev servers, watchers, and long-running build processes — and interact with their output across turns. Access the background shell panel with Ctrl+Alt+B.
Gives Pi the ability to search the web for documentation, library references, API specs, and error resolutions. Powered by Brave Search and Jina Reader. Configure a Brave API key with /gsd config to use your own quota.
Enables Pi to delegate isolated units of work to subagents — specialist agents (scout, researcher, reviewer, security, tester) that run in their own context windows and report back. Used extensively during parallel task execution and deep planning phases.
Adds real-time speech-to-text input. Press Ctrl+Alt+V to toggle voice transcription on or off. Supported on macOS and Linux. Transcribed text appears in the input field as you speak.
Enables Pi to capture visual context — screenshots, clipboard images, and screen regions — and include them as vision input in prompts. Paste a screenshot with Ctrl+V or Alt+V to give Pi visual context about a UI, error, or design.
Integrates Context7 for accurate, version-specific library documentation lookup. Pi uses this during research and planning phases to fetch up-to-date API references instead of relying on training data. Works out of the box; optionally set CONTEXT7_API_KEY for higher rate limits.
Provides macOS UI automation via the Accessibility API — Pi can list running apps, capture screenshots, inspect the UI tree, click elements, and type text. Active on macOS only.
Routes Pi’s interactive questions to remote messaging adapters (Slack, Discord, Telegram) when running unattended. Lets you answer Pi’s prompts from your phone or chat app during overnight autonomous runs.
Discovers AI coding tool configurations from Claude Code, Cursor, Windsurf, Gemini CLI, and other tools present in the project. Pi can import or reference existing tool configs when setting up a new session.
Provides scaffolding commands for building new slash commands and extensions: /gsd create-slash-command, /gsd create-extension, and /gsd audit. Useful when you want to extend Pi’s capabilities for your team.
Monitors Pi’s streaming output against configurable regex patterns at zero context cost. Catches unwanted patterns in real time — useful for enforcing output conventions or blocking sensitive data from appearing in responses.

Managing Extensions

Inspect and control extensions from inside a GSD session:
CommandWhat it does
/gsd extensions listList all extensions with their status (enabled, disabled, [user] for installed)
/gsd extensions enable <id>Enable a disabled bundled extension
/gsd extensions disable <id>Disable a bundled extension
/gsd extensions info <id>Show extension details, capabilities, and configuration
/gsd extensions install <spec>Install a community extension from npm, a git URL, or a local path
/gsd extensions uninstall <id>Remove a user-installed extension
/gsd extensions update [id]Update a user-installed npm extension to its latest version
/gsd extensions validate <path>Validate an extension directory against the manifest schema

Installing Community Extensions

Install community extensions from npm using the gsd install command from your shell:
gsd install <package-name>
Or from inside a GSD session:
/gsd extensions install <package-name>
Install sources are detected automatically:
  • Starts with https:// or ends with .git → cloned from git
  • Contains / or . and exists on disk → copied from local path
  • Otherwise → fetched from npm
Installed extensions land in ~/.gsd/extensions/<id>/ and are available across all projects. Restart GSD after installation to activate a new extension.

Example: Installing a Community Provider Extension

gsd install npm:pi-dashscope
This installs the pi-dashscope community extension, which adds Alibaba DashScope (ModelStudio) provider support with Qwen3, GLM-5, and other models — with proper OpenAI-compatible endpoint configuration and thinking mode support.
Uninstalling an extension warns you if other extensions depend on it. Review dependencies with /gsd extensions info <id> before uninstalling.

Building Your Own Extension

Extensions are npm packages that implement the GSD extension SDK. An extension can contribute:
  • Tools — new tools available to Pi during agent sessions
  • Slash commands — new /gsd commands for the TUI
  • UI components — dashboard widgets and visualizer tabs
  • Provider integrations — new LLM providers or model configurations
  • Hooks — event handlers that fire on auto-mode events
Validate your extension before publishing:
gsd extensions validate ./my-extension
See the Extension SDK documentation for the full manifest specification, API reference, and testing guide.