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-unslop-rules

v0.1.1

Published

Pi extension. Appends the pstack unslop writing rules to the system prompt every turn, so the model's prose stays free of AI tells for the whole session.

Readme

pi-unslop-rules

Keeps the Pi coding agent writing like a person for a whole session, not just for the reply after you ask it to.

It appends the pstack unslop rules to the system prompt on every turn: 31 patterns covering AI vocabulary, em dash overuse, rule-of-three padding, "not just X but Y", title case headings, and the rest.

Installation

pi install npm:pi-unslop-rules

That is the whole setup. There is no config, no command and no toggle. Load the extension and it is on; disable the extension and it is off.

Why not just install unslop as a skill

Pi has a skill system, and unslop is a skill, so this looks like a package that should not need to exist. Two things stop that from working.

Upstream's SKILL.md sets disable-model-invocation: true, and Pi's formatSkillsForPrompt drops those skills from the prompt entirely. They are reachable only through /skill:unslop. Strip the flag and the skill does reach the prompt, but only as a name and a one-line description that the model may or may not act on.

Either way it is opt-in per turn. Writing rules that apply on request are rules that apply to the reply where you remembered to ask.

So this extension takes the one hook that runs every turn:

pi.on("before_agent_start", (event) => ({
  systemPrompt: `${event.systemPrompt}\n\n${UNSLOP}`,
}));

before_agent_start fires after the prompt is assembled and before the agent loop, so the text goes back in after compaction, after /resume, and after a fork. Roughly 1.8k tokens per turn, in the cached part of the prompt.

What it will not touch

The vendored text opens with a scope section that upstream does not have, because upstream assumes you invoke the skill deliberately. Always-on needs a boundary. Code, identifiers, string literals and test fixtures are out. A file with an established style wins over the rules, so a README already in Title Case stays in Title Case. Commit messages following a project convention are out, and so is anything you asked the model to reproduce verbatim.

Credit

The 31 patterns are from pstack by Lauren Tan, MIT licensed, vendored from commit 73f8be4. See src/unslop.md; everything from ## Process down is theirs, verbatim. The persistence and scope sections above it are ours.

License

MIT. Both copyright holders are named in LICENSE; the pstack line has to stay there for the package to be licensed at all.