Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Getting started

Install

Linux / macOS:

curl -fsSL https://raw.githubusercontent.com/driftsys/upskill/main/install.sh | sh

UPSKILL_VERSION pins a release tag (default: latest) and UPSKILL_INSTALL_DIR overrides the install location (default $HOME/.local/bin).

Windows (native — CMD / PowerShell):

cargo install upskill

Requires a Rust toolchain. The binary has no other runtime dependencies. HOME and USERPROFILE are both recognised as the global install root, so the standard Windows USERPROFILE variable works without any extra setup.

Windows (WSL): use the Linux install command above inside your WSL terminal.

Cross-platform alternative:

cargo install upskill

Or download a pre-built binary directly from the releases page.

upskill is a single static binary with no runtime dependencies.

Install your first source (consumer)

Inside a project where you want AI clients to pick up rules / skills / agents:

# Install everything from a source repo
upskill add driftsys/skills

# Or install a curated bundle (by name — resolves the .bundle.yaml automatically)
upskill add driftsys/bundles platform-baseline

# Pin to a tag, branch, or commit
upskill add driftsys/skills@v1.2.0

Generated files land in .claude/, .github/, and .agents/. The .upskill-lock.json file in your repo records what was installed and at which ref — commit it so other developers and CI regenerate the same content.

Verify state any time:

upskill list      # what's installed
upskill doctor    # any drift between lockfile and on-disk output?
upskill update    # re-fetch sources and regenerate

Configuring registries

To search content from corporate or custom registries, add them to your config:

# ~/.config/upskill/config.yaml
registries:
  - name: corp
    source: https://gitlab.com/mycompany/ai-skills
  - name: team
    source: myorg/team-skills

Then upskill search will include results from all configured registries. You can also search a specific registry:

upskill search auth --registry corp

Scaffold your first item (author)

Inside a source-registry repo (where SSOT items live), the recommended layout puts all items and bundles under a top-level skills/ directory (see Conventions):

mkdir -p skills && cd skills
upskill new skill code-review

This writes skills/code-review/SKILL.md with the minimum frontmatter the format spec requires (item directories live at one level under the source-registry root per format-spec §2.1). Open it, replace the TODO description and body, then run:

upskill lint --strict   # validate against the format spec
upskill fmt             # canonicalise YAML frontmatter

You can also scaffold rules (upskill new rule <name>) and agents (upskill new agent <name>). Bundles are plain *.bundle.yaml files that sit alongside the items they reference, also under skills/.

Man pages

upskill ships a man-page generator. Run it from the source tree:

just man             # or: cargo run --example mangen --release

That writes one .1 per command into target/man/:

target/man/upskill.1
target/man/upskill-add.1
target/man/upskill-doctor.1
…

Install system-wide:

sudo cp target/man/*.1 /usr/local/share/man/man1/
man upskill          # or: man upskill-add

Where to next

  • Commands — every verb explained, with flags.
  • Recipes — CI, private repos, pinning, cleanup.
  • Portable format — the on-disk SSOT contract the lint validates against.