# Configuration files (/docs/cli/configuration)

Everything lives under `~/.barndog/` and belongs to your user on this machine. The directory you run a command from never changes which configuration is used.

| Path               | Contents                                                                        |
| ------------------ | ------------------------------------------------------------------------------- |
| `config.yaml`      | Your harnesses, server connection, and Skill selections. You can edit this.     |
| `credentials.json` | Your sign-in credential for each server. Private (mode `0600`). Don't share it. |
| `state.json`       | Which links BarnDog created. Don't delete it.                                   |
| `packages/`        | Downloaded copies of published Skills.                                          |
| `workspaces/`      | Records for your working copies, including conflict state and snapshots.        |
| `sync.lock`        | Exists only while a sync is running.                                            |

## `config.yaml` [#configyaml]

`barndog init` creates this file. Installing or connecting to a server adds the rest.

```yaml title="~/.barndog/config.yaml"
version: 2
harnesses: [claude, codex, cursor]
connection:
  server: https://barndog.example.com
  organizationId: 10000000-0000-4000-8000-000000000001
  developerId: 10000000-0000-4000-8000-000000000002
skills:
  # A published Skill, installed with `barndog skills install`
  - kind: api
    id: 20000000-0000-4000-8000-000000000001
    enabled: true
  # A Skill from a folder on this machine
  - kind: local
    id: 729b9d5a-4a8c-4aa7-9b8d-975a55ac373e
    source: ./skills/my-skill
    enabled: true
```

| Field        | Description                                                                                           |
| ------------ | ----------------------------------------------------------------------------------------------------- |
| `version`    | `1` for local-only configurations, `2` once connected to a server. Version 1 files keep working.      |
| `harnesses`  | Which harnesses BarnDog manages: any of `claude`, `codex`, `cursor`.                                  |
| `connection` | The server, organization, and developer this machine is connected to. Written by `init` or `install`. |
| `skills`     | Your Skill selections. `enabled: false` keeps a Skill selected but removes it from your harnesses.    |

For `kind: local` entries, `source` can be absolute, or relative to the configuration file. See [Use a Skill from a local folder](/docs/guides/install-skills#use-a-skill-from-a-local-folder).

## `state.json` [#statejson]

This file records which links and entries BarnDog owns, so sync never touches anything it didn't create. If you delete it, sync treats its own old links as unmanaged and refuses to replace them. Keep it.

## `packages/` [#packages]

Published Skills are downloaded here, partitioned by server, organization, developer, Skill, and version. Harness links point into this folder. Don't edit these files: sync detects local edits and stops. To change a Skill, [pull a working copy](/docs/guides/author-skills).
