suzent-skill-installer · git:20260815.1fe9280 · 2026-08-15 · sha256 9f5ccb45fa9bd09e
suzent-skill-installer git:20260815.1fe9280A
Immutable. This exact content never changes and is served at /api/v1/blob/9f5ccb45fa9bd09e.
---
name: suzent-skill-installer
description: Install a Suzent AgentSkill from a Git repo, ZIP URL, or owner/repo GitHub shorthand. Use when the user wants to add a third-party or community skill to Suzent. Fetches and copies only; never executes fetched code at install time.
---
## Overview
This skill installs an AgentSkill into Suzent's **`user` bucket**
(`~/.suzent/skills/user/<name>/`) from one of:
- a **Git repo** URL (ends in `.git` or is a recognizable repo URL),
- a **ZIP** URL (ends in `.zip`), or
- a **GitHub shorthand** `owner/repo` or `owner/repo/path/to/skill`.
It fetches files only — it does **not** run any code from the fetched source at
install time (no `npm install`, no post-install scripts). Bundled `scripts/` in
the installed skill run later, at *use* time, through the agent's normal
sandboxed tool path. "owner/repo shorthand" is a source-naming convenience and
resolves to a GitHub fetch; it does not invoke `npx` or any package.
Run this only on the user's explicit request ("install the skill at X"). Fetch
the named source, confirm it is a real skill, and copy it without executing
fetched code. The normal permission policy remains authoritative, especially
for overwriting an existing skill or changing activation state. Any bundled
`scripts/` run later through the agent's normal sandbox and approval path.
## Workflow
### 1. Run the installer
```bash
python scripts/install.py "<source>" [--name <name>] [--activate]
```
- `<source>` — a Git URL, ZIP URL, or `owner/repo[/path]`.
- `--name` — override the inferred skill name (default: last path segment).
- `--activate` — enable the skill after install (otherwise it installs disabled).
The script:
1. Resolves the source type and target name.
2. Fetches into a temp dir (`git clone --depth 1`, or download + unzip), with a
size cap so a runaway fetch can't half-install.
3. Locates the `SKILL.md` (resolving into a subdirectory for monorepos) and
validates that its frontmatter parses under Suzent's loader (flat
`name:`/`description:` only — see the `suzent-skill-creator` skill).
4. Copies the validated directory to `~/.suzent/skills/user/<name>/`, cleaning up
on any failure.
### 2. Activate and verify
```bash
suzent skill reload
suzent skill list
suzent skill toggle <name> # if not installed with --activate
```
In **sandbox mode**, prefer the filesystem skill / `SUZENT_BASE_URL` for any
direct file writes, and call `POST /skills/reload` to surface the new skill.
## Notes / scope
- v1 is strictly fetch-and-copy. No setup/post-install steps are run.
- If validation fails (missing `SKILL.md`, or frontmatter Suzent can't load), the
install aborts and the partial download is removed — report the reason to the
user.