feat: add Pi Coding Agent extension#178
Conversation
Adds .pi-extension directory with full CLI-Anything plugin support: - 5 slash commands: /cli-anything, /cli-anything:refine, /cli-anything:test, /cli-anything:validate, /cli-anything:list - Full HARNESS.md methodology documentation - Guides for skill generation, PyPI publishing, MCP backend, etc. - Utility scripts: repl_skin.py, skill_generator.py, setup-cli-anything.sh - SKILL.md template for AI-discoverable skill definitions - README.md documenting the extension structure and usage - Updated root README.md to include Pi as a supported platform
|
Hey @ruttybob, looked through the PR. Pi support is a welcome addition but a few things need fixing before merge. Blockers:
Should fix:
Minor:
Fix 1-4 and this is good to go. |
|
@omerarslan0 The PR turned out quite messy, as there are currently a lot of duplicates in the repository. I understand, however, that PI has a different installation method since this is TypeScript—it installs packages from NPM or a separate GitHub repository. In this case, would it make more sense to add support here as a separate directory, or should I publish the package to NPM and reference it in the README.md of this repository instead? Apologies for opening such a messy PR intentionally. I’m very new to the open-source community, and I feel quite embarrassed about how I handled this. I hope I haven’t taken up too much of your time. 😢 |
|
@ruttybob Good progress — you've addressed all 4 blockers from the previous review. Tests added, HARNESS.md duplication resolved, indentation fixed, hardcoded path removed. Appreciated. Still needs fixes before merge:
And no need to feel embarrassed — the first PR is always the hardest. You responded to feedback quickly and addressed every blocker, that's exactly how open-source works. Keep contributing. Fix 1-2 and this is ready to merge. |
1. Rename pi-extension/ to .pi-extension/ to match Pi auto-discovery convention. Update root README install instructions to reference correct path and install.sh workflow instead of non-existent .pi-extension/extensions/cli-anything/. 2. Move test_skill_generator.py from .pi-extension/cli-anything/tests/ to cli-anything-plugin/tests/ (next to skill_generator.py) so it runs standalone without fragile parent-navigation fallbacks. Update install.sh to copy tests during global install. 31/31 pytest tests pass.
|
@omerarslan0 That’s why I decided to add an install.sh script that installs the extension globally for Pi. |
yuh-yang
left a comment
There was a problem hiding this comment.
The current status LGTM. It's okay to include a bash script for installing if certain coding agents need that.
|
LGTM! Thx for this. |
Description
Adds Pi Coding Agent extension support to CLI-Anything, enabling AI agents to build CLI harnesses for any GUI application directly from the Pi TUI.
Closes #179
Type of Change
What This Adds
Extension (
.pi-extension/cli-anything/index.ts)/cli-anything,/cli-anything:refine,/cli-anything:test,/cli-anything:validate,/cli-anything:listsendUserMessage()Global Install (
.pi-extension/cli-anything/install.sh)cli-anything-plugin/into~/.pi/agent/extensions/cli-anything/for all-project availability--uninstallflagTests
cli-anything-plugin/tests/test_skill_generator.py— 31 pytest tests covering metadata extraction, SKILL.md generation, and edge cases (lives next toskill_generator.py).pi-extension/cli-anything/tests/test_extension.test.ts— 8 Vitest tests for command registrationReview Feedback Addressed
1. Path mismatch in docs
pi-extension/to.pi-extension/to match Pi's expected convention.pi-extension/cli-anything/) and theinstall.sh-based workflow instead of incorrect.pi-extension/extensions/cli-anything/cli-anything-plugin/viainstall.sh)2. test_skill_generator.py can now run standalone
test_skill_generator.pyfrom.pi-extension/cli-anything/tests/tocli-anything-plugin/tests/(next toskill_generator.py)install.shcopies tests into the installed extension so they work there tooSingle Source of Truth
All shared files are referenced from their canonical locations — no duplicates:
HARNESS.mdcli-anything-plugin/HARNESS.mdinstall.shcopies it alongside extension;readAsset()reads from__dirnameskill_generator.pycli-anything-plugin/skill_generator.pyinstall.shcopies toscripts/; test imports from parent dirrepl_skin.pycli-anything-plugin/repl_skin.pyinstall.shcopies toscripts/cli-anything-plugin/{commands,guides,templates}/install.shcopies them into the extensionChanges to Existing Files
README.md(repo root) — added Pi as a supported platform; fixed install instructions.gitignore— whitelisted.pi-extension/directoryGeneral Checklist
--jsonflag is supported on any new commands (/cli-anything:list)feat:,fix:,docs:,test:)Test Results
Python tests (31 passed)
Install script verified