omp packages

pi-output-styles0.3.5

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

GitHub Actions Published 17 days ago MIT ~941 downloads/mo

Built for omp

The author tagged this package oh-my-pi.

Did it work for you?

Result

One report per person. A new report replaces your old one.

Reports 0

No reports yet.

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. The choice is stored on the session, so a session switch or a tree move brings it back.
  • /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