Skip to main content

Get started with skl

In this tutorial we install skl, create a skill in the library, copy it into a project, and sync it so a second machine can use it. You need a terminal, curl, and about ten minutes. The sync steps need a browser for login. If you only want the library on this machine, stop after step 3.

1. Install skl​

Run the installer:

curl -fsSL https://tryskl.fyi/install.sh | sh

It downloads the release binary for your platform to ~/.local/bin/skl and prints:

==> installed /home/you/.local/bin/skl

If ~/.local/bin is not on your PATH, the installer also prints an export PATH=... line. Run that line now and add it to your shell configuration later.

Next the installer asks two questions. Answer n to both for now. We come back to login in step 4.

Log in now? [Y/n] n
Import existing skills (skl init)? [Y/n] n

Check the install:

skl --version

You see skl 0.4.2 or newer.

2. Create a skill​

Create a skill named writing-tests:

skl create writing-tests

skl writes ~/.local/share/skl/skills/writing-tests/SKILL.md and opens it in your editor. The file starts with a name and an empty description. Type a sentence after description:, save, and close the editor. The terminal shows:

created writing-tests (/home/you/.local/share/skl/skills/writing-tests)

List the library:

skl list

You see one row named writing-tests. The remote column shows - because we are not logged in yet.

3. Use the skill in a project​

Change into any project directory and use the skill:

cd /path/to/project
skl use writing-tests

You see:

using writing-tests (agents /home/you/.local/share/skl/skills/writing-tests)
copy agents /path/to/project/.agents/skills/writing-tests
updated /path/to/project/skills.toml

skl copied the skill into .agents/skills/writing-tests and wrote its name into skills.toml. Cursor, Codex, and other agents that read .agents/skills now see the skill. Run skl use with no name to see what the project uses:

name source mode
writing-tests library copy

Commit .agents/skills and skills.toml when you want the project to carry the skill.

4. Log in and sync​

Log in:

skl login

skl prints a URL and a code:

To approve this device, open:
https://tryskl.fyi/device?user_code=ABCD-2345
And enter code: ABCD-2345

Waiting for approval (poll /v1/auth/device/token) ...

Open the URL in a browser, sign in, and approve the device. The terminal continues with Logged in. Device token stored in local state.

Now sync:

skl sync

You see the upload:

upload: 1 blob(s)
download: 0 blob(s)
conflicts: 0
missing_skills: 0
...
sync done uploaded=1 downloaded=0 pushed=1 conflicts=0

Run skl list again. The remote column for writing-tests now says yes.

5. Pull the library on a second machine​

On another machine, install skl as in step 1 and answer n to both questions. Then:

skl login
skl sync

The sync downloads the skill:

download: 1 blob(s)
...
wrote skill writing-tests → /home/you/.local/share/skl/skills/writing-tests

The library on the second machine now has writing-tests. Its projects do not change until you run skl use in them. Clone the project from step 3 and run:

skl use --all

skl recreates every skill listed in skills.toml from this machine's library.

What you built​

You have one library that holds writing-tests, one project that carries a copy of it, and a second machine with the same library. From here, Use a skill in a project covers removing and refreshing skills, and Import skills you already have covers bringing in skills from ~/.claude/skills and other directories.