pi-sidequest

A side channel for context-aware questions in Pi.

Packages

Package details

extension

Install pi-sidequest from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-sidequest
Package
pi-sidequest
Version
1.0.2
Published
Jul 3, 2026
Downloads
623/mo · 45/wk
Author
peter.pistorius
License
MIT
Types
extension
Size
58.9 KB
Dependencies
0 dependencies · 3 peers
Pi manifest JSON
{
  "extensions": [
    "./src/index.ts"
  ],
  "video": "https://cdn.jsdelivr.net/gh/peterp/pi-sidequest@main/media/sidequest-demo.mp4",
  "image": "https://cdn.jsdelivr.net/gh/peterp/pi-sidequest@main/media/sidequest-demo.webp"
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

Sidequest

Sidequest gives Pi a side channel: ask context-aware questions without pulling the main conversation off track.

Think of it as a better /btw: grounded in the active Pi session, threaded, persistent, and tool-capable.

Demo

Sidequest demo

Download the MP4 demo

Install

From npm:

pi install npm:pi-sidequest

From GitHub:

pi install git:github.com/peterp/pi-sidequest

For local development:

pi -e /absolute/path/to/pi-sidequest

Or link src/ as an auto-discovered extension directory:

ln -s /absolute/path/to/pi-sidequest/src ~/.pi/agent/extensions/sidequest

Use

Open Sidequest inside Pi:

/sidequest

Default quake console keys:

§
~

Sidequest has two focus areas:

  • selection: choose root or a thread
  • prompt: type and ask the next question

Press Tab to move between them. The inactive area shows [tab] in its border.

Configure the Quake key

Use an env var:

PI_SIDEQUEST_QUAKE_KEY='`'

or a config file:

// ~/.pi/agent/sidequest.json
{
  "quakeKey": "`"
}

Multiple keys are supported:

PI_SIDEQUEST_QUAKE_KEYS='§,~,alt+s'
{
  "quakeKeys": ["§", "~", "alt+s"]
}

Tools

Sidequest runs its own isolated, tool-capable Pi worker. By default it enables:

read, grep, find, ls, sidequest_web_search, sidequest_web_fetch

Override the allowlist:

PI_SIDEQUEST_TOOLS='read,grep,find,ls,sidequest_web_search,sidequest_web_fetch'

sidequest_web_search uses Brave Search when BRAVE_SEARCH_API_KEY is set. Otherwise it falls back to DuckDuckGo HTML search. sidequest_web_fetch fetches public HTTP(S) pages and extracts readable text.

Release

Releases use Changesets and npm trusted publishing. See RELEASE.md for the full process.

For user-facing changes, add a changeset:

npm run changeset

Merging changes to main opens or updates the release PR. Merging that release PR publishes to npm and creates the GitHub release.