A pi extension that installs agent skills directly from GitHub repositories. Supports both global (~/.pi/agent/skills/) and project-local (.pi/skills/) installations.
- LLM-callable tool — The agent can autonomously install skills from GitHub URLs when asked.
- Interactive command — Use
/install-skill <url>to install skills manually. - Recursive fetching — Downloads all files in a skill directory, including subdirectories.
- Smart name detection — Extracts the skill name from SKILL.md frontmatter, falling back to the directory name.
- Multiple URL formats — Supports blob URLs, tree URLs, raw CDN URLs, and shorthand notation.
- Project-local installation — Use
--projectorproject_local: trueto install in the current project.
pi install git:github.com/TimonClaeys/pi-github-skill-installer
# or from npm once published:
pi install npm:@timonclaeys/pi-github-skill-installerOr from a local path:
pi install /path/to/pi-github-skill-installerpi -e ./path/to/extensions/install-github-skill.tsSimply ask pi to install a skill from a GitHub URL:
Install the brave-search skill from github.com/badlogic/pi-skills
The agent will automatically invoke the install_github_skill tool.
/install-skill https://github.com/user/repo/tree/main/skills/my-skill
For project-local installation:
/install-skill https://github.com/user/repo/tree/main/skills/my-skill --project
Or via the tool with explicit agent instruction:
Install the skill from https://github.com/user/repo/tree/main/skills/my-skill
Make it project-local.
https://github.com/owner/repo/tree/branch/path/to/skill
https://github.com/owner/repo/blob/branch/path/to/skill/SKILL.md
https://github.com/owner/repo
https://raw.githubusercontent.com/owner/repo/branch/path/to/skill/SKILL.md
owner/repo/path/to/skill
- Parse the GitHub URL to extract owner, repo, branch/ref, and path.
- List all files in the target directory using the GitHub Contents API.
- Fetch each file's content from
raw.githubusercontent.com. - Install the files to the appropriate skill directory:
- Global:
~/.pi/agent/skills/<skill-name>/ - Project-local:
.pi/skills/<skill-name>/
- Global:
- Detect the skill name from SKILL.md frontmatter's
name:field, or use the directory name. - Report the installation result, including any warnings (e.g., missing SKILL.md).
After installation, run /reload or restart pi for the new skill to appear in the available skills list.
@timonclaeys/pi-github-skill-installer/
├── package.json # npm package manifest with pi metadata
├── README.md # This file
├── LICENSE # MIT license
├── .gitignore # Git exclusion rules
├── .npmignore # npm publish exclusion rules
└── extensions/
└── install-github-skill.ts # Main extension source (~500 lines)
To publish the package to npm:
npm login
npm publish --access publicNote: Scoped packages publish as private by default. The
--access publicflag makes it publicly installable.
MIT