npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

pi-think

v0.1.4

Published

Explicit, tool-driven reasoning for Pi.

Readme

pi-think

Explicit, tool-driven reasoning for Pi.

pi-think disables the model provider's native reasoning and gives the agent a private think tool instead. The agent uses that tool to work through intent, assumptions, ambiguity, alternatives, and consequences before it continues.

Why this exists

pi-think is an experimental extension for exploring how explicit reasoning prompts affect coding agents. It is built for experimentation, personal tuning, and fun. It lets you shape what the agent should consider instead of accepting a provider's fixed reasoning pipeline.

There is no proven general performance gain, and the project is not an attempt to distill or reproduce a provider's hidden reasoning. The author's own informal use suggests that explicit reasoning can help some models stay on long-running tasks and follow instructions more consistently. That is anecdotal, not a benchmark or a guarantee.

The useful part is control. You can change the reasoning prompt, tell the agent which concepts to examine, and influence how often it pauses to reason. This creates room to try different prompts, model-specific workflows, structured state, or other experiments.

What it does

  • Adds a private think scratchpad to Pi.
  • Uses Pi's real provider-specific thinking-off controls.
  • Can require another reasoning pass after tools return new information (except on OpenAI Codex Responses, where forced post-tool passes can cause unbounded provider streams).
  • Renders reasoning as a compact block that can be expanded.
  • Refuses to run when a model cannot fully disable native reasoning.

pi-think does not treat minimal or low reasoning as off. If Pi marks a model's off level as unsupported, the extension disables its external reasoning mode and shows a warning.

Install

Install from npm:

pi install npm:pi-think

Or install from GitHub:

pi install git:github.com/alexshpunt/pi-think

You can also try it without installing:

pi -e npm:pi-think

Use

Run /think to open the settings panel.

  • on enables the think tool when Pi's thinking level is off and the selected model supports a real native-reasoning off mode.
  • off removes the tool.

Keep Pi's thinking level set to off. The provider then receives its native hard-off setting, while the agent reasons through the extension's think tool.

Custom reasoning prompt

The default reasoning prompt is included in resources/reasoning.md.

To replace it, create:

~/.pi/agent/reasoning.override.md

The override is loaded when the extension starts. Run /reload after changing it.

Provider support

The extension relies on Pi's model metadata and provider serializers instead of guessing from model names. Pi currently handles hard-off controls such as:

  • reasoning.effort: "none"
  • thinking: { type: "disabled" }
  • enable_thinking: false
  • thinkingBudget: 0

Support depends on the selected provider, API dialect, and model. Models that cannot fully disable native reasoning are not supported.

Project direction

The extension may grow as it is used, but there is no promised roadmap. Issues, experiments, and forks are welcome.

Changes can be integrated when they strengthen the original idea: give people a simple, general way to control reasoning in Pi. Features that lock the extension into one model, one workflow, or one strongly opinionated prompting method are better kept as separate experiments or forks.

This follows Pi's philosophy: provide a small, direct mechanism and let users shape it for their own work.

License

MIT