Adding Skills

Ion supports multiple skill sources. This guide covers each one and when to use them.

From GitHub

The most common way to add a skill:

ion add github:owner/repo-name

Ion clones the repository, validates the skill, and installs it. The GitHub source supports pinning to a specific revision:

ion add github:owner/repo-name --rev abc1234

Pinned skills won’t be updated by ion update — they stay at the exact commit you specified.

From Git URLs

For skills hosted outside GitHub:

ion add git:https://gitlab.com/owner/repo.git

This works with any Git hosting provider.

From HTTP

For standalone skill archives:

ion add https://example.com/my-skill.tar.gz

Local skills

Create skills that live in your project’s repository:

ion new

Ion prompts for a name and creates a SKILL.md in your skills directory with the proper frontmatter template. To create at a specific path:

ion new --path .agents/skills/my-custom-skill

Local skills are tracked in Ion.toml as { type = "local" } and managed by your project’s version control directly — they skip the fetch, validate, and gitignore steps that remote skills go through.

Ejecting a remote skill

You can convert a remote skill to a local copy for customization:

ion skill eject skill-name

This copies the skill files into your local skills directory and updates the manifest. The original source is recorded as forked-from metadata.

Managing skills

List installed skills:

ion list

Remove a skill:

ion remove skill-name

Update all skills to their latest versions:

ion update