jmcombs-pi-headroom

内容来源:README.md(说明文档) · 原始地址 · 查看安装指南

原始内容

pi-extensions

A monorepo of high-quality extensions for the Pi coding agent.

Every package here is a Pi extension that can be installed individually from npm. Packages are tagged with the pi-package keyword so they appear in the pi.dev gallery.

Packages

Package npm Description
@jmcombs/pi-1password npm 1Password secret injection — read secrets and run commands with credentials via the op CLI.
@jmcombs/pi-better-toolsy npm Drop-in replacements for the built-in ls/read/grep/find/edit/write tools, with .gitignore awareness, path-traversal protection, and injection-safe edits.
@jmcombs/pi-blue-psl-10k npm Powerline-styled status footer (Blue PSL 10K theme) — git, context usage, token counts, and cost on one line.
@jmcombs/pi-context7 npm Real-time, version-accurate library documentation via Context7.
@jmcombs/pi-grok-search npm Real-time web search via the xAI Grok API.
@jmcombs/pi-headroom npm Whole-conversation context compression via a local Headroom proxy, with graceful passthrough when it is unreachable.
@jmcombs/pi-notify npm Terminal notifications (OSC 777/9/99) when Pi finishes a turn — Ghostty, iTerm2, WezTerm, Kitty, and more. No OS binaries.
@jmcombs/pi-prompt-enhancer npm Codebase-aware prompt enhancer that rewrites rough prompts into precise ones with project tree, git context, and referenced file contents.
@jmcombs/pi-tavily-search npm Real-time web search via the Tavily API.

1Password credential API

Extensions that need a user-provided secret resolve it through the shared @jmcombs/pi-1password credential API. Developer docs:

Install an Extension

# Install globally
pi install npm:@jmcombs/pi-tavily-search

# Or try one for a single session
pi -e npm:@jmcombs/pi-tavily-search

See the Pi packages documentation for additional install options (git, local path, project-scoped, filtering, etc.).

Repository Layout

pi-extensions/
├── packages/
│   ├── _template/          # Scaffold for new extensions (see TEMPLATE.md)
│   └── <extension-name>/   # One directory per published package
├── scripts/
│   └── sync-versions.mjs   # Validates each package conforms to project conventions
├── .github/workflows/      # CI + Release Please
├── release-please-config.json
├── .release-please-manifest.json
└── …shared tooling (biome, vitest, husky, commitlint, secretlint)

Requirements

  • Node.js >= 22.0.0 (CI tests on Node 22 and Node 24; the release pipeline runs on Node 24)
  • npm 10+ (Node 24 ships npm 11+, required for npm Trusted Publishing)

Quality Gate

Every PR runs the same npm run check gate:

npm run check

This runs lint (including formatting), type check, tests, version validation, and security checks (secretlint + npm audit --omit=dev). All packages must pass.

See docs/ci.md for every CI check and what a green does and does not prove.

Branch Protection

The main branch is protected by a GitHub Repository Ruleset that requires PR review from @jmcombs, all CI checks green on Node 22 and Node 24, Conventional Commits, and a linear history. The maintainer can push directly to main via the admin bypass; outside contributors must go through PR review. See CONTRIBUTING.md → Branch Protection for the full rule list and rationale.

Adding a New Extension

  1. Read CONTRIBUTING.md.
  2. Copy packages/_template/ and follow TEMPLATE.md.
  3. Open a PR. Release Please will produce a per-package release PR after merge.

Versioning & Releases

Each package is versioned independently with semver. See VERSIONING.md for the full policy. Releases are automated via Release Please and published to npm using npm Trusted Publishing (OIDC).

License

MIT © Jeremy Combs