Device Sync
Device Sync lets you transfer your profiles, API keys, and settings between devices. All data is encrypted with a passphrase you choose -- the server never sees your decrypted data.
How It Works
Sync uses AES-256-GCM encryption with a key derived from your passphrase via PBKDF2 (310,000 iterations). The encrypted blob is stored temporarily on the AISCouncil API server for transfer, but the server cannot decrypt it.
Device A Server Device B
| | |
|-- encrypt(data, passphrase) -->| |
| |<-- request(pair_code) --------|
| |-- encrypted_blob ------------>|
| | decrypt(blob, passphrase)
What Gets Synced
| Data | Included | Notes |
|---|---|---|
| Bot profiles | Yes | Names, models, system prompts, personas |
| API keys | Yes | Encrypted with your passphrase |
| Settings | Yes | Theme, preferences, toggles |
| Chat history | No | Too large for sync; stays per-device |
| Mini-program data | No | Per-app storage is device-local |
Sync Methods
Cloud Backup
Automatically back up your data to the AISCouncil API. Backups are encrypted before upload.
- Open Settings > Account
- Click Enable Cloud Backup
- Set a passphrase (this is your encryption key -- write it down)
- Data is backed up automatically with a 30-second debounce after changes
To restore on a new device:
- Sign in to the same account
- A backup prompt appears on login if a backup exists
- Enter your passphrase to decrypt and restore
Device Pairing
Transfer data directly between two devices using a 6-character pair code:
- On the source device, go to Settings > Account > Pair Device
- A 6-character code is displayed
- On the target device, go to Settings > Account > Enter Pair Code
- Enter the code and the shared passphrase
- Data transfers via WebRTC signaling through the API
Device Sync Mini-Program
The Device Sync mini-program provides a visual interface for all sync operations with three transfer methods:
- LAN sync -- Direct connection between devices on the same local network
- QR code -- Scan a QR code displayed on the source device
- Internet relay -- WebRTC signaling for devices on different networks
Install it from the Apps grid (platform tier, one-time purchase).
Security
- Zero-knowledge encryption -- The server stores only encrypted blobs. Without your passphrase, the data is unreadable.
- PBKDF2 key derivation -- 310,000 iterations with a random salt make brute-force attacks impractical.
- AES-256-GCM -- Authenticated encryption prevents tampering.
- Session-scoped passphrase -- Your passphrase is stored only in the browser session (sessionStorage). It is cleared when you close the tab.
- No plaintext keys on server -- API keys are encrypted before they leave your device.
Auto-Backup
When cloud backup is enabled, changes are automatically backed up after a 30-second debounce. This means:
- Changing a setting triggers a backup 30 seconds later
- Multiple rapid changes are batched into one backup
- The backup only uploads if data has actually changed
You can also trigger a manual backup from Settings > Account > Backup Now.
Limitations
- Chat history is not synced (it remains per-device)
- Cloud backup requires an AISCouncil account (not available in guest mode)
- The passphrase cannot be recovered if lost -- there is no "forgot passphrase" flow
- Backup size is limited by the API (practical limit: several MB of profile/settings data)