📦 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, optionally linking to a channel or external URL. External option supports privacy concerns or large apps (>200MB) by storing only the link. Capgo never inspects external content. Encryption adds a trustless security layer. Version must be > 0.0.0 and unique.
ℹ️ External option helps with corporate privacy concerns and apps larger than 200MB by storing only the link.
ℹ️ Capgo Cloud never looks at the content in the link for external options or in the code when stored.
ℹ️ You can add a second layer of security with encryption, making Capgo trustless.
ℹ️ Version should be greater than “0.0.0” and cannot be overridden or reused after deletion for security reasons.
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-endoint | 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 | Uses multipart protocol to upload data to S3, Deprecated, use tus instead |
—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 for the TUS upload |
—partial | boolean | Upload partial files to Capgo cloud |
—partial-only | boolean | Upload only partial files to Capgo cloud, skip the zipped file, useful for big bundle |
—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 | A list of paths to package.json. Useful for monorepos (comma separated ex: ../../package.json,./package.json) |
—node-modules | string | A list of paths to node_modules. Useful for monorepos (comma separated ex: ../../node_modules,./node_modules) |
—encrypt-partial | boolean | Encrypt the partial update files (automatically applied 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 | Glob patterns for files to exclude from brotli compression (comma-separated) |
—disable-brotli | boolean | Completely disable brotli compression even if updater version supports it |
—supa-host | string | Supabase host URL, for self-hosted Capgo or testing |
—supa-anon | string | Supabase anon token, for self-hosted Capgo or testing |
🧪 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 | A list of paths to package.json. Useful for monorepos (comma separated ex: ../../package.json,./package.json) |
—node-modules | string | A list of paths to node_modules. Useful for monorepos (comma separated ex: ../../node_modules,./node_modules) |
🗑️ 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 |
📋 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 |
🧹 Cleanup
Alias: c
npx @capgo/cli@latest bundle cleanup
🧹 Cleanup old bundles in Capgo Cloud, keeping a specified number of recent versions or those linked to channels. Ignores bundles in use.
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 all versions even if linked to a channel, this will delete channel as well |
🔒 Encrypt
npx @capgo/cli@latest bundle encrypt
🔒 Encrypt a zip bundle using the new encryption method for secure external storage or testing. Used with external sources or for testing, prints ivSessionKey for upload or decryption.
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 a zip bundle using the new encryption method, mainly for testing purposes. Prints the base64 decrypted 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 for upload or local storage. Useful for preparing bundles before encryption or upload.
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 | A list of paths to package.json. Useful for monorepos (comma separated ex: ../../package.json,./package.json) |