{"id":46192767,"url":"https://github.com/kostyay/agent-stuff","last_synced_at":"2026-05-03T01:12:29.600Z","repository":{"id":341553172,"uuid":"1170126194","full_name":"kostyay/agent-stuff","owner":"kostyay","description":"Extensions, skills, and themes for Pi — the coding agent. TUI tools, brainstorming, code review, planning, and workflow automation.","archived":false,"fork":false,"pushed_at":"2026-04-23T18:22:13.000Z","size":1303,"stargazers_count":6,"open_issues_count":9,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-23T19:30:31.537Z","etag":null,"topics":["cli-tools","code-review","coding-agent","developer-tools","pi-coding-agent","pi-extensions","pi-skills","typescript","workflow-automation"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kostyay.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-03-01T18:32:09.000Z","updated_at":"2026-04-23T18:20:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kostyay/agent-stuff","commit_stats":null,"previous_names":["kostyay/agent-stuff"],"tags_count":49,"template":false,"template_full_name":null,"purl":"pkg:github/kostyay/agent-stuff","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kostyay%2Fagent-stuff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kostyay%2Fagent-stuff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kostyay%2Fagent-stuff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kostyay%2Fagent-stuff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kostyay","download_url":"https://codeload.github.com/kostyay/agent-stuff/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kostyay%2Fagent-stuff/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32554837,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T00:31:16.350Z","status":"ssl_error","status_checked_at":"2026-05-03T00:31:15.546Z","response_time":132,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli-tools","code-review","coding-agent","developer-tools","pi-coding-agent","pi-extensions","pi-skills","typescript","workflow-automation"],"created_at":"2026-03-03T01:12:07.350Z","updated_at":"2026-05-03T01:12:29.593Z","avatar_url":"https://github.com/kostyay.png","language":"TypeScript","funding_links":[],"categories":["Extensions"],"sub_categories":[],"readme":"# Agent Stuff\n\nExtensions, skills, and themes for [Pi](https://buildwithpi.ai/), the coding agent.\n\n\u003e **Note:** These are tuned for my workflow. They may need modification for yours.\n\n## Installation\n\nInstall from git (extensions, skills, and themes are all discovered automatically):\n\n```bash\npi install git:github.com/kostyay/agent-stuff\n```\n\nTo try a single extension without installing the full package:\n\n```bash\npi -e ./pi-extensions/status-bar.ts\n```\n\n## Extensions\n\nAll extensions live in [`pi-extensions/`](pi-extensions). Each file is a self-contained Pi extension — one responsibility per file, no cross-extension dependencies.\n\n| Extension | Description |\n|-----------|-------------|\n| [`answer.ts`](pi-extensions/answer.ts) | Extracts questions from assistant responses and presents an interactive TUI for answering them one by one |\n| [`bgrun.ts`](pi-extensions/bgrun.ts) | `/bgrun` and `/bgtasks` commands + `bgrun` tool — run and manage background tasks via tmux with auto-derived window names, interactive task manager TUI (kill all with `K`), and `bgrun:stats` event for status-bar integration. Commands run as direct pane processes with `remain-on-exit` for post-exit output capture |\n| [`clear.ts`](pi-extensions/clear.ts) | `/clear` command — starts a new session (alias for `/new`) |\n| [`cmux.ts`](pi-extensions/cmux.ts) | cmux sidebar integration — pushes agent state (model, thinking, tokens, cost, tool activity) to the cmux sidebar via status keys and notifications. No-op when not running inside cmux |\n| [`commit.ts`](pi-extensions/commit.ts) | `/commit` command — stages all changes, generates a Conventional Commits message via LLM, creates a side branch if on the default branch |\n| [`context.ts`](pi-extensions/context.ts) | `/context` command — shows loaded extensions, skills, AGENTS.md/CLAUDE.md, and token usage |\n| [`control.ts`](pi-extensions/control.ts) | Session control via Unix domain sockets for inter-session communication |\n| [`files.ts`](pi-extensions/files.ts) | `/files` command — file browser merging git status with session-referenced files, plus diff/edit actions |\n| [`git-rebase-master.ts`](pi-extensions/git-rebase-master.ts) | `/git-rebase-master` command — fetches latest main/master and rebases current branch with automatic LLM conflict resolution |\n| [`claude-import.ts`](pi-extensions/claude-import.ts) | Loads commands, skills, and agents from `.claude/` directories (project + global) and registers them as `/claude:*` commands |\n| [`kbrainstorm.ts`](pi-extensions/kbrainstorm.ts) | `ask_question` tool — interactive TUI for brainstorming with multiple-choice and freeform answers |\n| [`ticket/`](pi-extensions/ticket) | `ticket` tool — git-backed ticket tracker storing tickets as markdown files in `.tickets/` with hierarchy, dependencies, status workflow, auto-closing of completed epics, and auto-run continuation across epics with context compaction |\n| [`loop.ts`](pi-extensions/loop.ts) | `/loop` command — runs a follow-up prompt loop with a breakout condition for iterative coding |\n| [`notify.ts`](pi-extensions/notify.ts) | Desktop notifications (OSC 777) when the agent finishes and is waiting for input |\n| [`op-timer.ts`](pi-extensions/op-timer.ts) | Live elapsed-time counter above the editor while the agent works — shows total operation and current tool execution duration |\n| [`plan-ask.ts`](pi-extensions/plan-ask.ts) | `/plan`, `/ask` commands and Shift+Tab mode rotation (🤖 agent → ❓ ask → 📋 plan) with read-only tool restrictions, clear-context-and-implement flow, and temp plan persistence |\n| [`pr.ts`](pi-extensions/pr.ts) | `/pr` command — checks if the current branch has an open pull request and opens it in the default browser via `gh` |\n| [`prompt-editor.ts`](pi-extensions/prompt-editor.ts) | Prompt mode selector (default/fast/precise) with per-mode model \u0026 thinking persistence |\n| [`review.ts`](pi-extensions/review.ts) | `/review` command — code review for uncommitted changes, PRs, or specific commits with optional auto-fix loop |\n| [`sandbox/`](pi-extensions/sandbox) | OS-level sandboxing for bash commands via `sandbox-exec` (macOS) / bubblewrap (Linux) with merged global+project config, per-directory state persistence, and network isolation |\n| [`session-breakdown.ts`](pi-extensions/session-breakdown.ts) | `/session-breakdown` command — analyzes session usage (cost by model) with a GitHub-style activity graph |\n| [`session-namer.ts`](pi-extensions/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 (📋/🧠) |\n| [`simplify.ts`](pi-extensions/simplify.ts) | `/simplify` command — detects the dominant language of changed files and runs the matching code-simplifier skill; accepts explicit file paths or falls back to git; auto-proposes after agent turns that modify source files with configurable threshold, file-hash dedup, and session-isolated queuing (`autoSimplify` setting) |\n| [`stash.ts`](pi-extensions/stash.ts) | `/stash` command stashes the current editor draft for a quick side-question; auto-restores after the agent responds |\n| [`status-bar.ts`](pi-extensions/status-bar.ts) | Rich three-line footer with model, context meter, cache/cost stats, git status, turn counter, color-coded profile badge, sandbox status, event-driven ticket/bgrun stats, streaming speed indicator, and thinking level display |\n| [`whimsical.ts`](pi-extensions/whimsical.ts) | Replaces \"Thinking...\" with random phrases like \"Reticulating splines...\" and \"Consulting the void...\" |\n| [`whoami.ts`](pi-extensions/whoami.ts) | `/whoami` command — prints the masked API key used for the current model's requests |\n\n## Shared Libraries\n\nReusable utilities in [`lib/`](lib), importable by extensions:\n\n| Library | Description |\n|---------|-------------|\n| [`changelog.ts`](lib/changelog.ts) | Pure-logic changelog parser — parses, splices, and reconciles markdown changelog sections (no I/O) |\n| [`control-channel.ts`](lib/control-channel.ts) | UDP-based communication channel between parent and child processes — used by subagent and session-namer |\n| [`timed-confirm.ts`](lib/timed-confirm.ts) | Timed confirmation dialog with auto-resolve countdown — used by commit/merge workflows |\n| [`tmux.ts`](lib/tmux.ts) | Shared tmux session/window management primitives — session naming with directory hashing, window creation with collision detection, pane capture; used by bgrun and subagent extensions |\n\n### Extension Libraries\n\nInternal utilities in [`pi-extensions/lib/`](pi-extensions/lib), shared across extensions in this package:\n\n| Library | Description |\n|---------|-------------|\n| [`ask-question-ui.ts`](pi-extensions/lib/ask-question-ui.ts) | Reusable TUI for asking a single question — renders freeform text editor or multiple-choice list with inline editing; used by kbrainstorm |\n\n## Skills\n\nSkills live in [`skills/`](skills). Each skill has a `SKILL.md` that the agent reads when the task matches.\n\n| Skill | Description |\n|-------|-------------|\n| [`github`](skills/github) | GitHub interactions via the `gh` CLI (issues, PRs, runs, API) |\n| [`go-code-simplifier`](skills/go-code-simplifier) | Simplify and refine Go code for clarity and maintainability (Go 1.26+) |\n| [`js-code-simplifier`](skills/js-code-simplifier) | Simplify and refine JavaScript/TypeScript code for clarity and maintainability |\n| [`kbrainstorm`](skills/kbrainstorm) | Collaborative brainstorming — explores intent, requirements, and design before implementation |\n| [`kchangelog`](skills/kchangelog) | Executive-style changelog entries tracked by branch, auto-promoted on release |\n| [`mermaid`](skills/mermaid) | Create and validate Mermaid diagrams with the Mermaid CLI |\n| [`native-web-search`](skills/native-web-search) | Quick web research with concise summaries and source URLs |\n| [`pi-share`](skills/pi-share) | Load and parse session transcripts from buildwithpi.ai URLs |\n| [`pr-update`](skills/pr-update) | Update or create a pull request for the current branch with diff-based descriptions |\n| [`py-code-simplifier`](skills/py-code-simplifier) | Simplify and refine Python code for clarity and maintainability |\n| [`ruby-code-simplifier`](skills/ruby-code-simplifier) | Simplify and refine Ruby code for clarity and maintainability (Ruby 3.4+, Rails 8) |\n| [`summarize`](skills/summarize) | Convert URLs or files (PDF/DOCX/HTML) to Markdown via `markitdown`, with optional summarization |\n| [`tmux`](skills/tmux) | Remote-control tmux sessions by sending keystrokes and scraping pane output |\n| [`web-browser`](skills/web-browser) | Browser automation via Chrome DevTools Protocol (clicking, forms, navigation) |\n\n## Themes\n\nCustom themes live in [`pi-themes/`](pi-themes).\n\n| Theme | Description |\n|-------|-------------|\n| [`nightowl.json`](pi-themes/nightowl.json) | Night Owl color scheme |\n\n## Agent Profiles\n\nThe [`profiles/`](profiles) directory contains global AGENTS.md files for different Pi profiles (e.g. `agent-personal`). Run [`sync-agents.sh`](sync-agents.sh) to symlink them into `~/.pi/\u003cprofile\u003e/AGENTS.md` for centralized management across agent instances.\n\n## Project Structure\n\n```\n├── .github/           # CI workflows (auto-release) and scripts\n├── lib/               # Shared TypeScript utilities (timed-confirm, etc.)\n├── pi-extensions/     # Pi extensions (auto-discovered)\n├── profiles/          # Global AGENTS.md files per Pi profile\n├── scripts/           # Tooling (sync-profiles.ts)\n├── skills/            # Agent skills (SKILL.md per skill)\n├── tests/             # Unit tests (node --test)\n├── pi-themes/         # Custom themes\n├── plumbing-commands/ # Release automation templates\n├── eslint.config.js   # ESLint + typescript-eslint config\n├── sync-agents.sh     # Symlink profiles into ~/.pi/\n├── Makefile           # Release and changelog targets\n├── AGENTS.md          # Agent-facing coding conventions\n├── CHANGELOG.md       # Release history\n└── package.json       # Pi package manifest\n```\n\n## License\n\nPersonal use. No warranty.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkostyay%2Fagent-stuff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkostyay%2Fagent-stuff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkostyay%2Fagent-stuff/lists"}