@zigai/pi-footer

Pi package that replaces Pi's footer with a compact status line.

Packages

Package details

extension

Install @zigai/pi-footer from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@zigai/pi-footer
Package
@zigai/pi-footer
Version
0.3.0
Published
Jul 8, 2026
Downloads
2,243/mo · 748/wk
Author
zigai
License
MIT
Types
extension
Size
68 KB
Dependencies
1 dependency · 2 peers
Pi manifest JSON
{
  "extensions": [
    "./src/index.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

Pi Footer

npm version npm downloads license

This Pi extension replaces Pi's footer with a single compact plain-text status line.

Pi Footer screenshot

Footer contents:

  • current working directory
  • git branch
  • provider and model
  • thinking level
  • MCP status
  • context usage

Install

pi install npm:@zigai/pi-footer

Configuration

Configure global settings at ~/.pi/agent/pi-footer/config.json.

Option Type Default Description
separator string "·" Visible separator placed between footer status segments. Whitespace-only values are ignored.
layout.left string[] ["path", "branch", "provider", "model", "thinking"] Left-side slot order. Earlier slots are kept first when the footer narrows.
layout.right string[] ["context"] Right-side slot order. Later slots are kept first when the footer narrows.
layout.hidden string[] [] Slots omitted even when configured on a side or registered by another extension.
{
  "$schema": "./config.schema.json",
  "separator": "·",
  "layout": {
    "left": ["path", "branch", "provider", "model", "thinking"],
    "right": ["context"],
    "hidden": []
  }
}

Custom slots registered by other extensions use namespaced ids such as my-extension.status.

Extension API

Other extensions can register custom footer slots through @zigai/pi-footer/api.

import { registerFooterSlot } from "@zigai/pi-footer/api";

const status = registerFooterSlot({
  id: "my-extension.status",
  defaultSide: "right",
  text: "ready",
});

status.setText("working");
status.clear();
status.dispose();

License

MIT