> ## Documentation Index
> Fetch the complete documentation index at: https://to11.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Skills quickstart

> Receive your team's skills, publish a skill of your own, and release it to everyone who follows a label.

In this tutorial you will set up the to11 CLI, receive the skills a project already publishes, write a small skill of your own, and release it. By the end, Claude Code reads skills that to11 keeps current, and you have released a version other people receive.

You need a to11 account in your company's organization, a [project](/docs/platform/projects) you can create prompts in, and Claude Code installed. On macOS, you also need [Homebrew](https://brew.sh).

## Install the CLI

<CodeGroup>
  ```bash macOS theme={null}
  brew install to11ai/tap/to11
  ```

  ```bash Ubuntu & Debian theme={null}
  echo "deb [trusted=yes] https://apt.fury.io/to11/ /" | sudo tee /etc/apt/sources.list.d/to11.list
  sudo apt update
  sudo apt install to11
  ```

  ```bash Fedora & RHEL theme={null}
  sudo tee /etc/yum.repos.d/to11.repo <<EOF
  [to11]
  name=to11 Repository
  baseurl=https://yum.fury.io/to11/
  enabled=1
  gpgcheck=0
  EOF

  sudo dnf install to11
  ```
</CodeGroup>

```bash theme={null}
to11 version
```

This tutorial needs version `0.8.0` or later. If `to11 version` prints an older one, upgrade with the same tool you installed it with: `brew upgrade to11ai/tap/to11`, `sudo apt update && sudo apt install --only-upgrade to11`, or `sudo dnf upgrade to11`.

## Set up this machine

Run this from your home directory, not inside a git repository:

```bash theme={null}
cd ~
to11 ui
```

`to11 ui` opens your browser to sign you in, then walks you through setup in the terminal:

1. On **Skills**, select the project you will publish to and keep the label it offers — `prod` when the project has one. Make sure **Claude Code** is selected under Targets.
2. On **Code · to11 Plugin**, install the plugin. It keeps your skills current while Claude Code is open.

Saving the Skills step writes `~/.to11/skills.yaml` and fetches every skill the project publishes on that label.

## See what you received

```bash theme={null}
to11 skill list
```

Each row is one skill in one agent's directory. A project that already publishes skills shows them as `unchanged` — installed and current. A project that publishes nothing yet shows no rows from to11; that is fine, the next step adds one.

## Write a skill

A skill is a folder whose entry document is `SKILL.md`. Create one:

```bash theme={null}
mkdir -p ~/skills-tutorial/commit-style
cat > ~/skills-tutorial/commit-style/SKILL.md <<'EOF'
---
name: commit-style
description: Write commit messages in this team's Conventional Commits style.
---

When you write a commit message:

- Use a Conventional Commits type and a scope: `fix(api): …`.
- Keep the subject under 72 characters, in the imperative mood.
- Put the ticket ID at the end of the subject in brackets: `[TO11-123]`.
EOF
```

The `description` matters: an agent decides whether a skill is relevant by reading it.

## Store it

```bash theme={null}
to11 skill store commit-style --dir ~/skills-tutorial/commit-style
```

```text theme={null}
created   commit-style v1    acme/platform (home)
installed /home/you/.claude/skills/commit-style
not published — `to11 skill release commit-style` releases it on `prod`
```

`created` tells you this is a new skill rather than a new version of an existing one. If you also kept Codex selected, a second `installed` line names `~/.agents/skills`. The skill is now on your machine and your agent can use it — but **nobody else has it**. Storing writes a version; it does not release one.

Run `to11 skill list` again: the row for `commit-style` reads `pinned 1`. Your configuration holds you at the version you just stored.

## Try it

Open Claude Code and ask it to write a commit message for a change. It picks up `commit-style` from its skills directory.

## Release it

When you are happy with it:

```bash theme={null}
to11 skill release commit-style
```

```text theme={null}
published commit-style v1 → prod    acme/platform (home)
everyone who follows `prod` in that project receives it on their next sync
```

That last line is the point: this is the only command whose effect reaches other people. Anyone following `prod` in the project now receives `commit-style` — automatically while their agent is open, or on their next `to11 skill sync`.

## What you did

You configured a machine to receive a project's skills, stored a skill that only you could see, and released it so everyone following the label receives it. Every later change works the same way: edit the folder, `store`, try it, `release`.

## Next steps

<CardGroup cols={2}>
  <Card title="Trace coding agents" icon="plug" href="/docs/instrument/coding-agents">
    Route your agent through to11 so its model requests are recorded in your project.
  </Card>

  <Card title="Publishing skills" icon="pen-line" href="/docs/skills/publishing-skills">
    Descriptions, reference files, rollbacks, and the other details of storing and releasing.
  </Card>

  <Card title="Choosing which skills you receive" icon="sliders-horizontal" href="/docs/skills/choosing-skills">
    Turn a skill off, hold a version, or share a set with a repository.
  </Card>

  <Card title="What a skill is" icon="folder-tree" href="/docs/skills/concepts">
    The folder format, its limits, and what a skill cannot carry.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.