Skip to content

Cap-go/CLI

Capgo CLI

Capgo - Instant updates for capacitor

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/

Usage

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/

πŸ“‘ Capgo CLI Commands

πŸ“‹ Table of Contents

πŸš€ Init

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

Options

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)

πŸ‘¨β€βš•οΈ Doctor

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

Options

Param Type Description
--package-json string Paths to package.json files for monorepos (comma-separated)

πŸ”‘ Login

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

Options

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)

πŸ“¦ 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. 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)

πŸ§ͺ 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 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

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)

πŸ“‹ 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
--supa-host string Custom Supabase host URL (for self-hosting or Capgo development)
--supa-anon string Custom Supabase anon key (for self-hosting)

🧹 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=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)

πŸ”’ 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 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 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

πŸ”Ή Zip

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)

πŸ“± App

πŸ“± Manage your Capgo app settings and configurations in Capgo Cloud.

βž• Add

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)

πŸ—‘οΈ Delete

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)

πŸ“‹ List

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)

🐞 Debug

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)

βš™οΈ Setting

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"

βš™οΈ Set

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)

πŸ“’ Channel

πŸ“’ Manage distribution channels for app updates in Capgo Cloud, controlling how updates are delivered to devices.

βž• Add

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)

πŸ—‘οΈ Delete

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)

πŸ“‹ List

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)

πŸ“¦ CurrentBundle

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)

βš™οΈ Set

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)

πŸ” Key

πŸ” Manage encryption keys for secure bundle distribution in Capgo Cloud, supporting end-to-end encryption with RSA and AES combination.

πŸ”Ή Save

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

πŸ”¨ Create

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

πŸ—‘οΈ Delete_old

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

πŸ‘€ Account

πŸ‘€ Manage your Capgo account details and retrieve information for support or collaboration.

πŸ”Ή Id

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

πŸ”Ή Organisation

🏒 Manage your organizations in Capgo Cloud for team collaboration and app management.

πŸ“‹ List

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)

βž• Add

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 admin@mycompany.com

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)

βš™οΈ Set

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)

πŸ—‘οΈ Delete

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)

About

CLI to help you to manage your version in capgo cloud

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Contributors 24

Languages