@mrclrchtr/supi

SuPi (Super Pi) — The opinionated way to extend PI

Package details

extensionprompt

Install @mrclrchtr/supi from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@mrclrchtr/supi
Package
@mrclrchtr/supi
Version
1.0.0
Published
Apr 14, 2026
Downloads
210/mo · 8/wk
Author
mrclrchtr
License
MIT
Types
extension, prompt
Size
116.4 KB
Dependencies
0 dependencies · 3 peers
Pi manifest JSON
{
  "prompts": [
    "./prompts"
  ],
  "extensions": [
    "./aliases/aliases.ts",
    "./bash-timeout/index.ts",
    "./skill-shortcut/skill-shortcut.ts",
    "./lsp/lsp.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

SuPi

Super Pi

The opinionated way to extend PI.

SuPi is an opinionated extension repo for PI with LSP, Skills, marketplace compatibility, and personal best practices built in.

  • SuPi is my curated extension stack for PI.
  • SuPi makes PI extensible, interoperable, and sane by default.

Built for the pi coding agent.

Extensions

Extension Description
aliases Registers /exit to quit pi, /e as a shorthand alias, and /clear to start a new session (alias for /new)
bash-timeout Injects a default timeout on every bash tool call when the LLM omits one. Configurable via PI_BASH_DEFAULT_TIMEOUT (seconds, default 120).
skill-shortcut Type $skill-name as a shorthand for /skill:skill-name. Autocomplete triggers on $.
lsp Adds Language Server Protocol support for hover, definitions, references, symbols, rename, code actions, and diagnostics. It appends inline diagnostics after write/edit, advertises semantic-first tool guidance, and injects concise pre-turn LSP context based on relevant active coverage or outstanding diagnostics.

Install

pi install npm:@mrclrchtr/supi
# or from git
pi install git:github.com/mrclrchtr/SuPi
# or from a local checkout
pi install /path/to/SuPi

When installed from a local path, pi loads the working tree directly; after edits, use /reload or restart pi to pick up extension changes.

LSP extension

The lsp extension is meant to make pi more semantic in supported languages:

  • exposes a single lsp tool with actions for hover, definition, references, diagnostics, symbols, rename, and code actions
  • appends LSP diagnostics after write/edit
  • adds semantic-first promptSnippet / promptGuidelines so the agent prefers lsp for code navigation and diagnostics
  • injects concise pre-turn context in before_agent_start, favoring relevant outstanding diagnostics first and otherwise summarizing relevant active LSP coverage
  • tracks prompt-mentioned and recently touched files to keep injected guidance focused
  • provides /lsp-status for server and diagnostic visibility

Configuration:

  • PI_LSP_DISABLED=1 — disable the extension
  • PI_LSP_SERVERS=rust-analyzer,pyright — allow-list servers
  • PI_LSP_SEVERITY=1|2|3|4 — inline diagnostic threshold
  • .pi-lsp.json in the project root — override/add/disable server definitions

Development

mise install
pnpm install
mise run hooks
pnpm typecheck
pnpm biome
pnpm biome:fix
pnpm biome:ci
pnpm biome:ai
pnpm test
pnpm pack:check
pnpm verify
hk run check # local pre-push checks (full pnpm verify)
hk run fix   # local pre-commit autofixes

Biome is configured in biome.jsonc with formatting, import organization, recommended lint rules, and stricter project/types/test plus aggressive complexity and nursery rules.

Publishing

Pi package docs require a pi manifest (already present) and recommend the pi-package keyword for discoverability. This package publishes the TypeScript source directly — pi loads extensions without a build step.

GitHub Actions handles verification and releases:

  • CI runs typecheck, Biome, Vitest, and npm pack --dry-run
  • Conventional Commits lints PR titles and commit messages
  • Release runs on pushes to main, uses semantic-release to determine the next version from Conventional Commits, publishes to npm, tags the release, and creates GitHub release notes

One-time setup

  • Ensure the publishing account owns the @mrclrchtr npm scope
  • Add an npm automation token as the NPM_TOKEN GitHub repository secret
  • Use Conventional Commits on merges to main so semantic-release can compute versions (feat: = minor, fix: = patch, ! / BREAKING CHANGE: = major)
  • Be aware that semantic-release starts first stable releases at 1.0.0

Release flow

pnpm verify
git push origin main

semantic-release handles version calculation, tagging, npm publishing, and GitHub release notes automatically. You can smoke-test the configuration locally with:

pnpm release -- --dry-run --no-ci

Note: local dry-runs still need git access to the GitHub remote in order to verify tagging permissions.