Production-ready, independently installable Pi Coding Agent extension packages for AI coding workflows. This TypeScript monorepo publishes npm packages under @narumitw and gives Pi native tools, slash commands, and statusline integrations for LSP diagnostics and code actions across TypeScript, JavaScript, Python, Rust, Go, JSON, CSS, and more; Chrome DevTools Protocol browser automation; Firecrawl web scraping, crawling, and web search; Google GenAI grounding for Google Search, Maps, and URL context; Langfuse LLM observability; ChatGPT Codex account switching and usage status; GitHub pull request checks; autonomous goal mode with opt-in ordered queues; Codex-like plan mode; subagents; rich terminal statuslines; Cloudflare R2/S3 settings sync; public Telegraph page publishing; retry handling; side questions; and keep-awake automation.
Search keywords: Pi Coding Agent extensions, AI coding agent tools, npm Pi packages, LSP diagnostics, Language Server Protocol, Chrome DevTools Protocol, browser automation, web scraping, Firecrawl, Google GenAI grounding, Telegraph publishing, Langfuse, LLM observability, ChatGPT Codex tools, subagents, terminal statusline, Cloudflare R2 sync, S3 sync.
Install only the Pi extensions you need. Each package is published under the @narumitw npm scope and can be installed directly with the package-specific pi install npm:@narumitw/... command.
| Pi extension | What it adds | Install |
|---|---|---|
@narumitw/pi-btw |
π¬ /btw side-question command for asking quick questions without polluting the main conversation. |
pi install npm:@narumitw/pi-btw |
@narumitw/pi-caffeinate |
β Cross-platform sleep prevention while the Pi agent is processing long-running prompts. | pi install npm:@narumitw/pi-caffeinate |
@narumitw/pi-chrome-devtools |
π Native Chrome DevTools Protocol tools for listing tabs, navigating pages, evaluating JavaScript, and taking screenshots. | pi install npm:@narumitw/pi-chrome-devtools |
@narumitw/pi-codex-accounts |
π /codex-login, /codex-account, and /codex-logout for switching self-managed ChatGPT Codex subscription accounts without changing Pi's /login list. |
pi install npm:@narumitw/pi-codex-accounts |
@narumitw/pi-codex-usage |
π /codex-status command and automatic statusline item for ChatGPT Codex subscription usage, using Pi auth first and Codex CLI only as fallback. |
pi install npm:@narumitw/pi-codex-usage |
@narumitw/pi-firecrawl |
π₯ Firecrawl-powered web scraping, crawling, URL discovery, and web search tools for documentation and research workflows. | pi install npm:@narumitw/pi-firecrawl |
@narumitw/pi-github-pr |
π Passive current-branch GitHub PR checks, review, and comment counts in the statusline. | pi install npm:@narumitw/pi-github-pr |
@narumitw/pi-goal |
π― /goal mode that keeps the agent working until verified completion, with an opt-in experimental ordered queue. |
pi install npm:@narumitw/pi-goal |
@narumitw/pi-google-genai |
π Google GenAI grounding tools for Google Search, Maps, and URL context. | pi install npm:@narumitw/pi-google-genai |
@narumitw/pi-langfuse |
πͺ’ Langfuse traces for Pi agent runs, LLM generations, token usage, costs, and tool activity. | pi install npm:@narumitw/pi-langfuse |
@narumitw/pi-lsp |
π§ Language-agnostic LSP diagnostics and code actions for TypeScript, JavaScript, Python, Rust, Go, JSON, CSS, and more through configured language servers. | pi install npm:@narumitw/pi-lsp |
@narumitw/pi-plan-mode |
π§ Codex-like read-only /plan collaboration mode with safe exploration and implementation-ready plans. |
pi install npm:@narumitw/pi-plan-mode |
@narumitw/pi-retry |
π Retry support for unknown provider errors, retryable Codex backend failures, websocket limits, and stalled streams. | pi install npm:@narumitw/pi-retry |
@narumitw/pi-statusline |
β¨ A rich Pi terminal statusline with model, tools, git branch/status, context usage, token totals, cost, and time. | pi install npm:@narumitw/pi-statusline |
@narumitw/pi-sync |
βοΈ Sync allowlisted Pi settings, skills, prompts, themes, extensions, and optional sessions through Cloudflare R2 or S3-compatible storage. | pi install npm:@narumitw/pi-sync |
@narumitw/pi-subagents |
π€ Delegate work to specialized isolated subagents with single, parallel, and chained execution modes. | pi install npm:@narumitw/pi-subagents |
@narumitw/pi-telegraph |
π Publish Markdown files and optionally enable agent tools to create, read, or edit public Telegraph pages. | pi install npm:@narumitw/pi-telegraph |
Install a package from npm:
pi install npm:@narumitw/pi-goalTry an extension once without adding it permanently:
pi -e npm:@narumitw/pi-statusline
pi -e npm:@narumitw/pi-syncUse multiple Pi extensions together:
pi -e npm:@narumitw/pi-goal -e npm:@narumitw/pi-statusline -e npm:@narumitw/pi-lspUse @narumitw/pi-lsp to let Pi run configurable Language Server Protocol servers through one shared runner. Without custom config, it routes matching files through Biome, ty, Ruff, rust-analyzer, and gopls when those commands are available. Configure servers in .pi/pi-lsp.json, ~/.pi/agent/pi-lsp.json, or PI_LSP_CONFIG with simple { command, extensions } entries, then use Pi tools for diagnostics and source code actions. The older split packages @narumitw/pi-biome-lsp and @narumitw/pi-python-lsp are deprecated, kept for reference, and excluded from active workspace scripts.
Use @narumitw/pi-lsp to route TypeScript, JavaScript, JSON, CSS, and other supported files to biome lsp-proxy for diagnostics and source actions such as organize imports or fix-all code actions.
Use @narumitw/pi-chrome-devtools when you want the Pi agent to inspect browser tabs, navigate web apps, run JavaScript in Chrome, or capture screenshots through the Chrome DevTools Protocol.
Use @narumitw/pi-firecrawl to give Pi native Firecrawl tools for scraping markdown or HTML, mapping URLs, crawling websites, and searching the web from inside an agent workflow.
Use @narumitw/pi-google-genai to give Pi Google Search, Google Maps, and URL-context grounding through Gemini Interactions with Pi Google auth or a private pi-google-genai.json config.
Use @narumitw/pi-telegraph to publish local Markdown files with /telegraph create, or opt into agent tools that create raw/Markdown pages, retrieve them as Markdown/JSON, and apply confirmed partial edits. Credentials and tool selection stay in a private pi-telegraph.json file.
Use @narumitw/pi-langfuse to send Pi agent, generation, token usage, cost, and tool spans to Langfuse with credentials stored in a private pi-langfuse.json file.
Use @narumitw/pi-codex-accounts to keep multiple ChatGPT Codex subscription accounts in a private pi-codex-accounts.json file and switch the active account with /codex-account. It does not add provider aliases or change Pi's built-in /login provider list.
Use @narumitw/pi-codex-usage to show ChatGPT Codex subscription usage and reset windows from Pi with /codex-status. When the current model uses openai-codex, it also shows compact quota status in the statusline. It uses Pi's OpenAI Codex auth first, so Codex CLI is optional.
Use @narumitw/pi-github-pr to passively show the current branch PR number, checks state, review state, and comment/review count in Pi's statusline through the authenticated gh CLI.
Use @narumitw/pi-lsp to route Python files to configured servers such as ty server for type diagnostics and ruff server for lint diagnostics or source actions such as import organization.
Use @narumitw/pi-goal for long-running implementation, debugging, refactoring, or verification work where the agent should continue past planning and call goal_complete only after the active goal is done. Single-goal behavior remains the default. Set experimental.goals to true in ~/.pi/agent/pi-goal.json to add ordered /goal add, prioritize, drop-last, and skip operations while retaining the same singular command and tools.
Use @narumitw/pi-plan-mode when you want a Codex-like /plan mode where the agent explores with read-only tools, asks structured questions, and produces an implementation-ready plan before editing.
@narumitw/pi-telegram-bot and @narumitw/pi-wait-what are deprecated and kept under extensions/deprecated/ for reference.
Use @narumitw/pi-subagents when you want the Pi agent to delegate scouting, planning, review, or implementation work to isolated worker processes with single, parallel, or chained execution.
Use @narumitw/pi-btw, @narumitw/pi-caffeinate, @narumitw/pi-retry, and @narumitw/pi-statusline to improve day-to-day Pi coding agent sessions with side questions, sleep prevention, automatic retry hints, and a more informative terminal UI.
Install dependencies from the repository root:
npm installRun the full repository check:
npm run checkTry a package locally:
pi -e ./extensions/pi-btw
pi -e ./extensions/pi-caffeinate
pi -e ./extensions/pi-chrome-devtools
pi -e ./extensions/pi-codex-accounts
pi -e ./extensions/pi-codex-usage
pi -e ./extensions/pi-firecrawl
pi -e ./extensions/pi-github-pr
pi -e ./extensions/pi-goal
pi -e ./extensions/pi-google-genai
pi -e ./extensions/pi-langfuse
pi -e ./extensions/pi-lsp
pi -e ./extensions/pi-plan-mode
pi -e ./extensions/pi-retry
pi -e ./extensions/pi-statusline
pi -e ./extensions/pi-sync
pi -e ./extensions/pi-subagents
pi -e ./extensions/pi-telegraphPreview npm package contents before publishing:
npm run pack:btw
npm run pack:caffeinate
npm run pack:chrome-devtools
npm run pack:codex-accounts
npm run pack:codex-usage
npm run pack:firecrawl
npm run pack:github-pr
npm run pack:goal
npm run pack:google-genai
npm run pack:langfuse
npm run pack:lsp
npm run pack:plan-mode
npm run pack:retry
npm run pack:statusline
npm run pack:sync
npm run pack:subagents
npm run pack:telegraphPublishing note for new scoped packages: just npm-public @narumitw/pi-new-extension only changes visibility for an already-published package. If npm returns 404 for a brand-new package, create it first with the new package's workspace name, for example:
npm publish --workspace @narumitw/pi-new-extension --access publicextensions/
βββ deprecated/
β βββ pi-auto-thinking/
β βββ pi-biome-lsp/
β βββ pi-python-lsp/
β βββ pi-sidebar/
β βββ pi-telegram-bot/
β βββ pi-wait-what/
βββ pi-btw/
βββ pi-caffeinate/
βββ pi-chrome-devtools/
βββ pi-codex-accounts/
βββ pi-codex-usage/
βββ pi-firecrawl/
βββ pi-github-pr/
βββ pi-goal/
βββ pi-google-genai/
βββ pi-langfuse/
βββ pi-lsp/
βββ pi-plan-mode/
βββ pi-retry/
βββ pi-statusline/
βββ pi-sync/
βββ pi-subagents/
βββ pi-telegraph/Each production extension package contains its own package.json, README.md, LICENSE, tsconfig.json, and TypeScript source under src/. Experimental extensions live under extensions/experimental/, remain covered by root checks, and may be published only through an explicit local maintainer recipeβnot publish-all or GitHub workflows. Deprecated packages live under extensions/deprecated/ and are excluded from workspace scripts.
MIT. See LICENSE.