原始内容
pi-extension monorepo
Standalone pi extensions managed in one repository and published as separate npm packages.
Structure
packages/
ask-user-question/
auto-name/
cc-system-prompt/
claude-hooks-bridge/
claude-mcp-bridge/
claude-spinner/
clipboard/
codex-fast-mode/
codex-large-context/ (deprecated)
cross-agent/
delayed-action/
diff-review/
generative-ui/
headroom/ (deprecated)
idle-screensaver/
memory-layer/
open-pr/
setup-sh/
subagent/
todo-write/ (deprecated, use todo-write-overlay)
todo-write-overlay/
until/
Workspace
This repository uses pnpm workspaces for local management and npm-compatible package manifests for publishing.
Quality gates
This monorepo uses Biome as the single formatter/linter, Vitest for automated tests, and Lefthook for local Git hooks.
pnpm run biome:check
pnpm run biome:strict
pnpm run typecheck
pnpm run test
pnpm run coverage:check
pnpm run verify
pnpm run verify:strict
pnpm run biome:check: format, lint, and import-order validation with Biomepnpm run biome:strict: same asbiome:check, but fails on warnings via Biome CLI--error-on-warningspnpm run typecheck: TypeScript validation withtsc --noEmitpnpm run test: run all extension tests with Vitestpnpm run coverage:check: run Vitest coverage with 100% thresholds and per-file enforcement for the covered package sourcespnpm run verify: legacy pre-publish gate (biome + typecheck + test + workspace check)pnpm run verify:strict: strict gate (biome:strict + typecheck + test + workspace check + coverage:check)
Git hooks
pnpm install runs the Lefthook prepare script (lefthook install --reset-hooks-path) and installs local hooks automatically from lefthook.yml, clearing an old Husky core.hooksPath during migration.
pre-commit:pnpm run precommit:strictbiome check --staged --error-on-warningspnpm run typecheckpnpm run test
pre-push:pnpm run prepush:strictpnpm run verify:strict
You can also validate and invoke the configured hooks manually with:
pnpm exec lefthook validate
pnpm exec lefthook run pre-commit
pnpm exec lefthook run pre-push
Coverage is enforced with Vitest's per-file 100% thresholds for the deterministic source modules listed in vitest.config.ts:
packages/auto-name/utils/**/*.tspackages/clipboard/index.tspackages/codex-fast-mode/index.tspackages/generative-ui/{guidelines.ts,html-utils.ts,svg-styles.ts}
Interactive/runtime-heavy extension entrypoints remain validated by the normal test suite in pnpm run test, but are intentionally outside the strict coverage gate.
Install from npm
pi install npm:@ryan_nookpi/pi-extension-ask-user-question
pi install npm:@ryan_nookpi/pi-extension-auto-name
pi install npm:@ryan_nookpi/pi-extension-cc-system-prompt
pi install npm:@ryan_nookpi/pi-extension-claude-hooks-bridge
pi install npm:@ryan_nookpi/pi-extension-claude-mcp-bridge
pi install npm:@ryan_nookpi/pi-extension-claude-spinner
pi install npm:@ryan_nookpi/pi-extension-clipboard
pi install npm:@ryan_nookpi/pi-extension-codex-fast-mode
pi install npm:@ryan_nookpi/pi-extension-cross-agent
pi install npm:@ryan_nookpi/pi-extension-delayed-action
pi install npm:@ryan_nookpi/pi-extension-diff-review
pi install npm:@ryan_nookpi/pi-extension-generative-ui
pi install npm:@ryan_nookpi/pi-extension-idle-screensaver
pi install npm:@ryan_nookpi/pi-extension-memory-layer
pi install npm:@ryan_nookpi/pi-extension-open-pr
pi install npm:@ryan_nookpi/pi-extension-setup-sh
pi install npm:@ryan_nookpi/pi-extension-subagent
pi install npm:@ryan_nookpi/pi-extension-todo-write-overlay
pi install npm:@ryan_nookpi/pi-extension-until