Install skills straight from GitHub

Plenty of great harness config lives in plain GitHub repos — skill collections like obra/superpowers or anthropics/skills — with no registry or packaging involved. baselane install takes a git ref directly, resolves it to a commit SHA, vendors the content, and pins it in harness.json.

Install a whole repo at a tag

baselane install github:obra/superpowers@v6.1.1

The ref (v6.1.1) is resolved to its commit SHA at install time, and the SHA — not just the ref — is what gets recorded. Tags can move; the pin can't. Re-running an install from the same manifest always reproduces the same bytes, and tampering shows up in drift because every vendored file's hash is recorded too.

Install a single skill from a repo

baselane install obra/superpowers@test-driven-development

The owner/repo@skill form picks one skill folder out of a collection instead of vendoring everything — useful when you want a repo's TDD skill but not its forty neighbors.

Repo-level or machine-level

baselane install github:obra/superpowers@v6.1.1       # this repo: ./.claude + ./harness.json
baselane install github:obra/superpowers@v6.1.1 -g    # this machine: ~/.claude + global manifest

Without -g, the skills vendor into the current repo and the pin lands in its committed harness.json — teammates get the exact same skills from the manifest. With -g, it's personal config for every project on this machine.

What lands in harness.json

"resolutions": {
  "github:obra/superpowers": {
    "ref": "v6.1.1",
    "sha": "c984ea2e7aeffdcc865784fd6c5e3ab75da0209a",
    "packId": "superpowers"
  }
}

Ref → exact SHA, plus per-file hashes under materialized. See the harness.json reference for the full shape.

Update deliberately

baselane update github:obra/superpowers   # re-resolve the ref, bump the pin
baselane drift                            # verify disk matches the manifest

Nothing auto-updates. An upstream release does nothing to your repos until you run update — and the bump is an ordinary reviewable diff to harness.json.