@fgladisch/pi-caveman
Always-on caveman mode extension for Pi
Package details
Install @fgladisch/pi-caveman from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@fgladisch/pi-caveman- Package
@fgladisch/pi-caveman- Version
0.1.0- Published
- Apr 30, 2026
- Downloads
- not available
- Author
- fgladisch
- License
- MIT
- Types
- package
- Size
- 10.6 KB
- Dependencies
- 0 dependencies · 1 peer
Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
@fgladisch/pi-caveman
Always-on caveman mode for Pi: prepends the upstream JuliusBrussee/caveman ruleset to the system prompt every turn so the model speaks like a smart caveman and burns ~75% fewer output tokens.
Install
pi install npm:@fgladisch/pi-caveman
First-time setup
Fetch upstream ruleset:
/caveman update
This clones into ~/.pi/agent/caveman/upstream/. Re-running /caveman update
pulls latest. If ruleset is missing on session start, extension warns and skips
injection until you run update.
Slash commands
| Command | Action |
|---|---|
/caveman or /caveman status |
Show current status (level + whether SKILL.md is loaded) |
/caveman lite |
Enable, intensity lite — no filler/hedging, full sentences |
/caveman full |
Enable, intensity full (default) — drop articles, fragments OK, short synonyms |
/caveman ultra |
Enable, intensity ultra — abbreviations, arrows, one-word answers |
/caveman off |
Disable injection (state persists, data stays installed) |
/caveman update |
git clone (first run) or git pull --ff-only upstream repo |
Argument completion is wired up. Typing /caveman and tabbing cycles valid
tokens. Status bar shows 🪨 caveman <level> or 🪨 caveman off.
Switching off mid-session
Ruleset itself reserves phrases stop caveman and normal mode — say
either to model and it drops caveman style for remainder of response. Injection
stays active until /caveman off.
Levels at a glance
Example — "Why React component re-render?"
- lite: "Your component re-renders because you create a new object reference each render. Wrap it in
useMemo." - full: "New object ref each render. Inline object prop = new ref = re-render. Wrap in
useMemo." - ultra: "Inline obj prop → new ref → re-render.
useMemo."
Auto-clarity
Ruleset tells model to drop caveman style for security warnings, irreversible-action confirmations, multi-step sequences where fragment order risks misreads, and explicit "clarify / repeat" requests — then resume. Code/commits/PR text stays normal English.