Skip to content

📦 bundle

📦 Manage app bundles for deployment in Capgo Cloud, including upload, compatibility checks, and encryption.

⬆️ Upload

Alias: u

Terminal window
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:

Terminal window
npx @capgo/cli@latest bundle upload com.example.app --path ./dist --channel production

Options:

ParamTypeDescription
-a,stringAPI key to link to your account
-p,stringPath of the folder to upload, if not provided it will use the webDir set in capacitor.config
-c,stringChannel to link to
-e,stringLink to external URL instead of upload to Capgo Cloud
—iv-session-keystringSet the IV and session key for bundle URL external
—s3-regionstringRegion for your S3 bucket
—s3-apikeystringAPI key for your S3 endpoint
—s3-apisecretstringAPI secret for your S3 endpoint
—s3-endointstringURL of S3 endpoint
—s3-bucket-namestringName for your AWS S3 bucket
—s3-portstringPort for your S3 endpoint
—no-s3-sslbooleanDisable SSL for S3 upload
—key-v2stringCustom path for private signing key (v2 system)
—key-data-v2stringPrivate signing key (v2 system)
—bundle-urlbooleanPrints bundle URL into stdout
—no-keybooleanIgnore signing key and send clear update
—no-code-checkbooleanIgnore checking if notifyAppReady() is called in source code and index present in root folder
—display-iv-sessionbooleanShow in the console the IV and session key used to encrypt the update
-b,stringBundle version number of the bundle to upload
—linkstringLink to external resource (e.g. GitHub release)
—commentstringComment about this version, could be a release note, a commit hash, a commit message, etc.
—min-update-versionstringMinimal version required to update to this version. Used only if the disable auto update is set to metadata in channel
—auto-min-update-versionbooleanSet the min update version based on native packages
—ignore-metadata-checkbooleanIgnores the metadata (node_modules) check when uploading
—ignore-checksum-checkbooleanIgnores the checksum check when uploading
—timeoutstringTimeout for the upload process in seconds
—multipartbooleanUses multipart protocol to upload data to S3, Deprecated, use tus instead
—zipbooleanUpload the bundle using zip to Capgo cloud (legacy)
—tusbooleanUpload the bundle using TUS to Capgo cloud
—tus-chunk-sizestringChunk size for the TUS upload
—partialbooleanUpload partial files to Capgo cloud
—partial-onlybooleanUpload only partial files to Capgo cloud, skip the zipped file, useful for big bundle
—encrypted-checksumstringAn encrypted checksum (signature). Used only when uploading an external bundle.
—auto-set-bundlebooleanSet the bundle in capacitor.config.json
—dry-uploadbooleanDry upload the bundle process, mean it will not upload the files but add the row in database (Used by Capgo for internal testing)
—package-jsonstringA list of paths to package.json. Useful for monorepos (comma separated ex: ../../package.json,./package.json)
—node-modulesstringA list of paths to node_modules. Useful for monorepos (comma separated ex: ../../node_modules,./node_modules)
—encrypt-partialbooleanEncrypt the partial update files (automatically applied for updater > 6.14.4)
—delete-linked-bundle-on-uploadbooleanLocates the currently linked bundle in the channel you are trying to upload to, and deletes it
—no-brotli-patternsstringGlob patterns for files to exclude from brotli compression (comma-separated)
—disable-brotlibooleanCompletely disable brotli compression even if updater version supports it
—supa-hoststringSupabase host URL, for self-hosted Capgo or testing
—supa-anonstringSupabase anon token, for self-hosted Capgo or testing

🧪 Compatibility

Terminal window
npx @capgo/cli@latest bundle compatibility

🧪 Check compatibility of a bundle with a specific channel in Capgo Cloud to ensure updates are safe.

Example:

Terminal window
npx @capgo/cli@latest bundle compatibility com.example.app --channel production

Options:

ParamTypeDescription
-a,stringAPI key to link to your account
-c,stringChannel to check the compatibility with
—textbooleanOutput text instead of emojis
—package-jsonstringA list of paths to package.json. Useful for monorepos (comma separated ex: ../../package.json,./package.json)
—node-modulesstringA list of paths to node_modules. Useful for monorepos (comma separated ex: ../../node_modules,./node_modules)

🗑️ Delete

Alias: d

Terminal window
npx @capgo/cli@latest bundle delete

🗑️ Delete a specific bundle from Capgo Cloud, optionally targeting a single version.

Example:

Terminal window
npx @capgo/cli@latest bundle delete BUNDLE_ID com.example.app

Options:

ParamTypeDescription
-a,stringAPI key to link to your account

📋 List

Alias: l

Terminal window
npx @capgo/cli@latest bundle list

📋 List all bundles uploaded for an app in Capgo Cloud.

Example:

Terminal window
npx @capgo/cli@latest bundle list com.example.app

Options:

ParamTypeDescription
-a,stringAPI key to link to your account

🧹 Cleanup

Alias: c

Terminal window
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:

Terminal window
npx @capgo/cli@latest bundle cleanup com.example.app --bundle=1.0 --keep=3

Options:

ParamTypeDescription
-b,stringBundle version number of the app to delete
-a,stringAPI key to link to your account
-k,stringNumber of versions to keep
-f,stringForce removal
—ignore-channelbooleanDelete all versions even if linked to a channel, this will delete channel as well

🔒 Encrypt

Terminal window
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:

Terminal window
npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM

Options:

ParamTypeDescription
—keystringCustom path for private signing key
—key-datastringPrivate signing key
-j,stringOutput in JSON

🔓 Decrypt

Terminal window
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:

Terminal window
npx @capgo/cli@latest bundle decrypt ./myapp_encrypted.zip CHECKSUM

Options:

ParamTypeDescription
—keystringCustom path for private signing key
—key-datastringPrivate signing key
—checksumstringChecksum of the bundle, to verify the integrity of the bundle

🔹 Zip

Terminal window
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:

Terminal window
npx @capgo/cli@latest bundle zip com.example.app --path ./dist

Options:

ParamTypeDescription
-p,stringPath of the folder to upload, if not provided it will use the webDir set in capacitor.config
-b,stringBundle version number to name the zip file
-n,stringName of the zip file
-j,stringOutput in JSON
—no-code-checkbooleanIgnore checking if notifyAppReady() is called in source code and index present in root folder
—key-v2booleanUse encryption v2
—package-jsonstringA list of paths to package.json. Useful for monorepos (comma separated ex: ../../package.json,./package.json)