Extensions, skills, and themes for Pi, the coding agent.
Note: These are tuned for my workflow. They may need modification for yours.
Install from git (extensions, skills, and themes are all discovered automatically):
pi install git:github.com/kostyay/agent-stuffTo try a single extension without installing the full package:
pi -e ./pi-extensions/status-bar.tsAll extensions live in pi-extensions/. Each file is a self-contained Pi extension — one responsibility per file, no cross-extension dependencies.
| Extension | Description |
|---|---|
answer.ts |
Extracts questions from assistant responses and presents an interactive TUI for answering them one by one |
clear.ts |
/clear command — starts a new session (alias for /new) |
commit.ts |
/commit command — stages all changes, generates a Conventional Commits message via LLM, creates a side branch if on the default branch |
context.ts |
/context command — shows loaded extensions, skills, AGENTS.md/CLAUDE.md, and token usage |
control.ts |
Session control via Unix domain sockets for inter-session communication |
files.ts |
/files command — file browser merging git status with session-referenced files, plus diff/edit actions |
git-rebase-master.ts |
/git-rebase-master command — fetches latest main/master and rebases current branch with automatic LLM conflict resolution |
kbrainstorm.ts |
ask_question tool — interactive TUI for brainstorming with multiple-choice and freeform answers |
kt/ |
kt tool — git-backed ticket tracker storing tickets as markdown files in .tickets/ with hierarchy, dependencies, and status workflow |
loop.ts |
/loop command — runs a follow-up prompt loop with a breakout condition for iterative coding |
notify.ts |
Desktop notifications (OSC 777) when the agent finishes and is waiting for input |
terminal-progress.ts |
Terminal progress indicator (OSC 9;4) — indeterminate pulse while agent is working, clears on finish or user input |
plan-ask.ts |
/plan, /ask commands and Shift+Tab mode rotation (🤖 agent → ❓ ask → 📋 plan) with read-only tool restrictions for safe exploration |
prompt-editor.ts |
Prompt mode selector (default/fast/precise) with per-mode model & thinking persistence |
review.ts |
/review command — code review for uncommitted changes, PRs, or specific commits with optional auto-fix loop |
sandbox/ |
OS-level sandboxing for bash commands via sandbox-exec (macOS) / bubblewrap (Linux) with configurable filesystem and network restrictions |
session-breakdown.ts |
/session-breakdown command — analyzes session usage (cost by model) with a GitHub-style activity graph |
session-namer.ts |
Auto-generates a short session name via Haiku after the first user request, re-generates on compaction or /session-name-refresh, and appends a mode emoji (📋/🧠) |
simplify.ts |
/simplify command — detects the dominant language of uncommitted changes and runs the matching code-simplifier skill |
status-bar.ts |
Rich two-line footer with model, context meter, token counts, cost, git status, tool tally, and color-coded profile badge |
whimsical.ts |
Replaces "Thinking..." with random phrases like "Reticulating splines..." and "Consulting the void..." |
Reusable utilities in lib/, importable by extensions:
| Library | Description |
|---|---|
changelog.ts |
Pure-logic changelog parser — parses, splices, and reconciles markdown changelog sections (no I/O) |
timed-confirm.ts |
Timed confirmation dialog with auto-resolve countdown — used by commit/merge workflows |
Skills live in skills/. Each skill has a SKILL.md that the agent reads when the task matches.
| Skill | Description |
|---|---|
github |
GitHub interactions via the gh CLI (issues, PRs, runs, API) |
go-code-simplifier |
Simplify and refine Go code for clarity and maintainability (Go 1.26+) |
js-code-simplifier |
Simplify and refine JavaScript/TypeScript code for clarity and maintainability |
kbrainstorm |
Collaborative brainstorming — explores intent, requirements, and design before implementation |
kchangelog |
Executive-style changelog entries tracked by branch, auto-promoted on release |
mermaid |
Create and validate Mermaid diagrams with the Mermaid CLI |
native-web-search |
Quick web research with concise summaries and source URLs |
pi-share |
Load and parse session transcripts from buildwithpi.ai URLs |
pr-update |
Update or create a pull request for the current branch with diff-based descriptions |
py-code-simplifier |
Simplify and refine Python code for clarity and maintainability |
summarize |
Convert URLs or files (PDF/DOCX/HTML) to Markdown via markitdown, with optional summarization |
tmux |
Remote-control tmux sessions by sending keystrokes and scraping pane output |
web-browser |
Browser automation via Chrome DevTools Protocol (clicking, forms, navigation) |
Custom themes live in pi-themes/.
| Theme | Description |
|---|---|
nightowl.json |
Night Owl color scheme |
The profiles/ directory contains global AGENTS.md files for different Pi profiles (e.g. agent-personal). Run sync-agents.sh to symlink them into ~/.pi/<profile>/AGENTS.md for centralized management across agent instances.
├── .github/ # CI workflows (auto-release) and scripts
├── lib/ # Shared TypeScript utilities (timed-confirm, etc.)
├── pi-extensions/ # Pi extensions (auto-discovered)
├── profiles/ # Global AGENTS.md files per Pi profile
├── scripts/ # Tooling (sync-profiles.ts)
├── skills/ # Agent skills (SKILL.md per skill)
├── tests/ # Unit tests (node --test)
├── pi-themes/ # Custom themes
├── plumbing-commands/ # Release automation templates
├── eslint.config.js # ESLint + typescript-eslint config
├── sync-agents.sh # Symlink profiles into ~/.pi/
├── Makefile # Release and changelog targets
├── AGENTS.md # Agent-facing coding conventions
├── CHANGELOG.md # Release history
└── package.json # Pi package manifest
Personal use. No warranty.