{"id":49071234,"url":"https://github.com/alnah/agent","last_synced_at":"2026-04-20T07:33:41.307Z","repository":{"id":349829700,"uuid":"1204105115","full_name":"alnah/agent","owner":"alnah","description":"Pi extensions, skills, prompts, themes, and context files for terminal workflows.","archived":false,"fork":false,"pushed_at":"2026-04-07T19:00:13.000Z","size":162,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-07T19:27:01.451Z","etag":null,"topics":["agentic-ai","ai-agent","cli","code-review","coding-agent","developer-tools","llm","pi","pi-coding-agent","prompt-templates","terminal","typescript"],"latest_commit_sha":null,"homepage":"https://www.alnah.me","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/alnah.png","metadata":{"files":{"readme":"README.md","changelog":null,"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-04-07T17:38:36.000Z","updated_at":"2026-04-07T19:00:24.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/alnah/agent","commit_stats":null,"previous_names":["alnah/agent"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/alnah/agent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alnah%2Fagent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alnah%2Fagent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alnah%2Fagent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alnah%2Fagent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alnah","download_url":"https://codeload.github.com/alnah/agent/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alnah%2Fagent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32037884,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T00:18:06.643Z","status":"online","status_checked_at":"2026-04-20T02:00:06.527Z","response_time":94,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["agentic-ai","ai-agent","cli","code-review","coding-agent","developer-tools","llm","pi","pi-coding-agent","prompt-templates","terminal","typescript"],"created_at":"2026-04-20T07:33:37.916Z","updated_at":"2026-04-20T07:33:41.302Z","avatar_url":"https://github.com/alnah.png","language":"TypeScript","funding_links":[],"categories":["Extensions"],"sub_categories":[],"readme":"# Agent\n\n\u003e This is my [Pi](https://github.com/badlogic/pi-mono) config with extensions, skills, prompts, themes, and context files for terminal workflows. It is not a Pi fork. It extends Pi.\n\n## Why Pi?\n\nI tried Claude Code, Codex, and Open Code. All of them are good. But I switched to Pi, which is now the only agent I use.\n\nI also like the fact its name does not refer to coding, because I use agentic workflows for my teaching materials, and people could use agents for non-coding tasks.\n\nPi has a very small core set of features, such as Read, Write, Edit, and Bash. I can add whatever I want on top of it.\n\nIt supports prompt templates, skills, and extensions that give me a stronger harness for coding with LLMs. I can use custom tools, plenty of events, extend the UI, and more.\n\nIt also offers an excellent portability across models, whether I use subscriptions or API keys. It has useful features such as session export and sharing, which, for me, should be standard in any agent.\n\n## What is inside\n\n### Context files\n\n I like to save tokens and context for the agent. So I phrase my rules this way:\n\n ```markdown\nTopic 1: always rule 1a, prefer 1b, never 1c, etc.\nTopic 2: if rule 2; else rule 3; then rule 4; no rule 5a, rule 5b, etc.\n ```\n\n I use those words to structure the rules: `always`, `prefer`, `never`, `then`, `if`, `else`, and `no`.\n I also use `,` for enumerating the aspects of one rule, and I use `;` for the next rule of the same topic.\n\n| File | What it does |\n| --- | --- |\n| `AGENTS.md` | Global working rules for user interaction, language, and tool behavior |\n| `APPEND_SYSTEM.md` | Global addendum for direct, critical, factual behavior |\n\n### Extensions\n\n| Extension | What it does |\n| --- | --- |\n| `answer/` | Turns unanswered assistant questions into an interactive Q\u0026A flow with `/answer` or `Ctrl+.` |\n| `aside/` | Opens a side conversation with `/aside`, keeps its own thread, and can inject a summary back into the main chat |\n| `files/` | Adds `/files` and `/diff` to browse repo files, recent references, diffs, Finder reveal, and Quick Look |\n| `loop/` | Adds `/loop` plus `signal_loop_success` so Pi can keep iterating until a stop condition is met |\n| `notifyer/` | Sends terminal notifications when a Pi turn finishes |\n| `review/` | Adds `/review` and `/end-review` for branch, commit, PR, folder, and uncommitted-change review workflows |\n| `todos/` | Adds a shared file-backed todo tool and `/todos` UI for assigning, refining, and closing work |\n| `typescript-symbols/` | Adds `ts_definition`, `ts_references`, `ts_rename`, and `ts_symbols` for TypeScript symbol navigation, lookup, and project-wide rename |\n| `usage/` | Adds `/usage` to inspect recent Pi session activity across 7, 30, and 90 day windows |\n| `window/` | Adds `/window` to inspect context-window usage, loaded resources, and observed skill reads |\n\n### Skills\n\n| Skill | What it does |\n| --- | --- |\n| `git-workflow/` | Git and GitHub operating rules for status, diffs, commits, sync, PRs, and recovery |\n| `web-research/` | Web research workflow: use Codex for discovery and [Rodney](https://github.com/simonw/rodney) for fetching and verification |\n\n### Prompt templates\n\n| Prompt | What it does |\n| --- | --- |\n| `title.md` | Generates a short ISO-prefixed Pi session title |\n\n### Themes\n\n| Theme | What it does |\n| --- | --- |\n| `dracula.json` | Dracula-inspired theme for Pi |\n\n\n\n## Quick start\n\n### Clone the repo\n\n```bash\ngit clone https://github.com/alnah/agent.git\n```\n\n### Tell Pi to load it as a local package root\n\nAdd this to `~/.pi/agent/settings.json`:\n\n```json\n{\n  \"packages\": [\"/absolute/path/to/agent\"]\n}\n```\n\nPi will auto-discover:\n\n- `extensions/`\n- `skills/`\n- `prompts/`\n- `themes/`\n\n### Link the global context files Pi expects at fixed paths\n\n```bash\nln -s /absolute/path/to/agent/AGENTS.md ~/.pi/agent/AGENTS.md\nln -s /absolute/path/to/agent/APPEND_SYSTEM.md ~/.pi/agent/APPEND_SYSTEM.md\n```\n\nIf those files already exist, replace them with `ln -sf`.\n\n### Reload Pi\n\nUse `/reload`, or restart Pi.\n\n### Local setup for `typescript-symbols/`\n\n`typescript-symbols/` depends on the local `tsconfig.json` or `jsconfig.json`.\nI do not enable it globally.\nI keep the code in this repo and turn it on only in the repos I want, through a local, untracked `.pi/settings.json` that loads this package for that repo.\n\nIn this repo:\n\n```json\n{\n  \"packages\": [\"..\"]\n}\n```\n\nIn another local repo, point to this clone from that repo's `.pi/settings.json`. Use either an absolute path or the relative path that matches your own directory layout.\n\n```json\n{\n  \"packages\": [\"/absolute/path/to/agent\"]\n}\n```\n\nThe global Pi settings can keep excluding `typescript-symbols`, while the repo-local package entry re-enables it only for that project. The extension uses that repo's current working directory and resolves the nearest matching `tsconfig.json` or `jsconfig.json` for the requested file. If a repo contains several nested TypeScript projects, pass a file path inside the target project.\n\n## Development\n\nExtension development lives under `extensions/`.\n\n```bash\ncd extensions\nnpm run check\nnpm run format\n```\n\n## Thanks\n\n- [Mario Zechner](https://github.com/badlogic) for [Pi](https://github.com/badlogic/pi-mono)\n- [Armin Ronacher](https://github.com/mitsuhiko) for the code and ideas behind the `answer`, `aside`, `files`, `loop`, `review`, `todos`, `usage`, and `window` extensions via [`agent-stuff`](https://github.com/mitsuhiko/agent-stuff)\n- [Simon Willison](https://github.com/simonw) for [Rodney](https://github.com/simonw/rodney), which the `web-research` skill uses as its fetch and verification layer\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falnah%2Fagent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falnah%2Fagent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falnah%2Fagent/lists"}