# FAQ

Common questions about syncing skills, MCP servers, and instructions across AI coding agents.

**When you need this:** You have a quick "what happens if..." question about syncing skills or MCPs.

## Will Kasetto Overwrite My MCP Entries?

No. MCP merges are **additive** and existing server entries are **never overwritten**. See [How Sync Works](/docs/how-sync-works#mcp-servers-discovery-and-additive-merge).

## What Happens When Two Sources Define the Same MCP Server Name?

**First write wins** based on config order. Later sources with the same server name are skipped. See [How Sync Works](/docs/how-sync-works#edge-cases).

## Where Is the Lock File?

- **Global scope**: `$XDG_DATA_HOME/kasetto/kasetto.lock` (default: `~/.local/share/kasetto/kasetto.lock`)
- **Project scope**: `./kasetto.lock`

See [How Sync Works](/docs/how-sync-works#the-lockfile-contract).

## Should I Commit `kasetto.lock`?

Yes. For project scope, commit **both** `kasetto.yaml` and `kasetto.lock`, just like you'd commit `Cargo.lock` or `package-lock.json`. The config says what you want; the lock pins exactly which versions everyone gets. The lock is deterministic and portable (relative paths, no timestamps), so it diffs cleanly. Machine-local runtime state lives in the cache dir and is never committed. See [How Sync Works → The Lockfile Contract](/docs/how-sync-works#the-lockfile-contract).

## How Do I Update Pinned Versions?

Run `kst sync --update` (alias `-u`) to re-resolve branch / default-HEAD sources and rewrite the pins. A plain `kst sync` honors the lock and won't fetch when destinations already match. Use `kst sync --update <name>` to update only selected entries. See [How Sync Works → How `sync` Honors the Lock](/docs/how-sync-works#how-sync-honors-the-lock).

## How Do I Uninstall Safely?

- To remove tracked installs for a scope: `kst clean`
- To remove everything including the binary: `kst self uninstall`

See `kst clean` and `kst self uninstall` in [Commands](/docs/commands).

## Can I Use Multiple Agents?

Yes. Set `agent` to a list. See [Configuration](/docs/configuration#multiple-agents).

## Does Kasetto Run Code from Skills?

No. Skills are copied as directories. Execution is up to the agent you load them into.

## Can I Pin Sources to a Known-Good Version?

Yes. Use `ref:` with a tag or commit SHA. See [Cookbook](/docs/cookbook#mcp-packs-pinning-and-rollouts).

## What Does `--dry-run` Do?

It prints what would change without writing any files. Useful in CI. See [CI & automation](/docs/ci).

## Why Didn't My MCP Servers Show Up?

Most common causes:

- The target agent settings file is malformed JSON/TOML
- The MCP file doesn't contain a top-level `mcpServers` object

See [How Sync Works](/docs/how-sync-works#edge-cases) (corrupted settings file behavior).

## How Do Remote Configs (`--config https://...`) Authenticate?

Kasetto selects tokens by the URL hostname using the same rules as skill/MCP sources. See [Authentication](/docs/authentication#remote-configs).
