mcp server
pi-extensions
Extensions, tools, and integrations for the pi coding agent.
Set up
Runs on your computer. Pick your agent and operating system.
Before you start
- Node.js 20 or newer
{
"mcpServers": {
"feniix-pi-extensions": {
"command": "npx",
"args": [
"-y",
"@feniix/pi-ref-tools"
]
}
}
}same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12
Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs
README
synced Nov 1, 2026Pi extensions
A monorepo of extensions, tools, and integrations for
pi, the AI coding agent. Each package is versioned and
published independently under the @feniix
npm scope.
More about why this exists and where it is useful: feniix-hq.net/projects/pi-extensions.
Packages
| Package | What it adds |
|---|---|
@feniix/pi-devtools | Branch, pull-request, merge, CI, and release workflows |
@feniix/pi-exa | Exa search, content retrieval, grounded answers, and research planning |
@feniix/pi-notion | Notion access through the official Notion MCP server |
@feniix/pi-ref-tools | Token-efficient technical documentation search through Ref.tools |
@feniix/pi-statusline | A two-line terminal status display for model, context, Git, token, and skill state |
Follow a package link for its requirements, configuration, tool reference, and security notes.
Retired packages
These packages are no longer maintained. Each had a final archival release on npm and its history now lives in an archived repository. Do not start new work on them.
| Package | What it added | Archive |
|---|---|---|
@feniix/pi-code-reasoning | Reflective sequential reasoning with branching and revision support for pi and MCP | feniix/pi-code-reasoning |
@feniix/pi-sequential-thinking | Structured progressive thinking through defined cognitive stages | feniix/pi-sequential-thinking |
@feniix/pi-specdocs | PRD, ADR, and implementation-plan documentation workflows | feniix/pi-specdocs |
@feniix/pi-conductor | Local control plane for parallel pi workers across Git worktrees | feniix/pi-conductor |
The specs that described them stay under docs/, marked superseded or
archived.
Install
Install only the package you need:
pi install npm:@feniix/pi-devtools
Run a package for one session without installing it:
pi -e npm:@feniix/pi-devtools
Replace pi-devtools with any package name from the table above.
Develop
This repository is a pnpm workspace. It requires Node.js 22.19.0 or newer
and pnpm 12.8.1 (pinned in package.json).
Provision the pinned package manager separately from repository dependencies:
npm install --global pnpm@12.8.1
pnpm --version
An already configured Corepack/mise installation of the same version also works.
pnpm install --frozen-lockfile
pnpm run check
pnpm test
Useful commands:
pnpm run lint
pnpm run typecheck
pnpm run test:coverage
pnpm run audit:workspaces
The audit command covers the entire shared lockfile, including root development dependencies, and preserves pnpm's vulnerability/registry error exit status. It does not add an audit gate to the release workflow.
Tools fail when dependencies are stale instead of automatically reinstalling.
After editing dependencies, run pnpm install and review pnpm-lock.yaml.
Dependency install scripts are reviewed per version in pnpm-workspace.yaml;
new script-bearing versions require an explicit approval or denial.
To bump only one package without creating a Git tag/commit:
pnpm --filter @feniix/pi-devtools --fail-if-no-match -r version patch --no-git-tag-version
pnpm install --lockfile-only
pnpm install --frozen-lockfile
Review the targeted manifest and any lockfile changes before committing. npm
registry lookup and provenance publication remain npm operations; the bridgekit
CLI wrapper also retains its upstream npm-based missing-build fallback. Public
pi install npm:... selectors are unchanged. Release dry-run skips publishing
but does not validate packed artifacts or publication authorization.
The publish job explicitly installs and verifies npm 11.21.0 for trusted
publishing (OIDC requires npm >=11.5.1); Node 22's bundled npm 10 is insufficient.
Dependency installation still uses the pinned pnpm version and frozen lockfile.
Merging a package version bump to main automatically triggers publication.
After a publication-tooling fix is merged, recover an unpublished version by
dispatching release.yml on main with package_filter=pi-statusline (or the
affected package) and dry_run=false; do not rerun an old job that uses the
broken workflow. A dry_run=true dispatch can validate package checks first,
but it skips the publish job, including npm setup and OIDC authentication.
Every package release requires a CHANGELOG.md entry headed
## [X.Y.Z] - YYYY-MM-DD matching its manifest version, with nonempty release
notes. Keep pending changes under ## [Unreleased], then move them to a dated
version entry in the same commit as the version bump. The release workflow
validates this during checks (including dry runs) and again before npm publication.
To validate locally: node scripts/check-release-changelog.mjs packages/pi-exa
(or pass multiple maintained package directories).
To load one package directly from a checkout:
pi -e ./packages/pi-devtools
Package tests live alongside their extension under
packages/<package>/__tests__/. Shared CI detects affected packages and runs
package-scoped lint, type checking, tests, and coverage checks on the latest
Node.js 22 release, matching Pi's upstream CI. Every published extension
declares the same Node.js 22.19.0 minimum as Pi.
Development typings are pinned to @types/node 22.19.19, matching Pi upstream;
typings patch versions are independent of Node.js runtime patch versions.
Repository structure
packages/ independently published pi packages
docs/solutions/ write-ups for solved implementation problems
scripts/ workspace audit and CI change-detection helpers
CONCEPTS.md shared project vocabulary
License
MIT. See LICENSE. Individual packages also include a copy of the
license in their published artifacts.