Skip to main content

Synchronization

Sync is the process of making cognitives available to AI providers via symlinks.

How It Works​

┌──────────────────┐         ┌──────────────────┐
│ .synapsync/ │ │ .claude/ │
│ (source) │ ──────▶ │ (symlinks) │
│ │ sync │ │
│ skills/ │ │ skills/ │
│ agents/ │ │ agents/ │
└──────────────────┘ └──────────────────┘
creates
symlinks

Two-Phase Process​

Phase 1: Manifest Reconciliation​

Compares filesystem with manifest.json:

  1. Scans .synapsync/ for cognitive files
  2. Detects new, modified, or deleted cognitives
  3. Updates manifest.json accordingly
synapsync sync
# Phase 1: Scanned 5 cognitives, added 1 new

Phase 2: Provider Sync​

Creates symlinks in provider directories:

  1. Reads enabled providers from config
  2. Creates directory structure if needed
  3. Creates symlinks from provider dir to .synapsync/
# Phase 2: Created 2 symlinks in .claude/

Different cognitive types use different sync modes:

Folder Sync (Skills)​

Skills sync as folder symlinks to preserve assets:

.claude/skills/code-reviewer/
└── → ../../.synapsync/skills/general/code-reviewer/

The entire folder is symlinked, including:

  • SKILL.md
  • assets/ directory
  • Any other files

File Sync (Others)​

Agents, prompts, workflows, and tools sync as file symlinks:

.claude/agents/feature-branch-manager.md
└── → ../../.synapsync/agents/general/feature-branch-manager/AGENT.md

Sync Commands​

Full Sync​

synapsync sync

Preview Changes​

synapsync sync --dry-run

Sync Specific Type​

synapsync sync --type skill

Sync to Specific Provider​

synapsync sync --provider claude

Check Status​

synapsync sync status

Copy Mode​

For environments where symlinks don't work:

synapsync sync --copy

Creates file copies instead of symlinks. Downsides:

  • Changes in .synapsync/ don't auto-reflect
  • Need to re-sync after edits

Best Practices​

  1. Sync happens automatically when adding cognitives with synapsync add

  2. Check status regularly

    synapsync sync status
  3. Clean orphans after uninstall

    synapsync clean --orphans
  4. Dry-run before force sync

    synapsync sync --dry-run
    synapsync sync --force