Skip to content

Configuration & layout

~/.agentsync/ is just files. Use the CLI or edit them in $EDITOR — both are first-class. There is no hidden internal representation: the TOML structs that parse these files are the canonical model.

  • Directory~/.agentsync/
    • agentsync.toml agents, update defaults, secrets backend
    • Directorymcp/
      • github.toml one MCP server per file
    • Directorymarketplaces/
      • anthropic.toml one marketplace per file
    • Directoryplugins/
      • atlassian.toml one plugin enablement per file
    • Directorymemory/
      • AGENTS.md canonical memory
      • Directoryfragments/ reusable @import pieces
    • Directoryskills/
      • Directorymy-skill/
        • SKILL.md standalone skills
    • Directorysecrets/
      • secrets.age age-encrypted vault
    • ignore.toml paths reconcile should stop tracking
    • Directory.state/ machine-local bookkeeping (gitignored)

Override the directory’s location with AGENTSYNC_HOME.

The top-level config: which agents are registered, update defaults, and the secrets backend.

~/.agentsync/agentsync.toml
# Registered agents and whether each is enabled.
[[agents]]
name = "claude"
enabled = true
[[agents]]
name = "opencode"
enabled = true
# Secrets backend — see the Secrets guide.
[secrets]
backend = "age"
recipient = "age1…" # public key, safe to commit
identity_file = "${env:HOME}/.config/agentsync/age.key" # private key, per-machine
FileHolds
mcp/<name>.tomlone MCP server (guide)
marketplaces/<name>.tomlone marketplace (guide)
plugins/<id>.tomlone plugin enablement (guide)
memory/AGENTS.md + fragments/canonical memory (guide)
skills/<name>/SKILL.mdstandalone skills
secrets/secrets.agethe age-encrypted vault (guide)

A repo can carry a .agentsync.toml marker at its root that merges onto your user config. See Project-local config.

~/.agentsync/.state/ is gitignored machine-local bookkeeping: the last-applied hashes (targets.json) that make drift detection possible, the apply lock, the two-phase write staging dir, first-apply backups, and the marketplace/plugin cache. Keys are stored ${HOME}-relative so state is portable across machines.