What is cloud-sync?
The cloud-sync command uploads your locally scanned project data to the CIAK cloud API. This enables team collaboration, SaaS analytics, and remote access to your code intelligence data.
ciak cloud-sync [ACTION] [OPTIONS]
Cloud sync is separate from knowledge sync (ciak sync knowledge), which imports local knowledge entries into your database.
Prerequisites
- An active license — see
license. - A scanned project — run
ciak scan --embeddingsfirst.
Authentication is handled automatically via the license file at ~/.ciak/license. No separate API key is needed.
Actions
| Action | Description |
|---|---|
full | Upload all project data to the cloud (default) |
incremental | Upload only changes since the last sync |
status | Show current sync status |
delete | Remove project data from the cloud |
Options
| Option | Description |
|---|---|
-p, --path <PATH> | Project path (default: current directory .) |
--sync-profile <PROFILE> | Data minimization profile: index_only, snippet_limited, or full |
Sync profiles and feature impact
Cloud sync now supports explicit data minimization profiles. This determines what data leaves your machine and what cloud features are fully available.
| Profile | Data sent to cloud | Works well | Reduced / unavailable |
|---|---|---|---|
index_only | File + symbol metadata, signatures, dependency graph (no snippets/context/docs) | Code inventory, structural search, dependency analysis | Snippet previews, context-heavy explanations, embedding-based quality |
snippet_limited | Index metadata + truncated snippets (max 20 lines / 1200 chars), no full context/docs | Safer previews with lower exposure than full sync | Wide-context analysis, documentation-driven answers, embedding text upload |
full | Full snippets, context blocks, documentation, embedding text, vectors when available | Maximum cloud feature completeness and best contextual quality | No feature degradation; widest data-sharing scope |
Default profile can be controlled with PRIVACY_SYNC_PROFILE_DEFAULT. You can override per command:
ciak cloud-sync full --sync-profile index_only
ciak cloud-sync full --sync-profile snippet_limited
ciak cloud-sync full --sync-profile full
For continuous cloud sync via watch mode, use scan's profile override:
ciak scan --watch --cloud-sync --cloud-sync-profile snippet_limited
Examples
Example 1 — Full sync (embeddings included automatically in full profile)
ciak scan --embeddings
ciak cloud-sync full --path . --sync-profile full
Uploads files, symbols, dependencies, and embeddings to the cloud API when vectors are available.
Example 2 — Incremental sync
ciak cloud-sync incremental
Uploads only data that has changed since the last sync.
Example 3 — Check sync status
ciak cloud-sync status
Example 4 — Remove project from cloud
ciak cloud-sync delete
Input and output examples
Representative CLI output (truncated; exact formatting may vary by version):
Full sync
Input
ciak cloud-sync full --path . --sync-profile full
Output
Cloud sync action: full
Project: /path/to/project
Sync profile: full
Uploading files...
Uploading symbols and dependencies...
Uploading embeddings...
✓ Sync complete
Status
Input
ciak cloud-sync status
Output
Project sync status
Last successful sync: 2026-02-26T14:22:08Z
Last mode: incremental
Profile: snippet_limited
Pending changes: 0
What gets uploaded
What gets uploaded depends on your selected sync profile.
- Files — file metadata (paths, languages, sizes)
- Symbols — functions, classes, variables, and their signatures
- Dependencies — import/export relationships between files
- Code snippets / context / docs — only when profile allows it (
snippet_limitedorfull) - Embeddings — only in
fullprofile and when vector data exists
Troubleshooting
"No license found"
Activate your license first:
ciak license activate XXXX-XXXX-XXXX-XXXX
"Local database not found"
Run a scan before syncing:
ciak init
ciak scan --embeddings