Extensions · optional trusted code

Start with a working extension. Make it yours.

Choose a recommended add-on for a richer setup, use the source as a template, or inspect experimental work separately.

Available now

Templates · build your own

Use working source as a starting point.

Copy the closest surface

Choose a panel, action, tab, footer, or setting example. Copy it from a repository checkout and run /reload.

Compare source examples →

Adapt deliberately

Read the trusted TypeScript, change the workflow for your project, and keep only the permissions and surfaces it needs.

Build-your-own workflow →

Use the API directly

The extension documentation is the canonical reference when none of the templates is close enough.

Read the extension API ↗

Experimental · opt-in

Orchestration stays clearly separate.

This source has additional setup and a wider behavioral boundary. Treat it as something to evaluate, not a recommended default.

Experimental · opt-inExperimental · opt-in

Session Orchestration

Spawned workers remain ordinary, visible pi-web sessions with their relationship to the coordinator. This extension is not a recommended default and does not work from the TypeScript file alone.

  • Requires the companion skill
  • Requires configured model categories
  • Inspect source and setup before /reload
Inspect experimental source ↗
Coordinator and spawned worker sessions shown in the pi-web session drawer
The result of orchestration: an ordinary worker session nested under its coordinator.
Experimental · opt-inTools · visible sessions

Session orchestration

Spawn and monitor ordinary worker sessions.

Experimental · opt-in. Requires the companion skill and configured model categories.

Copy from a checkout
mkdir -p .pi/web/extensions && cp examples/pi-web-extensions/session-orchestrator.ts .pi/web/extensions/
/reload
Ask your agent

“Review the orchestrator and companion skill before proposing a research category.”

Source ↗

Trusted code

Read before reload.

Extensions run locally through pi and may access files, invoke commands, affect agent behavior, or render trusted HTML. Delete the copied file and run /reload to remove one.

Need a different workflow?

Use the source as a starting point.