# Supported harnesses (/docs/harnesses)

A **harness** is a native AI coding tool, such as Claude Code. BarnDog writes your setup into each harness's own configuration, so you keep using the tool exactly as before.

## Skill locations [#skill-locations]

`barndog sync` links each enabled Skill into the harnesses you selected:

| Harness     | Skills are linked into    |
| ----------- | ------------------------- |
| Claude Code | `~/.claude/skills/<name>` |
| Codex       | `~/.agents/skills/<name>` |
| Cursor      | `~/.cursor/skills/<name>` |

Installation is user-wide: every project on the machine sees the same Skills. A harness reads Skills when a session starts, so open a new session after syncing.

## Detection [#detection]

When you run `barndog init`, BarnDog checks whether each harness is installed by looking for:

- its command on your `PATH`, and
- on macOS, its app in `/Applications` or `~/Applications`.

An existing Skills folder does not count as an installation. A harness that wasn't detected can still be selected, for example if you install it later or it lives somewhere unusual.

## What sync will and won't touch [#what-sync-will-and-wont-touch]

- Sync only manages the links and entries it created. It never modifies, deletes, or adopts Skills you installed yourself.
- If something unmanaged already exists where BarnDog wants to put a Skill, sync stops and tells you. It does not overwrite it.
- If you deselect a harness and sync, BarnDog removes its links from that harness and leaves the others alone.

## Harness notes [#harness-notes]

<Callout title="Cursor">
  BarnDog supports local Cursor Agent sessions. Cursor also reads
  `~/.agents/skills/` and `~/.claude/skills/`, so a Skill may appear there even
  when Cursor isn't selected. Selecting a harness controls which folders BarnDog
  manages; it can't stop one harness from reading another's folder.
</Callout>

OpenCode and Gemini CLI are planned. See the [roadmap](/docs/roadmap).
