Skip to content
This repository was archived by the owner on Aug 29, 2026. It is now read-only.

Latest commit

 

History

History
52 lines (37 loc) · 1.75 KB

File metadata and controls

52 lines (37 loc) · 1.75 KB

Agent Instructions

Pi extensions monorepo. Each package in packages/ is an independent pi extension published to npm under @ogulcancelik/.

Structure

packages/
  pi-spar/               # agent-to-agent sparring
  pi-session-recall/     # search past sessions
  pi-handoff/            # session context transfer
  pi-web-browse/         # headless browser browsing
  pi-sketch/             # visual sketching
  pi-goal/               # autonomous goal pursuit
  pi-ghostty-theme-sync/ # sync pi theme with ghostty colors

Each package has its own package.json with "pi": { "extensions": [...] } declaring entry points.

Writing Extensions

Extensions are TypeScript loaded by pi via jiti — no build step. The entry point exports a default function receiving ExtensionAPI.

Available imports:

  • @earendil-works/pi-coding-agent — extension types, components, utilities
  • @earendil-works/pi-tui — TUI components (Text, Container, SelectList, etc.)
  • @earendil-works/pi-ai — AI types (Message, Model, StringEnum)
  • @sinclair/typebox — schema definitions for tool parameters

Pi extension docs: https://github.com/earendil-works/pi/blob/main/packages/coding-agent/docs/extensions.md

Adding a Package

  1. Create packages/pi-<name>/ with package.json, index.ts, README.md, LICENSE
  2. Use @ogulcancelik/pi-<name> as the npm package name
  3. Set "pi": { "extensions": ["./index.ts"] } in package.json

Publishing

cd packages/pi-<name>
npm version patch   # or minor/major
npm publish --access public

Then commit the version bump and push.

Conventions

  • TypeScript, no build step
  • Lowercase, conventional commits, no emojis
  • Each package is independent — no cross-package dependencies