pi-minimal
A Pi coding-agent package.
Package details
Install pi-minimal from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-minimal- Package
pi-minimal- Version
0.2.3- Published
- Oct 24, 2026
- Downloads
- 356/mo · 180/wk
- Author
- raviy06
- License
- MIT
- Types
- extension, theme
- Size
- 260 KB
- Dependencies
- 0 dependencies · 2 peers
Pi manifest JSON
{
"themes": [
"./themes/minimal-dark.json"
],
"extensions": [
"./dist/index.js"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-minimal
A Pi coding-agent package.
Requirements
- Node.js
>=22.19.0 - Pi
>=1.4.0(usesregisterToolRenderer,registerEntryRenderer,registerMarkdownTransformer)
No other Pi extension is required. Pi supplies the peer packages used by this extension.
Optional integrations:
pi-gauntlet: supplies the phase and task data shown in the footer. Its widgets are hidden by default.- Herdr: sibling status appears only when Pi is running inside Herdr.
Installation
pi install npm:pi-minimal
Git installation also works:
pi install git:github.com/raviy06/pi-minimal
Do not load this package beside the live grok-chrome extension. Disable or remove grok-chrome before enabling pi-minimal.
What it changes
- Tool rows – every built-in tool call (
bash,read,edit,write,grep,find,ls) renders as one line: status glyph (◐running,✓ok,✗failed), verb, item, and a right-aligned outcome (34 lines · 1.0s,exit 1,+3 −1,4 matches). Failed rows show the first line of output underneath;ctrl+oexpands full output in a│-ruled block. - Turn rule – after each agent run a dim
── 15:51 · 12s · 4 tools ──separator is appended (stored as a custom entry; never sent to the model). - Thinking gutter – thinking paragraphs are prefixed with
┊so they read as secondary. - Status line – one line above the editor: model · thinking level · context meter (amber at 70 %, red at 90 %) · cwd ·
⎇ branch ±dirty· Herdr siblings. - Footer – key hints appear only when the agent is idle and the editor is empty;
/compactis suggested under context pressure. - Code blocks – fenced code renders as a closed box with the language as its title, keeping syntax highlighting, instead of literal ``` lines; long lines wrap inside the box.
- Alignment – chrome follows pi's
outputPadsetting. Pi's editor uses the separateeditorPaddingXsetting (default0); set"editorPaddingX": 1for a flush left edge with the transcript. - Theme – ships
minimal-dark: neutral tool backgrounds, visible user-message tint, dimmer thinking text, violet headings (yellow is reserved for warnings), and faint code-block frames. Select it in/settings→ Theme, or set"theme": "minimal-dark".
Configuration
The package loads JSON in this order:
- Built-in defaults
- Global:
~/.pi/agent/pi-minimal.json(or$PI_CODING_AGENT_DIR/pi-minimal.jsonwhen the agent directory is overridden) - Project:
.pi/pi-minimal.jsonin the current working directory, only when the project is trusted
Project values override global values. A missing file, omitted key, or invalid value does not override the lower-precedence value.
The only supported key is hideGauntletWidgets. It defaults to true.
{ "hideGauntletWidgets": true }
Optional footer activity API
Companion extensions can publish session-scoped activity rows through the versioned
in-process footer contribution API. Pi-minimal keeps ownership of the footer and
renders activity after existing hints and tracker summaries. An independent
summary slot supplies a violet segmented plan bar below the input. Nonempty
groups are separated by one blank row; agent rows remain compact. The API adds no
visible content without a contributor and changes no other extension's settings.
Rows use pi-minimal's yellow running spinner, green completion check, and red failure glyph. Plain-text and static modes are supported. See Footer activity contributions for the protocol, validation limits, lifecycle, and integration example.
This is a display integration seam, not a subagent runtime or task tracker.
Releasing
Every new extension PR must include a version bump before it is opened, so merging
it can trigger publication and users can update. Keep package.json, both root
version fields in package-lock.json, the package test expectation, and the dated
changelog entry synchronized. Before merging concurrent PRs, verify that the
selected version is still newer than main and has not already been published.
Releases are automatic. To ship a version:
- Add a
## [x.y.z] - YYYY-MM-DDsection toCHANGELOG.md. - Bump
versioninpackage.json(and the expectation intest/package.test.ts), runnpm run build, commitdist/. - Merge to
main.
The Publish workflow (.github/workflows/publish.yml, npm's registered trusted publisher) detects the new version, verifies lint/typecheck/tests/build, tags vx.y.z, creates a GitHub Release (CHANGELOG section + auto-generated notes + package tarball), records a deployment to the npm environment, and publishes to npm via OIDC trusted publishing (provenance included). Pushes that do not change the version do nothing. Release (manual fallback) re-publishes an existing tag with the NPM_TOKEN secret if the automated path ever fails.