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-output-styles

v0.3.4

Published

Named, swappable system-prompt styles for Oh My Pi (OMP) and Pi — live /style switcher that replaces the personality slot.

Readme

pi-output-styles

npm version npm downloads CI license

Named, swappable system-prompt styles for Oh My Pi (OMP) and Pi — with a live /style switcher. Unlike Claude Code's output styles (which need /clear to switch), styles here apply and switch live, mid-session.

An active style replaces everything from # Personality through the next § heading (including nested # Tone / # Reasoning). Tools, skills, Role, Engineering, Runtime, and later project/safety blocks stay. Applied every turn. Custom SYSTEM.md with no personality heading: inject before § Runtime, else before the first other §, else at the end of block 0.

/style demo

Install

# Oh My Pi
omp plugin install npm:pi-output-styles
# or from source:
omp plugin install github:LoneExile/pi-output-styles

# Pi
pi install npm:pi-output-styles
# or from source:
pi install git:github.com/LoneExile/pi-output-styles

Then start a new session. Extensions do not hot-reload.

Upgrading from 0.2.x

0.2.x appended a footnote. 0.3+ replaces the personality slot. Lens styles (concise, reviewer, ste, diagrams-first, explanatory) now stand alone. Pin 0.2.1 if you need append. Uninstall first — install alone is a no-op on an existing OMP plugin:

omp plugin uninstall pi-output-styles && omp plugin install npm:pi-output-styles
pi uninstall npm:pi-output-styles && pi install npm:pi-output-styles

Then a new session.

Use

  • /style — show the active style and list available ones.
  • /style <name> — activate a style for this session.
  • /style <name> --save — also save it as your personal (user) default.
  • /style <name> --project — save it as the project default (committed with the repo).
  • /style off — clear the active style for this session (overrides any saved default). none is an alias; off --save / off --project also clears the saved default.
  • While composing /style, a hint line below the input shows the available flags (--save / --project).

The style is applied every turn. The status line shows style: eli5 by default. /style off restores OMP’s default personality on the next turn.

Bundled styles

omp-default · omp-friendly · omp-pragmatic · concise · explanatory · teacher · reviewer · diagrams-first · ste · eli5.

omp-default / omp-friendly / omp-pragmatic are Oh My Pi's own built-in personality presets (default is the voice active when no style is selected). Useful to pin one explicitly, or as a base for Pi users (who have no native personality picker).

ste writes in ASD-STE100 Simplified Technical English. It also uses the v2.0 action-first reply shape for person-addressed replies, tasks, issues, pull request descriptions, and commit messages. The style adapts Ege Chelebi's ste-writing skill.

eli5 is Lydia Hallie's ELI5 style.

Custom styles

Drop a Markdown file in either location (filename = style name unless overridden):

  • Project: <repo>/.omp/output-styles/<name>.md
  • Personal: ~/.omp/agent/output-styles/<name>.md
---
name: teacher
description: Teach as you go
---
Act as a patient teacher. Explain the concept before applying it.

The body becomes the personality slot. Precedence — definitions: project > user > bundled; which style is active: session /style > user default > project default.

Config

  • PI_OUTPUT_STYLES_HOME — override the user config base (default ~/.omp/agent).
  • User state (written by --save): ~/.omp/agent/pi-output-styles.json (base overridable via PI_OUTPUT_STYLES_HOME).
  • Project state (written by --project, git-tracked): <repo>/.omp/pi-output-styles.json.

Hide the status indicator

The indicator is visible by default. To hide it without disabling the active output style:

  1. Choose the scope:
    • all projects: edit ~/.omp/agent/pi-output-styles.json
    • current project: edit <repo>/.omp/pi-output-styles.json
  2. Add "showStatus": false to the JSON object. Create the file if it does not exist. showStatus must be a JSON boolean (false, not "false"); other values are ignored.
  3. Send the next prompt or run /style <name> to refresh the footer. A restart is not required.

A status-only user setting is valid:

{
  "showStatus": false
}

It can also live alongside a saved style:

{
  "active": "explanatory",
  "showStatus": false
}

Set showStatus to true to restore the indicator. Removing it falls back to the project value, then to the visible default. The user value takes precedence over the project value, so check the user state file if a project setting appears to have no effect. Changing styles with --save or --project preserves every other key in the file, including ones this version does not recognise.

If a state file cannot be read

A state file that is not a JSON object — invalid JSON, or valid JSON such as [] or null — is ignored in full: the saved style stops applying and showStatus stops being honoured. Because that looks exactly like having saved nothing, the extension tells you instead of failing quietly:

  • a warning naming the offending file is shown once per session at startup;
  • --save, --project and off refuse to write to it rather than replacing your file with a fresh one, and report that the save failed. The session-scoped part of the command still takes effect (/style teacher --save still switches this session to teacher; /style off --save still turns styling off for this session) — only the persisted default is left as it was.

Fix the file — a trailing comma is the usual culprit — and the saved settings take effect again on the next prompt. A UTF-8 byte-order mark is tolerated.

Develop

bun install
bun test
bun x tsc --noEmit