Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/pi-footer-atlas-status.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@edheltzel/pi-bits": patch
---

Rework the Pi footer (re-exported by `pi-bits`) to the Atlas status-line information design: `π` + Pi version, provider/model with thinking level, working directory shortened to `…/<parent>/<current>`, git branch with the Nerd Font branch glyph, a responsive 24-cell context meter, and cache hit percent from the latest successful assistant prompt with the Nerd Font cache glyph. Extension statuses keep their own ANSI styling; `codex-status` and `mcp` are suppressed and the background-process status keeps its `/proc` special case.
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Develop independently loadable Pi extensions and supporting packages in one pnpm
- Keep TypeScript source under `src/` and tests under `tests/` with `.unit.test.ts`, `.integration.test.ts`, or `.e2e.test.ts` suffixes.
- Pi loads TypeScript through jiti; extension workspaces normally need no build step.
- Keep each extension independently loadable through its own `package.json` `pi` manifest.
- The root `pi` manifest is the Git collection at `git:github.com/edheltzel/pi-extensions`. It loads every `extensions/*/src/index.ts` entry plus Atlas skill folders. Do not also install `npm:@richardgill/*` copies of the same extensions.
- The root `pi` manifest is the Git collection at `git:github.com/edheltzel/pi-extensions`. Only resources listed in the root `package.json` belong to that collection; see the root README for installation paths for other workspaces. Do not also install `npm:@richardgill/*` copies of the same extensions.
- Atlas-owned workspaces remain private until an explicit npm publishing decision removes that safeguard and adds a release changeset.
- Preserve upstream attribution, copyright, and split-license notices in package-level license files.

Expand Down
2 changes: 1 addition & 1 deletion PI_SETUP.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ pi install ./extensions/context-commands

## `pi-bits`: the rest of my personal setup

- A compact footer showing the model, thinking level, context usage, and extension statuses.
- The [`pi-footer`](./extensions/footer/README.md) Atlas-style status line.
- Automatically trust every new folder - bypassing Pi's project trust prompt.

```sh
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ Below are the resources used to shape this Pi setup.

These workspaces are not distributed individually. Footer and trust-all-projects are bundled by [`pi-bits`](./packages/pi-bits/README.md); thinking-toggle remains local-only.

- [`pi-footer`](./extensions/footer/README.md) - Replaces the footer with model, thinking, context, and extension status information.
- [`pi-footer`](./extensions/footer/README.md) - Atlas-style Pi status line.
- [`pi-trust-all-projects`](./extensions/trust-all-projects/README.md) - Automatically trusts every project.
- [`pi-thinking-toggle`](./extensions/thinking-toggle/README.md) - Cycles medium, high, and xhigh thinking levels.

Expand Down
16 changes: 15 additions & 1 deletion extensions/footer/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
# pi-footer

Private extension that replaces Pi's footer with model, thinking, context usage, and extension status information.
Private extension that replaces Pi's footer with an Atlas-style status line.

The footer displays these items in order:

1. `π` and the running Pi version
2. Provider/model and thinking level
3. The working directory shortened to `…/<parent>/<current>`, followed by the Git branch
4. Context usage as a colored `⛁` meter and a whole-number percentage
5. Cache usage for the latest non-aborted, non-error assistant prompt

The context meter uses 24 cells at widths of 80 columns or more, then 16, 8, or 6 cells below 80, 55, or 35 columns. Cache usage is `cacheRead / (input + cacheRead + cacheWrite)`, rounded to a whole percent; it is hidden when the prompt has no input or cache tokens.

The footer keeps one space of side padding and uses Nerd Font glyphs for the Git branch and cache indicators. Other extensions' statuses keep their ANSI styling on a separate line, except `mcp` and `codex-status`, which are hidden. Background command status retains its `/proc` label.

Light and dark colors are selected from the active Pi theme name without reading machine-specific theme configuration.
4 changes: 2 additions & 2 deletions extensions/footer/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
},
"scripts": {
"tsc": "tsc -p tsconfig.json --noEmit",
"test": "vitest --run",
"test:watch": "vitest"
"test": "vitest --run --root ../.. extensions/footer/tests",
"test:watch": "vitest --root ../.. extensions/footer/tests"
},
"peerDependencies": {
"@earendil-works/pi-coding-agent": "*",
Expand Down
Loading
Loading