Skip to content

Cloud Sync Details

Cloud Sync encrypts and synchronizes your Swixter profiles across machines via a secure API.

  1. Profiles are encrypted locally before upload
  2. Encrypted data is sent to the Swixter sync API
  3. Other machines pull and decrypt changes
  4. Conflict resolution determines which version wins when profiles change on multiple machines
{
"sync": {
"autoSync": true,
"interval": 300,
"conflictStrategy": "lastWriteWins",
"endpoint": "https://sync.swixter.cc"
}
}
OptionDescriptionDefault
autoSyncAutomatically sync on profile changestrue
intervalBackground sync interval in seconds300
conflictStrategyHow to resolve conflicts"lastWriteWins"
endpointSync API endpoint"https://sync.swixter.cc"

Profiles are encrypted using AES-256-GCM before transmission:

  • Key derivation: PBKDF2 with 100,000 iterations
  • Master key: Derived from your authentication token
  • Per-profile IV: Unique initialization vector for each profile

API keys in profiles are encrypted at rest on the server. The server never sees plaintext API keys.

When the same profile is modified on two machines before syncing:

StrategyBehavior
lastWriteWinsMost recent modification takes precedence
manualPrompt user to choose which version to keep

When manual strategy is active, conflicting profiles appear in:

Terminal window
swixter sync status
# Shows: 2 profiles with conflicts

Review and resolve:

Terminal window
swixter sync resolve <profile-name>
# Shows diff between versions
# Choose: local / remote / merge

The following data is synced:

  • Profiles (API keys, provider settings, models)
  • Active profile assignments per coder
  • User-defined providers
  • Groups

Not synced:

  • Coder CLI installations (use swixter <coder> install on each machine)
  • Proxy configuration
  • Web UI preferences
Terminal window
# Check status
swixter sync status
# Force re-authentication
swixter sync logout
swixter sync login
Terminal window
# Force a pull
swixter sync pull
# Check for conflicts
swixter sync status
Terminal window
swixter sync logout
# This removes auth tokens. Local profiles are preserved.
swixter sync login
# Re-authenticate and re-sync.

For teams or users who want to run their own sync server, the sync endpoint can be customized:

{
"sync": {
"endpoint": "https://sync.my-company.com"
}
}

The sync API is a Workers-compatible REST API. See the Swixter GitHub repository for API documentation.