Back to blog
Jul 18, 2026
5 min read

Pi Extensions I Actually Use

A tour of the Pi extensions I run every day: custom Ollama Cloud provider registration, durable memory, output compaction, subagent workflows, and a few extras I keep installed.

In the last post I explained how the Pi coding agent is built around providers, tools, skills, and extensions. This one is more practical: the extensions I actually run.

My daily setup is GitHub Copilot at work and Ollama Cloud at home. Pi’s extension API is what makes that combination smooth.

pi-ollama-cloud-models

This is the extension I wrote. It auto-registers Ollama Cloud models so they show up in Pi’s model picker without manual models.json editing.

  • Fetches https://ollama.com/v1/models for the model list.
  • Calls https://ollama.com/api/show to read capabilities and context length.
  • Registers an ollama-cloud provider pointing at the local Ollama daemon (http://127.0.0.1:11434/v1).
  • Cloud-tagged models use the :cloud suffix so they don’t collide with local models.
  • Caches the catalog for an hour and adds /ollama-cloud-refresh for manual refresh.

Install it with:

pi install npm:pi-ollama-cloud-models

It pairs with my Copilot work setup: Copilot during the day, Ollama Cloud models in the evening.

Source: riogesulgon/pi-ollama-cloud-models

pi-hermes-memory

I use this one a lot. It gives Pi durable, queryable memory across sessions and projects. Facts, preferences, and project conventions persist in ~/.pi/agent/pi-hermes-memory/, so the agent can carry context forward without me restating it every chat. It also supports per-project memory, so repo-specific conventions survive across sessions.

pi-rtk-optimizer

This extension compacts and rewrites model output to keep the context window healthy. My config is in ~/.pi/agent/extensions/pi-rtk-optimizer/config.json:

  • Mode: rewrite
  • Output compaction enabled with ANSI stripping
  • Truncation at ~12,000 characters
  • Aggregates test/build/linter/search output
  • Tracks savings so I can see how much context it has saved

It is especially useful with reasoning models that can dump long chain-of-thought tokens. Without it, sessions bloat quickly.

subagent

This is the example subagent extension from the Pi repo, but I run it as a real workflow tool. It registers a subagent tool that can delegate tasks to isolated agents.

I keep four agent definitions in ~/.pi/agent/agents/:

AgentModelPurpose
scoutclaude-haiku-4-5Fast codebase recon
plannerclaude-sonnet-4-5Creates implementation plans
reviewerclaude-sonnet-4-5Code review
workerclaude-sonnet-4-5General implementation

And three prompt templates in ~/.pi/agent/prompts/:

PromptFlow
/implementscout → planner → worker
/scout-and-planscout → planner
/implement-and-reviewworker → reviewer → worker

It is handy for larger refactors where I want the model to investigate first, plan, then implement — without polluting the main conversation context.

Other installed packages

My ~/.pi/agent/settings.json also lists a few other extensions I have installed and occasionally use. These are not all active every session, but having them installed means I can turn them on without leaving the terminal:

  • pi-web-access — Web search, URL fetching, GitHub repo cloning, PDF extraction, YouTube video understanding, and local video analysis. It supports multiple search backends including OpenAI, Brave, Parallel, Tavily, Exa, Perplexity, and Gemini. Useful when I want the agent to look up docs, pull a repo, or summarize a video.

  • @ff-labs/pi-fff — FFF-powered fuzzy file and content search. FFF is a fast Rust-based file search toolkit, and this extension wires it into Pi so the agent can find files and content by fuzzy matching instead of exact grep patterns.

  • @ricoyudog/pi-goal-hermes — Goal-driven autonomous continuation. You set a goal and the agent keeps working toward it, with an LLM-based judge evaluating whether the task is actually done. Good for “just finish this” tasks that need several iterations.

  • @alexanderfortin/pi-deepseek-usage — Monitors DeepSeek API balance and displays usage in the footer. Handy when I’m using DeepSeek as a provider and want to keep an eye on credits without switching to a dashboard.

  • pi-chrome — Lets Pi use an existing signed-in Chrome profile after explicit authorization. Works with any Chromium-based browser that supports unpacked extensions and the Chrome DevTools Protocol, so Pi can interact with logged-in web apps.

  • @narumitw/pi-statusline — Replaces Pi’s default footer with an information-rich statusline. Shows model, context usage, tokens, cost, and other session state at a glance.

  • @entelligentsia/pi-ollama-cloud-usage-tracker — Live Ollama Cloud usage tracker rendered in the footer with Claude-style quota bars. Complements the Ollama Cloud provider by showing how much cloud quota I have left.

Why extensions matter

Pi’s extension API is what turns a generic agent harness into something that fits your actual workflow. For me that means:

  • Copilot at work, Ollama Cloud at home, with no manual provider switching.
  • Memory that survives across sessions.
  • Context compaction so reasoning models don’t eat the window.
  • Delegated subagents for bigger tasks.

If you’re using Pi with Copilot, extensions are where you make it yours.

Further reading

Related posts