Personal package for Pi extensions, skills, and themes.
extensions/- TypeScript or JavaScript Pi extensions.skills/- Agent Skills packages, each with aSKILL.md.themes/- JSON themes for Pi's terminal UI.
From this local checkout:
pi install ./ -lProject-local installs are written to .pi/settings.json for the current project. Omit -l to install globally in ~/.pi/agent/settings.json.
From git:
pi install git:github.com/chrisetheridge/my-little-pipi -e ./- Use the packaged extensions described below after installing or running this package with
pi -e ./. - Select the
my-little-pitheme in/settings, or set it manually:
{
"theme": "my-little-pi"
}Shows a small "changes" widget above the editor while Pi is running.
It tracks successful edit and write tool results, then displays the most recently changed files with approximate +added / -deleted line counts and repeat-touch counts.
Replaces Pi's default startup header with a recent-session launcher. It lists the last 10 sessions across all projects with:
- modified date/time
- folder/repo name
- session title, using the explicit session name when available and falling back to the first user message
When the editor is empty, use ↑ / ↓ to move through the list and Enter to load the selected session.
Typing normally ignores the launcher. You can also run /recent to open an interactive picker, or /recent <index> to load a numbered recent session directly.
Adds a custom minimal footer, including OpenAI usage window tracking and git status.
Replaces Pi's default message/tool rendering with a denser, quieter layout.
Assistant prose is rendered as dotted paragraphs (●), thinking blocks are dim/italic and marked with ✽, and smaller Markdown headings are flattened so long sessions scan more like a readable transcript than a stack of cards.
It also re-registers the built-in file and shell tools with compact call/result renderers:
read,grep,find,ls,write, andeditshow one-line headers with the target path or search pattern.bashshows the command, timeout when present, and a short done/exit summary.- Running tools blink while pending, then settle to success/error dots.
- Collapsed results show counts and status; expanded results show previews or, for
edit, the rendered diff and+added/-deletedcounts.
Adds a configurable rest-window guard for late-night sessions. During the active window it shows a footer status, injects a small downtime policy into the agent context, and prompts with an overlay before agent/tool work continues. Accepting the overlay confirms continuation for the current downtime window; pressing Escape blocks tool execution and nudges you to stop.
Defaults:
{
"enabled": false,
"time": "22:00",
"durationMinutes": 480,
"confirmCommand": "echo continue-downtime",
"message": "Downtime is active. Pause work unless you intentionally continue with the confirmation command.",
"statusLabel": "downtime"
}Configuration is loaded from ~/.pi/agent/extensions/downtime.json, then overridden by project-local .pi/extensions/downtime.json. You can also override just the start time for a run with Pi's downtime flag in HH:MM local time format.
Set enabled to true to enable downtime prompts, assistant instructions, footer status, and tool blocking.
Useful commands:
/downtimeor/downtime statusshows the current window, confirmation state, command, and config source./downtime confirmconfirms continuation for the active window.- Running the configured confirmation command in
bashalso confirms the window.
Adds /land, a full-screen landing workflow runner for repository changes. The command opens idle; press Enter to start or Esc to close/cancel.
Configuration is required. Project config overrides global config:
- global:
~/.pi/agent/extensions/land.json - project:
.pi/extensions/land.json
Example:
{
"steps": [
{
"type": "shell",
"label": "Fetch/Rebase",
"command": "git fetch origin && git rebase origin/main"
},
{
"type": "shell",
"label": "Tests",
"command": "pnpm test"
},
{
"type": "commit",
"label": "Commit",
"model": "sonnet"
},
{
"type": "shell",
"label": "Push",
"command": "git push"
}
]
}Step types:
shell: runscommandin the current repo with$SHELL -lc.commit: runsgit add -A, generates a commit message with an agent via pi, then commits.
Install dependencies for editor types and local checks:
pnpm installRun checks:
pnpm run check
pnpm run test
pnpm run pack:dry-runRun the standard full verification sequence:
pnpm run ciReload Pi resources after edits:
/reload
Themes hot-reload when the active theme file changes.
package.json exposes all resources through:
{
"pi": {
"extensions": [
"./extensions/downtime/index.ts",
"./extensions/little-footer/index.ts",
"./extensions/little-renderer/index.ts",
"./extensions/review/index.ts",
"./extensions/session-changes/index.ts",
"./extensions/startup-screen/index.ts",
"./extensions/land/index.ts"
],
"skills": ["./skills"],
"themes": ["./themes"]
}
}




