A CLI to upload and download files from the Capgo Cloud.
You can find the most up to date version of this doc in our web doc: https://capgo.app/docs/cli/overview/
Before using the CLI, you should register here: https://capgo.app/
Then go to your account in apikey
section and click in the all
key to copy it.
Follow the documentation here: https://capacitorjs.com/docs/getting-started/
- π Init
- π¨ββοΈ Doctor
- π Login
- π¦ Bundle
- π± App
- π’ Channel
- π Key
- π€ Account
- πΉ Organisation
Alias: i
npx @capgo/cli@latest init
π Initialize a new app in Capgo Cloud with step-by-step guidance. This includes adding code for updates, building, uploading your app, and verifying update functionality.
Example:
npx @capgo/cli@latest init YOUR_API_KEY com.example.app
Param | Type | Description |
---|---|---|
-n, | string |
App name for display in Capgo Cloud |
-i, | string |
App icon path for display in Capgo Cloud |
--supa-host | string |
Custom Supabase host URL (for self-hosting or Capgo development) |
--supa-anon | string |
Custom Supabase anon key (for self-hosting) |
npx @capgo/cli@latest doctor
π¨ββοΈ Check if your Capgo app installation is up-to-date and gather information useful for bug reports. This command helps diagnose issues with your setup.
Example:
npx @capgo/cli@latest doctor
Param | Type | Description |
---|---|---|
--package-json | string |
Paths to package.json files for monorepos (comma-separated) |
Alias: l
npx @capgo/cli@latest login
π Save your Capgo API key to your machine or local folder for easier access to Capgo Cloud services. Use --apikey=******** in any command to override it.
Example:
npx @capgo/cli@latest login YOUR_API_KEY
Param | Type | Description |
---|---|---|
--local | boolean |
Only save in local folder, git ignored for security. |
--supa-host | string |
Custom Supabase host URL (for self-hosting or Capgo development) |
--supa-anon | string |
Custom Supabase anon key (for self-hosting) |
π¦ Manage app bundles for deployment in Capgo Cloud, including upload, compatibility checks, and encryption.
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) |
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) |
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) |
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) |
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) |
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 |
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 |
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) |
π± Manage your Capgo app settings and configurations in Capgo Cloud.
Alias: a
npx @capgo/cli@latest app add
β Add a new app to Capgo Cloud with a unique app ID in the format com.test.app. All options can be guessed from config if not provided.
Example:
npx @capgo/cli@latest app add com.example.app --name "My App" --icon ./icon.png
Options:
Param | Type | Description |
---|---|---|
-n, | string |
App name for display in Capgo Cloud |
-i, | string |
App icon path for display in Capgo Cloud |
-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) |
npx @capgo/cli@latest app delete
ποΈ Delete an app from Capgo Cloud, optionally specifying a version to delete only that bundle.
Example:
npx @capgo/cli@latest app delete 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) |
Alias: l
npx @capgo/cli@latest app list
π List all apps registered under your account in Capgo Cloud.
Example:
npx @capgo/cli@latest app list
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) |
npx @capgo/cli@latest app debug
π Listen for live update events in Capgo Cloud to debug your app. Optionally target a specific device for detailed diagnostics.
Example:
npx @capgo/cli@latest app debug com.example.app --device DEVICE_ID
Options:
Param | Type | Description |
---|---|---|
-a, | string |
API key to link to your account |
-d, | string |
The specific device ID to debug |
--supa-host | string |
Custom Supabase host URL (for self-hosting or Capgo development) |
--supa-anon | string |
Custom Supabase anon key (for self-hosting) |
npx @capgo/cli@latest app setting
βοΈ Modify Capacitor configuration programmatically. Specify setting path (e.g., plugins.CapacitorUpdater.defaultChannel) with --string or --bool.
Example:
npx @capgo/cli@latest app setting plugins.CapacitorUpdater.defaultChannel --string "Production"
Options:
Param | Type | Description |
---|---|---|
--bool | string |
A value for the setting to modify as a boolean, ex: --bool true |
--string | string |
A value for the setting to modify as a string, ex: --string "Production" |
Alias: s
npx @capgo/cli@latest app set
βοΈ Update settings for an existing app in Capgo Cloud, such as name, icon, or retention period for bundles. Retention of 0 means infinite storage.
Example:
npx @capgo/cli@latest app set com.example.app --name "Updated App" --retention 30
Options:
Param | Type | Description |
---|---|---|
-n, | string |
App name for display in Capgo Cloud |
-i, | string |
App icon path for display in Capgo Cloud |
-a, | string |
API key to link to your account |
-r, | string |
Days to keep old bundles (0 = infinite, default: 0) |
--supa-host | string |
Custom Supabase host URL (for self-hosting or Capgo development) |
--supa-anon | string |
Custom Supabase anon key (for self-hosting) |
π’ Manage distribution channels for app updates in Capgo Cloud, controlling how updates are delivered to devices.
Alias: a
npx @capgo/cli@latest channel add
β Create a new channel for app distribution in Capgo Cloud to manage update delivery.
Example:
npx @capgo/cli@latest channel add production com.example.app --default
Options:
Param | Type | Description |
---|---|---|
-d, | string |
Set the channel as default |
--self-assign | boolean |
Allow device to self-assign to this channel |
-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) |
Alias: d
npx @capgo/cli@latest channel delete
ποΈ Delete a channel from Capgo Cloud, optionally removing associated bundles to free up resources.
Example:
npx @capgo/cli@latest channel delete production com.example.app
Options:
Param | Type | Description |
---|---|---|
-a, | string |
API key to link to your account |
--delete-bundle | boolean |
Delete the bundle associated with the channel |
--success-if-not-found | boolean |
Success if the channel is not found |
--supa-host | string |
Custom Supabase host URL (for self-hosting or Capgo development) |
--supa-anon | string |
Custom Supabase anon key (for self-hosting) |
Alias: l
npx @capgo/cli@latest channel list
π List all channels configured for an app in Capgo Cloud to review distribution settings.
Example:
npx @capgo/cli@latest channel 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) |
npx @capgo/cli@latest channel currentBundle
π¦ Get the current bundle linked to a specific channel in Capgo Cloud for update tracking.
Example:
npx @capgo/cli@latest channel currentBundle production com.example.app
Options:
Param | Type | Description |
---|---|---|
-c, | string |
Channel to get the current bundle from |
-a, | string |
API key to link to your account |
--quiet | boolean |
Only print the bundle version |
--supa-host | string |
Custom Supabase host URL (for self-hosting or Capgo development) |
--supa-anon | string |
Custom Supabase anon key (for self-hosting) |
Alias: s
npx @capgo/cli@latest channel set
βοΈ Configure settings for a channel, such as linking a bundle, setting update strategies (major, minor, metadata, patch, none), or device targeting (iOS, Android, dev, emulator). One channel must be default.
Example:
npx @capgo/cli@latest channel set production com.example.app --bundle 1.0.0 --state default
Options:
Param | Type | Description |
---|---|---|
-a, | string |
API key to link to your account |
-b, | string |
Bundle version number of the file to set |
-s, | string |
Set the state of the channel, default or normal |
--latest-remote | boolean |
Get the latest bundle uploaded in capgo cloud and set it to the channel |
--latest | boolean |
Get the latest version key in the package.json to set it to the channel |
--downgrade | boolean |
Allow to downgrade to version under native one |
--no-downgrade | boolean |
Disable downgrade to version under native one |
--ios | boolean |
Allow sending update to iOS devices |
--no-ios | boolean |
Disable sending update to iOS devices |
--android | boolean |
Allow sending update to Android devices |
--no-android | boolean |
Disable sending update to Android devices |
--self-assign | boolean |
Allow device to self-assign to this channel |
--no-self-assign | boolean |
Disable devices to self-assign to this channel |
--disable-auto-update | string |
Block updates by type: major, minor, metadata, patch, or none (allows all) |
--dev | boolean |
Allow sending update to development devices |
--no-dev | boolean |
Disable sending update to development devices |
--emulator | boolean |
Allow sending update to emulator devices |
--no-emulator | boolean |
Disable sending update to emulator devices |
--package-json | string |
Paths to package.json files for monorepos (comma-separated) |
--ignore-metadata-check | boolean |
Ignore checking node_modules compatibility if present in the bundle |
--supa-host | string |
Custom Supabase host URL (for self-hosting or Capgo development) |
--supa-anon | string |
Custom Supabase anon key (for self-hosting) |
π Manage encryption keys for secure bundle distribution in Capgo Cloud, supporting end-to-end encryption with RSA and AES combination.
npx @capgo/cli@latest key save
πΎ Save the public key in the Capacitor config, useful for CI environments. Recommended not to commit the key for security.
Example:
npx @capgo/cli@latest key save --key ./path/to/key.pub
Options:
Param | Type | Description |
---|---|---|
-f, | string |
Force generate a new one |
--key | string |
Key path to save in Capacitor config |
--key-data | string |
Key data to save in Capacitor config |
npx @capgo/cli@latest key create
π¨ Create RSA key pair for end-to-end encryption. Creates .capgo_key_v2 (private) and .capgo_key_v2.pub (public) in project root. Public key is saved to capacitor.config for mobile app decryption. NEVER commit the private key - store it securely!
Example:
npx @capgo/cli@latest key create
Options:
Param | Type | Description |
---|---|---|
-f, | string |
Force generate a new one |
npx @capgo/cli@latest key delete_old
π§Ή Delete the old encryption key from the Capacitor config to ensure only the current key is used.
Example:
npx @capgo/cli@latest key delete_old
π€ Manage your Capgo account details and retrieve information for support or collaboration.
npx @capgo/cli@latest account id
πͺͺ Retrieve your account ID, safe to share for collaboration or support purposes in Discord or other platforms.
Example:
npx @capgo/cli@latest account id
Options:
Param | Type | Description |
---|---|---|
-a, | string |
API key to link to your account |
π’ Manage your organizations in Capgo Cloud for team collaboration and app management.
Alias: l
npx @capgo/cli@latest organisation list
π List all organizations you have access to in Capgo Cloud.
Example:
npx @capgo/cli@latest organisation list
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) |
Alias: a
npx @capgo/cli@latest organisation add
β Create a new organization in Capgo Cloud for team collaboration.
Example:
npx @capgo/cli@latest organisation add --name "My Company" --email [email protected]
Options:
Param | Type | Description |
---|---|---|
-n, | string |
Organization name |
-e, | string |
Management email for the organization |
-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) |
Alias: s
npx @capgo/cli@latest organisation set
βοΈ Update organization settings such as name and management email.
Example:
npx @capgo/cli@latest organisation set ORG_ID --name "Updated Company Name"
Options:
Param | Type | Description |
---|---|---|
-n, | string |
Organization name |
-e, | string |
Management email for the organization |
-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) |
Alias: d
npx @capgo/cli@latest organisation delete
ποΈ Delete an organization from Capgo Cloud. This action cannot be undone. Only organization owners can delete organizations.
Example:
npx @capgo/cli@latest organisation delete ORG_ID
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) |