# Install and manage Skills (/docs/guides/install-skills)

## Find a Skill [#find-a-skill]

```bash
barndog skills list
```

This lists every published Skill you can access, with its origin and current version. Listing never installs anything.

## Install a published Skill [#install-a-published-skill]

```bash
barndog skills install code-review --origin team/platform
```

BarnDog records the Skill's permanent ID in `~/.barndog/config.yaml`, downloads its current published version, and links it into your selected harnesses. From then on, `barndog sync` keeps it on the latest published version.

## Disable, enable, or remove [#disable-enable-or-remove]

Open `~/.barndog/config.yaml` and find the Skill's entry:

```yaml
skills:
  - kind: api
    id: 20000000-0000-4000-8000-000000000001
    enabled: true
```

- **Disable:** set `enabled: false` and run `barndog sync`. The Skill is removed from your harnesses but stays selected.
- **Enable:** set `enabled: true` and sync again to bring it back.
- **Remove:** delete the entry and sync. Its links are removed.

<Callout>
  Commands for enabling, disabling, and removing assets are on the
  [roadmap](/docs/roadmap). Until then, edit the configuration file directly.
</Callout>

## Use a Skill from a local folder [#use-a-skill-from-a-local-folder]

You can also link a Skill that lives in a folder on your machine. This is useful for personal Skills or while you are trying something out. Add an entry with a `source` path:

```yaml
skills:
  - kind: local
    id: 729b9d5a-4a8c-4aa7-9b8d-975a55ac373e
    source: ./skills/my-skill
    enabled: true
```

- `id` is any UUID you choose. It must stay the same once you've synced.
- `source` can be absolute or relative. Relative paths start from the configuration file, so `./skills/my-skill` means `~/.barndog/skills/my-skill`.
- The folder must contain a `SKILL.md` whose frontmatter has a lowercase, hyphenated `name` that matches the folder name, and a non-empty `description`.

```md title="~/.barndog/skills/my-skill/SKILL.md"
---
name: my-skill
description: Explains how this team writes database migrations.
---

# Database migrations

...
```

BarnDog links the folder itself, so your edits show up immediately. A harness may need a new session to reload them. Local folders are never uploaded.

## When sync stops [#when-sync-stops]

Sync is careful by design. It stops without changing anything when:

- a Skill can't be downloaded or doesn't validate,
- two Skills would get the same name in one harness,
- something BarnDog didn't create already exists where a link should go, or
- a link BarnDog created was replaced by something else.

Fix the reported problem and run `barndog sync` again. BarnDog never deletes a Skill folder to make room.

If you edit a downloaded Skill inside BarnDog's package cache, sync notices and stops rather than overwrite your edits. To change a shared Skill, [pull it into a working copy](/docs/guides/author-skills) instead.
