@neilurk12/pi-clean-footer
v0.2.8
Published
Clean, minimal, and lightweight powerline-style footer extension for pi coding agent.
Maintainers
Readme
pi-clean-footer
Clean, minimal, and lightweight powerline-style footer extension for pi.
Shows a compact split footer:

Features
- Smart short model names, plus thinking effort (
low,med,high,xhigh) - Current directory basename only
- Git branch + dirty file count, including untracked files
- Event-driven git refresh after file-changing tools and user bash commands
- Context usage as
used/max - Cumulative active-branch token totals: input, output, total, cache read, cache write
- Adaptive width tiers for narrow terminals
/footertoggle/footer refreshforce refresh
Install
From npm (recommended) | https://www.npmjs.com/package/@neilurk12/pi-clean-footer:
pi install @neilurk12/pi-clean-footerFor project-local install:
pi install -l @neilurk12/pi-clean-footerOr from local checkout (development):
pi install /absolute/path/to/pi-clean-footerUsage
Toggle footer:
/footerForce git refresh:
/footer refreshShow active config paths and resolved config:
/footer configReload config after editing JSON:
/footer reloadConfiguration
Config is optional. Defaults match the built-in package behavior.
Load order:
- Global:
~/.pi/agent/clean-footer.json - Project:
.pi/clean-footer.json
Project config overrides global config. Nested modelAliases and colors are merged.
Example:
{
"preset": "compact",
"enabled": true,
"showGit": true,
"showTokens": true,
"showCache": true,
"showCacheRead": true,
"showCacheWrites": true,
"showContext": true,
"showDirectory": true,
"showEffort": true,
"gitRefreshDebounceMs": 500,
"separator": " • ",
"layouts": [
{
"minWidth": 100,
"left": ["model", "directory", "git"],
"right": ["context", "tokensFull"]
},
{
"minWidth": 60,
"left": ["model", "git"],
"right": ["context", "tokensTotal"]
},
{
"minWidth": 0,
"left": ["model"],
"right": ["context"]
}
],
"contextWarningPercent": 70,
"contextDangerPercent": 85,
"modelAliases": {
"claude-sonnet-4-5-20250929": "sonnet-4.5",
"gpt-5.5-codex": "gpt-5.5"
},
"colors": {
"model": "accent",
"directory": "dim",
"git": "success",
"gitDirty": "warning",
"contextNormal": "success",
"contextWarning": "warning",
"contextDanger": "error",
"tokens": "muted",
"separator": "dim"
}
}Preset example:
{
"preset": "minimal",
"showGit": true
}Supported presets:
| Preset | Description |
|---|---|
| default | Built-in footer behavior. |
| minimal | Quiet model + context layout with git, directory, and tokens hidden. |
| compact | Model, git, context, and total tokens with cache noise hidden. |
| dense | Full information layout with cache read and write counts enabled. |
| focus | Model + context only for low-distraction sessions. |
| muted | Softer semantic colors while keeping default-style behavior. |
Preset values are applied before user config, so explicit settings override the preset. Unknown preset names are ignored with a /footer config warning and default behavior is used.
Supported layout segment IDs:
model- model name plus thinking effort whenshowEffortis enableddirectory- current directory basenamegit- git branch and dirty countcontext- context usagetokensFull- input, output, total, cache read, and cache write tokenstokensNoCache- input, output, and total tokenstokensTotal- total tokens only
layouts are selected by the highest minWidth less than or equal to the terminal width. showGit, showTokens, showContext, showDirectory, and showEffort still act as global visibility controls. showCache is a deprecated global cache-token gate; use showCacheRead and showCacheWrites to hide cache read (↯) and write (↥) counts independently. Unknown or duplicate layout segments are omitted and reported by /footer config.
Malformed JSON keeps defaults/last loaded behavior and reports an error through /footer config or at startup.
Package manifest
This package declares its extension through package.json:
{
"pi": {
"extensions": ["./dist/index.js"]
}
}Development
Type-check extension:
npx tsc --noEmit --skipLibCheck --moduleResolution Node16 --module Node16 --target ES2022 --types node src/index.tsNotes
Extensions run with full system permissions. Review code before installing any pi package.
