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. 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:

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-endpointstringURL 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
—multipartboolean[DEPRECATED] Use —tus instead. Uses multipart protocol for S3 uploads
—zipbooleanUpload the bundle using zip to Capgo cloud (legacy)
—tusbooleanUpload the bundle using TUS to Capgo cloud
—tus-chunk-sizestringChunk size in bytes for TUS resumable uploads (default: auto)
—partialboolean[DEPRECATED] Use —delta instead. Upload incremental updates
—partial-onlyboolean[DEPRECATED] Use —delta-only instead. Upload only incremental updates, skip full bundle
—deltabooleanUpload incremental/differential updates to reduce bandwidth
—delta-onlybooleanUpload only delta updates without full bundle (useful for large apps)
—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-jsonstringPaths to package.json files for monorepos (comma-separated)
—node-modulesstringPaths to node_modules directories for monorepos (comma-separated)
—encrypt-partialbooleanEncrypt delta update files (auto-enabled 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-patternsstringFiles to exclude from Brotli compression (comma-separated globs, e.g., “.jpg,.png”)
—disable-brotlibooleanCompletely disable brotli compression even if updater version supports it
—version-exists-okbooleanExit successfully if bundle version already exists, useful for CI/CD workflows with monorepos
—self-assignbooleanAllow devices to auto-join this channel (updates channel setting)
—supa-hoststringCustom Supabase host URL (for self-hosting or Capgo development)
—supa-anonstringCustom Supabase anon key (for self-hosting)

🧪 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-jsonstringPaths to package.json files for monorepos (comma-separated)
—node-modulesstringPaths to node_modules directories for monorepos (comma-separated)
—supa-hoststringCustom Supabase host URL (for self-hosting or Capgo development)
—supa-anonstringCustom Supabase anon key (for self-hosting)

🗑️ 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
—supa-hoststringCustom Supabase host URL (for self-hosting or Capgo development)
—supa-anonstringCustom Supabase anon key (for self-hosting)

📋 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
—supa-hoststringCustom Supabase host URL (for self-hosting or Capgo development)
—supa-anonstringCustom Supabase anon key (for self-hosting)

🧹 Cleanup

Alias: c

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

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 bundles even if linked to channels (WARNING: deletes channels too)
—supa-hoststringCustom Supabase host URL (for self-hosting or Capgo development)
—supa-anonstringCustom Supabase anon key (for self-hosting)

🔒 Encrypt

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

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 an encrypted bundle (mainly for testing). Prints base64 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. Returns checksum for use with encryption. Use —json for machine-readable output.

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-jsonstringPaths to package.json files for monorepos (comma-separated)