> Pi userland

Pi extensions for sharper agent sessions.

Usage overlays, structured command returns, session health lights, bash guardrails, and a little terminal personality for long-running Pi work.

before · raw pytest
pytest
================ test session starts ================
collected 3 items

test_math.py::test_adds_two_numbers_correctly PASSED
test_math.py::test_multiplies_two_numbers_correctly FAILED
test_math.py::test_does_not_divide_by_zero FAILED

____________ test_multiplies_two_numbers_correctly ____________
>       assert 3 * 4 == 99
E       assert (3 * 4) == 99

test_math.py:5: AssertionError
____________ test_does_not_divide_by_zero ____________
>       result = 1 / 0
E       ZeroDivisionError: division by zero
after · structured_return
structured_return
> pytest test_math.py --junitxml=.tmp/report.xml
cwd: project

2 failed, 1 passed
  test_math.py:5  assert (3 * 4) == 99
  test_math.py:8  ZeroDivisionError: division by zero
262 → 56 tokens
Full log preserved on disk

pi-structured-return

Explicit structured_return tool alongside bash. Compact parsed results with full logs preserved.

structured_return
> structured_return pytest test_math.py

2 failed, 1 passed
  test_math.py:5  assert (3 * 4) == 99
  test_math.py:8  ZeroDivisionError: division by zero

60–95% fewer tokens

session-hygiene

Status bar health light based on cumulative assistant cost, context tokens, and optional cache-rate info.

status bar
~/src/my-project (main)
↑34 ↓18k R868k W175k $1.982 7.4%/1.0M (auto)
🟡 session growing · 98% cache

/session-hygiene  configure thresholds

pi-yolo-seatbelt

Configurable bash safety guard. Block catastrophic commands, ask on destructive ones, allow the rest.

bash guardrail
> rm -rf /
BLOCK  rm-rf-root
catastrophic filesystem delete

> git push --force
ASK    git.push-force
confirm before history rewrite

/yolo-seatbelt-rules

pi-spinner-verbs

Replace default spinner text with themed verbs. Pick a theme, randomize each session, or point to your own verbs file.

spinner verbs
> /verbs
  game-of-thrones
  lord-of-the-rings
  doc-emrick
  weird-legalese

> /verbs doc-emrick
Shunting...
Fiddling...

/verb-status
Independent packages. Shared taste. Install one or compose several.
Install

Direct from npm into Pi

Use one package at a time, or build your own stack.

>pi install npm:@robhowley/pi-openrouter
>pi install npm:@robhowley/pi-structured-return
>pi install npm:@robhowley/session-hygiene
>pi install npm:@robhowley/pi-yolo-seatbelt
>pi install npm:@robhowley/pi-spinner-verbs