📦 bundle
📦 Manage app bundles for deployment in Capgo Cloud, including upload, compatibility checks, and encryption.
⬆️ Upload
Alias: u
npx @capgo/cli@latest bundle upload
⬆️ Upload a new app bundle to Capgo Cloud for distribution. Version must be > 0.0.0 and unique. Deleted versions cannot be reused for security. External option: Store only a URL link (useful for apps >200MB or privacy requirements). Capgo never inspects external content. Add encryption for trustless security.
Example:
npx @capgo/cli@latest bundle upload com.example.app --path ./dist --channel production
Options:
Param | Type | Description |
---|---|---|
-a, | string | API key to link to your account |
-p, | string | Path of the folder to upload, if not provided it will use the webDir set in capacitor.config |
-c, | string | Channel to link to |
-e, | string | Link to external URL instead of upload to Capgo Cloud |
—iv-session-key | string | Set the IV and session key for bundle URL external |
—s3-region | string | Region for your S3 bucket |
—s3-apikey | string | API key for your S3 endpoint |
—s3-apisecret | string | API secret for your S3 endpoint |
—s3-endpoint | string | URL of S3 endpoint |
—s3-bucket-name | string | Name for your AWS S3 bucket |
—s3-port | string | Port for your S3 endpoint |
—no-s3-ssl | boolean | Disable SSL for S3 upload |
—key-v2 | string | Custom path for private signing key (v2 system) |
—key-data-v2 | string | Private signing key (v2 system) |
—bundle-url | boolean | Prints bundle URL into stdout |
—no-key | boolean | Ignore signing key and send clear update |
—no-code-check | boolean | Ignore checking if notifyAppReady() is called in source code and index present in root folder |
—display-iv-session | boolean | Show in the console the IV and session key used to encrypt the update |
-b, | string | Bundle version number of the bundle to upload |
—link | string | Link to external resource (e.g. GitHub release) |
—comment | string | Comment about this version, could be a release note, a commit hash, a commit message, etc. |
—min-update-version | string | Minimal version required to update to this version. Used only if the disable auto update is set to metadata in channel |
—auto-min-update-version | boolean | Set the min update version based on native packages |
—ignore-metadata-check | boolean | Ignores the metadata (node_modules) check when uploading |
—ignore-checksum-check | boolean | Ignores the checksum check when uploading |
—timeout | string | Timeout for the upload process in seconds |
—multipart | boolean | [DEPRECATED] Use —tus instead. Uses multipart protocol for S3 uploads |
—zip | boolean | Upload the bundle using zip to Capgo cloud (legacy) |
—tus | boolean | Upload the bundle using TUS to Capgo cloud |
—tus-chunk-size | string | Chunk size in bytes for TUS resumable uploads (default: auto) |
—partial | boolean | [DEPRECATED] Use —delta instead. Upload incremental updates |
—partial-only | boolean | [DEPRECATED] Use —delta-only instead. Upload only incremental updates, skip full bundle |
—delta | boolean | Upload incremental/differential updates to reduce bandwidth |
—delta-only | boolean | Upload only delta updates without full bundle (useful for large apps) |
—encrypted-checksum | string | An encrypted checksum (signature). Used only when uploading an external bundle. |
—auto-set-bundle | boolean | Set the bundle in capacitor.config.json |
—dry-upload | boolean | Dry upload the bundle process, mean it will not upload the files but add the row in database (Used by Capgo for internal testing) |
—package-json | string | Paths to package.json files for monorepos (comma-separated) |
—node-modules | string | Paths to node_modules directories for monorepos (comma-separated) |
—encrypt-partial | boolean | Encrypt delta update files (auto-enabled for updater > 6.14.4) |
—delete-linked-bundle-on-upload | boolean | Locates the currently linked bundle in the channel you are trying to upload to, and deletes it |
—no-brotli-patterns | string | Files to exclude from Brotli compression (comma-separated globs, e.g., “.jpg,.png”) |
—disable-brotli | boolean | Completely disable brotli compression even if updater version supports it |
—version-exists-ok | boolean | Exit successfully if bundle version already exists, useful for CI/CD workflows with monorepos |
—self-assign | boolean | Allow devices to auto-join this channel (updates channel setting) |
—supa-host | string | Custom Supabase host URL (for self-hosting or Capgo development) |
—supa-anon | string | Custom Supabase anon key (for self-hosting) |
🧪 Compatibility
npx @capgo/cli@latest bundle compatibility
🧪 Check compatibility of a bundle with a specific channel in Capgo Cloud to ensure updates are safe.
Example:
npx @capgo/cli@latest bundle compatibility com.example.app --channel production
Options:
Param | Type | Description |
---|---|---|
-a, | string | API key to link to your account |
-c, | string | Channel to check the compatibility with |
—text | boolean | Output text instead of emojis |
—package-json | string | Paths to package.json files for monorepos (comma-separated) |
—node-modules | string | Paths to node_modules directories for monorepos (comma-separated) |
—supa-host | string | Custom Supabase host URL (for self-hosting or Capgo development) |
—supa-anon | string | Custom Supabase anon key (for self-hosting) |
🗑️ Delete
Alias: d
npx @capgo/cli@latest bundle delete
🗑️ Delete a specific bundle from Capgo Cloud, optionally targeting a single version.
Example:
npx @capgo/cli@latest bundle delete BUNDLE_ID com.example.app
Options:
Param | Type | Description |
---|---|---|
-a, | string | API key to link to your account |
—supa-host | string | Custom Supabase host URL (for self-hosting or Capgo development) |
—supa-anon | string | Custom Supabase anon key (for self-hosting) |
📋 List
Alias: l
npx @capgo/cli@latest bundle list
📋 List all bundles uploaded for an app in Capgo Cloud.
Example:
npx @capgo/cli@latest bundle list com.example.app
Options:
Param | Type | Description |
---|---|---|
-a, | string | API key to link to your account |
—supa-host | string | Custom Supabase host URL (for self-hosting or Capgo development) |
—supa-anon | string | Custom Supabase anon key (for self-hosting) |
🧹 Cleanup
Alias: c
npx @capgo/cli@latest bundle cleanup
🧹 Delete old bundles in Capgo Cloud, keeping specified number of recent versions. Bundles linked to channels are preserved unless —ignore-channel is used.
Example:
npx @capgo/cli@latest bundle cleanup com.example.app --bundle=1.0 --keep=3
Options:
Param | Type | Description |
---|---|---|
-b, | string | Bundle version number of the app to delete |
-a, | string | API key to link to your account |
-k, | string | Number of versions to keep |
-f, | string | Force removal |
—ignore-channel | boolean | Delete bundles even if linked to channels (WARNING: deletes channels too) |
—supa-host | string | Custom Supabase host URL (for self-hosting or Capgo development) |
—supa-anon | string | Custom Supabase anon key (for self-hosting) |
🔒 Encrypt
npx @capgo/cli@latest bundle encrypt
🔒 Encrypt a zip bundle for secure external storage. Returns ivSessionKey for upload/decryption. Get checksum using ‘bundle zip —json’.
Example:
npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM
Options:
Param | Type | Description |
---|---|---|
—key | string | Custom path for private signing key |
—key-data | string | Private signing key |
-j, | string | Output in JSON |
🔓 Decrypt
npx @capgo/cli@latest bundle decrypt
🔓 Decrypt an encrypted bundle (mainly for testing). Prints base64 session key for verification.
Example:
npx @capgo/cli@latest bundle decrypt ./myapp_encrypted.zip CHECKSUM
Options:
Param | Type | Description |
---|---|---|
—key | string | Custom path for private signing key |
—key-data | string | Private signing key |
—checksum | string | Checksum of the bundle, to verify the integrity of the bundle |
🔹 Zip
npx @capgo/cli@latest bundle zip
🗜️ Create a zip file of your app bundle. Returns checksum for use with encryption. Use —json for machine-readable output.
Example:
npx @capgo/cli@latest bundle zip com.example.app --path ./dist
Options:
Param | Type | Description |
---|---|---|
-p, | string | Path of the folder to upload, if not provided it will use the webDir set in capacitor.config |
-b, | string | Bundle version number to name the zip file |
-n, | string | Name of the zip file |
-j, | string | Output in JSON |
—no-code-check | boolean | Ignore checking if notifyAppReady() is called in source code and index present in root folder |
—key-v2 | boolean | Use encryption v2 |
—package-json | string | Paths to package.json files for monorepos (comma-separated) |