📦 bundle
Copy a setup prompt with the install steps and the full markdown guide for this plugin.
📦 Manage app bundles for deployment in Capgo Cloud, including upload, compatibility checks, and encryption.
⬆️ Upload
Section titled “ ⬆️ 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 productionOptions:
| 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 |
| —force-crc32-checksum | boolean | Force CRC32 checksum for upload (override auto-detection) |
| —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 delta updates (only changed files) for instant, super fast updates instead of big zip downloads |
| —delta-only | boolean | Upload only delta updates without full bundle for maximum speed (useful for large apps) |
| —no-delta | boolean | Disable delta updates even if Direct Update is enabled |
| —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) |
| —verbose | boolean | Enable verbose output with detailed logging |
🧪 Compatibility
Section titled “ 🧪 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 productionOptions:
| 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) |
🔹 ReleaseType
Section titled “ 🔹 ReleaseType”npx @capgo/cli@latest bundle releaseType🧭 Print “native” or “OTA” based on compatibility with a channel’s latest metadata.
Example:
npx @capgo/cli@latest bundle releaseType com.example.app --channel productionOptions:
| Param | Type | Description |
|---|---|---|
| -a, | string | API key to link to your account |
| -c, | string | Channel to compare against |
| —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
Section titled “ 🗑️ 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.appOptions:
| 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
Section titled “ 📋 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.appOptions:
| 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
Section titled “ 🧹 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=3Options:
| 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
Section titled “ 🔒 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 CHECKSUMOptions:
| Param | Type | Description |
|---|---|---|
| —key | string | Custom path for private signing key |
| —key-data | string | Private signing key |
| -j, | string | Output in JSON |
| —package-json | string | Paths to package.json files for monorepos (comma-separated) |
🔓 Decrypt
Section titled “ 🔓 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 CHECKSUMOptions:
| 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 |
| —package-json | string | Paths to package.json files for monorepos (comma-separated) |
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 ./distOptions:
| 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) |
Keep going from bundle
Section titled “Keep going from bundle”If you are using bundle to plan security and compliance, connect it with Encryption for the implementation detail in Encryption, Compliance for the implementation detail in Compliance, Capgo Security Scanner for the product workflow in Capgo Security Scanner, Capgo Security for the product workflow in Capgo Security, and Capgo Trust Center for the product workflow in Capgo Trust Center.