Getting Started¶
Prerequisites¶
giton your PATH. SkillKeeper invokes the systemgitbinary directly and relies on your existing ssh-agent, SSH config, and Git LFS installation.git-lfsif any repository you add uses Git LFS (SkillKeeper reports a clear error when LFS is required but absent).- To build from source: a Rust toolchain (the pinned stable is installed
automatically by rustup from
rust-toolchain.tomlon firstcargobuild). Node.js 24+ and pnpm 11 are only needed to build the desktop app's renderer, not the CLI.
System requirements¶
| Platform | Requirement |
|---|---|
| Linux, CLI | Any distribution. Two builds ship: glibc (needs glibc 2.35 or newer) and static musl (needs no system libc). The install script picks one. |
| Linux, desktop app | glibc 2.35 or newer, plus WebKitGTK 4.1 and libsoup 3. No static build: the app links that stack from the distribution. |
| macOS | 11 or newer, Intel or Apple Silicon. |
| Windows | 10 or newer, x64 or arm64. |
The glibc floor is where the release binaries are linked, not a policy choice;
check yours with ldd --version. Building from source links against the glibc
the host already has, so its floor is the Rust toolchain's own, far lower. For a
host below the floor, see Troubleshooting.
Installation¶
SkillKeeper ships two front ends over the same core:
- Desktop app -- a platform bundle (dmg/
.app, deb/AppImage, nsis/msi) published with every release. Download it and run the installer. - CLI (
skillkeeper) -- a standalone binary. Install it with the one-line script below (recommended), or build it from source.
CLI: install script¶
The script detects your platform, downloads the matching skillkeeper-cli
archive from the latest release, unpacks it, installs the binary, and adds it to
your PATH. It uses only tools already on your system (nothing to install first).
macOS and Linux:
curl -fsSL https://raw.githubusercontent.com/lorem-dev/skillkeeper/main/scripts/install.sh | sh
Windows (PowerShell):
irm https://raw.githubusercontent.com/lorem-dev/skillkeeper/main/scripts/install.ps1 | iex
Override the install directory with SKILLKEEPER_INSTALL_DIR, or pin a specific
release with SKILLKEEPER_VERSION (for example v0.1.1).
On Linux it also reads the host's glibc and takes the static musl build when
that is below 2.35 or absent, as on Alpine. Both builds are the same CLI;
override the choice with SKILLKEEPER_LIBC=gnu or SKILLKEEPER_LIBC=musl.
CLI: build from source¶
The skillkeeper CLI is a Rust binary in this workspace. Build it with cargo:
cargo build --release -p skillkeeper-cli
The binary is written to target/release/skillkeeper. Or run it directly during
development:
cargo run -p skillkeeper-cli -- --version
Updating¶
The desktop app checks for a new release on startup and once a day. When one is available, a badge appears in the status bar; for a major or minor version it also opens a dialog on its own (a patch update stays badge-only). The dialog shows the release notes and an "Update now" button that downloads the release in the background. Once the download is verified, a second dialog's "Install now" quits the app and installs it: on macOS by mounting the dmg and replacing the running app bundle; on Linux by replacing the running AppImage in place, or handing a deb to the system installer; on Windows by launching the downloaded installer.
A check can also be started by hand, which ignores the once-a-day interval: from the Application updates section at the end of Settings, from the About window, or from Check for Updates in the macOS Help menu (which opens Settings at that section). Every check, scheduled or manual, appears in the task list with its result, so a check that found nothing is distinguishable from one that never ran.
If macOS refuses to replace the installed app, the dialog says so and shows the
xattr command that clears the block, with a button to copy it.
Add a skill repository¶
A skill repository is any Git remote that contains one or more skills. Add one with:
skillkeeper repo add <url>
Example with an SSH remote:
skillkeeper repo add git@github.com:example/my-skills.git
To try it against a real repository, add the skillkeeper-test-repo fixture, which contains nine resolvable skills, hooks, and MCP presets:
skillkeeper repo add git@github.com:lorem-dev/skillkeeper-test-repo.git
SkillKeeper clones the repository locally and resolves the skills it contains. List the repositories you have added:
skillkeeper repo list
Browse available skills¶
List the skills resolved from all added repositories:
skillkeeper skill list
Show details for a specific skill (version, description, source):
skillkeeper skill info <id>
Install a skill¶
Install a skill into the current project. Without --agent it installs for
every agent detected in the project directory (by its marker files, the same
detection the desktop app uses); pass --agent to target just one:
skillkeeper skill install <id>
skillkeeper skill install <id> --agent claude
<id> may be a full group/name (or bare name), or any unique prefix of one:
skillkeeper skill install ab resolves to abba when it is the only skill whose
id starts with ab (Docker-container-id style). The same shorthand works for
every command that takes a skill id.
Install globally (machine-wide, not tied to a project):
skillkeeper skill install <id> --global
By default hooks are not installed. To install hooks alongside the skill body you must opt in explicitly (see Skills and Hooks for what hooks are and why they require a separate flag):
skillkeeper skill install <id> --allow-hooks
Track a project¶
SkillKeeper can scope skill installs to a named project directory. Register the current directory as a tracked project:
skillkeeper project add .
List tracked projects:
skillkeeper project list
Check for updates¶
Run an on-demand update check across every tracked repository:
skillkeeper check
Verify and repair an installation¶
Check whether all files of an installed skill still match their recorded hashes:
skillkeeper skill verify <id>
Restore any files that have drifted or been deleted:
skillkeeper skill repair <id>
Configuration¶
SkillKeeper stores its configuration in config.yaml inside your OS
application-data directory. See Configuration for all
options. Open the file in your editor:
skillkeeper config edit
Print the config file path:
skillkeeper config path