@capuchoo/cli
v0.15.2
Published
Builds and publishes OTA and native releases for Capacitor applications through Capucho.
Maintainers
Readme
@capuchoo/cli
Capuchoo CLI bundles and uploads your application to the cloud. It packages builds as native artifacts or ZIP files, then publishes them using user-defined parameters such as channels and custom release options. Built for simple, repeatable deployments, it integrates cleanly into local workflows and CI pipelines to ship updates quickly and reliably.
For team release operations, version ownership, GitHub Actions integration, and ecosystem boundaries, see CI releases.
Usage
$ npm install -g @capuchoo/cli
$ capuchoo COMMAND
running command...
$ capuchoo (--version)
@capuchoo/cli/0.12.0 win32-x64 node-v24.20.0
$ capuchoo --help [COMMAND]
USAGE
$ capuchoo COMMAND
...Commands
capuchoo app delete [APPID]capuchoo app grant EMAIL ROLEcapuchoo app identifiers [ACTION] [BUNDLEID]capuchoo app listcapuchoo app revoke EMAILcapuchoo app rolescapuchoo auth issuecapuchoo auth keyscapuchoo auth logincapuchoo auth logoutcapuchoo auth revoke IDcapuchoo auth whoamicapuchoo channel create [NAME]capuchoo channel delete [NAME]capuchoo channel listcapuchoo config listcapuchoo config set KEY VALUEcapuchoo deploy nativecapuchoo deploy otacapuchoo doctorcapuchoo help [COMMAND]capuchoo initcapuchoo menucapuchoo org create [NAME]capuchoo org invite EMAIL ROLEcapuchoo org listcapuchoo org memberscapuchoo setupcapuchoo version bump TYPEcapuchoo version sync
capuchoo app delete [APPID]
Delete an app, its channels and its bundles
USAGE
$ capuchoo app delete [APPID] [-y]
ARGUMENTS
[APPID] Bundle identifier of the app to delete
FLAGS
-y, --yes Skip the confirmation (scripts and CI)
DESCRIPTION
Delete an app, its channels and its bundles
EXAMPLES
$ capuchoo app delete com.company.appSee code: src/commands/app/delete.ts
capuchoo app grant EMAIL ROLE
Give someone a role on this app
USAGE
$ capuchoo app grant EMAIL ROLE
ARGUMENTS
EMAIL Account to grant
ROLE (admin|developer|tester|viewer) One of admin, developer, tester, viewer
DESCRIPTION
Give someone a role on this app
EXAMPLES
$ capuchoo app grant [email protected] developer
$ capuchoo app grant [email protected] testerSee code: src/commands/app/grant.ts
capuchoo app identifiers [ACTION] [BUNDLEID]
List, add or remove the bundle identifiers this app ships under
USAGE
$ capuchoo app identifiers [ACTION] [BUNDLEID] [--flavour prod|staging|dev] [--platform android|ios|all] [-y]
ARGUMENTS
[ACTION] (list|add|remove) [default: list] list, add or remove
[BUNDLEID] Bundle identifier, for add and remove
FLAGS
-y, --yes Skip the confirmation
--flavour=<option> Which flavour ships under it. Omit when every flavour does, which turns the gate off.
<options: prod|staging|dev>
--platform=<option> android, ios, or all
<options: android|ios|all>
DESCRIPTION
List, add or remove the bundle identifiers this app ships under
EXAMPLES
$ capuchoo app identifiers
$ capuchoo app identifiers add com.acme.app.dev --flavour dev
$ capuchoo app identifiers remove com.acme.app.devSee code: src/commands/app/identifiers.ts
capuchoo app list
List the apps this account can reach
USAGE
$ capuchoo app list [--json]
FLAGS
--json Machine-readable output
DESCRIPTION
List the apps this account can reachSee code: src/commands/app/list.ts
capuchoo app revoke EMAIL
Remove someone's role on this app
USAGE
$ capuchoo app revoke EMAIL [-y]
ARGUMENTS
EMAIL Account to revoke
FLAGS
-y, --yes Skip the confirmation
DESCRIPTION
Remove someone's role on this app
EXAMPLES
$ capuchoo app revoke [email protected]See code: src/commands/app/revoke.ts
capuchoo app roles
Show who can do what on this app
USAGE
$ capuchoo app roles
DESCRIPTION
Show who can do what on this app
EXAMPLES
$ capuchoo app rolesSee code: src/commands/app/roles.ts
capuchoo auth issue
Create an API key, optionally limited to one app and one role
USAGE
$ capuchoo auth issue [--name <value>] [--role viewer|tester|developer|admin] [--this-app]
FLAGS
--name=<value> Label shown in capuchoo auth keys
--role=<option> Ceiling on what the key may do: viewer, tester, developer, admin
<options: viewer|tester|developer|admin>
--this-app Restrict the key to the app this directory is linked to
DESCRIPTION
Create an API key, optionally limited to one app and one role
EXAMPLES
$ capuchoo auth issue --name ci --role developer --this-app
$ capuchoo auth issue --name readonly --role viewerSee code: src/commands/auth/issue.ts
capuchoo auth keys
List the API keys on this account
USAGE
$ capuchoo auth keys
DESCRIPTION
List the API keys on this account
EXAMPLES
$ capuchoo auth keysSee code: src/commands/auth/keys.ts
capuchoo auth login
Sign in to a Capuchoo backend
USAGE
$ capuchoo auth login [-k <value>] [-e <value>]
FLAGS
-e, --endpoint=<value> Backend base URL
-k, --api-key=<value> API key from Settings > API Keys in the dashboard
DESCRIPTION
Sign in to a Capuchoo backend
EXAMPLES
$ capuchoo auth login
$ capuchoo auth login --endpoint https://capucho.internal --api-key cap_...See code: src/commands/auth/login.ts
capuchoo auth logout
Remove the stored API key
USAGE
$ capuchoo auth logout
DESCRIPTION
Remove the stored API keySee code: src/commands/auth/logout.ts
capuchoo auth revoke ID
Revoke an API key
USAGE
$ capuchoo auth revoke ID [-y]
ARGUMENTS
ID Key id, from capuchoo auth keys
FLAGS
-y, --yes Skip the confirmation
DESCRIPTION
Revoke an API key
EXAMPLES
$ capuchoo auth revoke <id>See code: src/commands/auth/revoke.ts
capuchoo auth whoami
Show the signed-in account, and the organizations and apps it can reach
USAGE
$ capuchoo auth whoami [--json]
FLAGS
--json Machine-readable output
DESCRIPTION
Show the signed-in account, and the organizations and apps it can reachSee code: src/commands/auth/whoami.ts
capuchoo channel create [NAME]
Create a channel for this app
USAGE
$ capuchoo channel create [NAME] [-e dev|staging|prod] [-y] [--json]
ARGUMENTS
[NAME] Name of the channel, e.g. staging
FLAGS
-e, --environment=<option> Which build flavour this channel serves
<options: dev|staging|prod>
-y, --yes Accept the environment even when it disagrees with the name
--json Machine-readable output
DESCRIPTION
Create a channel for this app
EXAMPLES
$ capuchoo channel create staging
$ capuchoo channel create beta --environment staging
$ capuchoo channel create prod --environment prod --yesSee code: src/commands/channel/create.ts
capuchoo channel delete [NAME]
Delete one of this app's channels
USAGE
$ capuchoo channel delete [NAME] [-y]
ARGUMENTS
[NAME] Name of the channel to delete
FLAGS
-y, --yes Skip the confirmation
DESCRIPTION
Delete one of this app's channels
EXAMPLES
$ capuchoo channel delete beta
$ capuchoo channel delete beta --yesSee code: src/commands/channel/delete.ts
capuchoo channel list
List this app's channels and what they serve
USAGE
$ capuchoo channel list [--json]
FLAGS
--json Machine-readable output
DESCRIPTION
List this app's channels and what they serveSee code: src/commands/channel/list.ts
capuchoo config list
Show the resolved configuration, and which build tools were found
USAGE
$ capuchoo config list [--json]
FLAGS
--json Machine-readable output
DESCRIPTION
Show the resolved configuration, and which build tools were foundSee code: src/commands/config/list.ts
capuchoo config set KEY VALUE
Set a user preference in ~/.capuchoo/config.json
USAGE
$ capuchoo config set KEY VALUE
ARGUMENTS
KEY (endpoint|defaultChannel) Preference to set
VALUE New value
DESCRIPTION
Set a user preference in ~/.capuchoo/config.json
EXAMPLES
$ capuchoo config set endpoint https://capucho.internal
$ capuchoo config set defaultChannel stagingSee code: src/commands/config/set.ts
capuchoo deploy native
Build and publish a native binary (APK). Users install it through the OS.
USAGE
$ capuchoo deploy native [-c <value>] [-n <value>] [-v major|minor|patch] [-a] [-r] [--skip-assets]
[--skip-build] [--dry-run] [--json] [--verbose] [-y] [-p android|ios] [-t debug|release] [--flavor <value>]
[--allow-unsigned]
FLAGS
-a, --[no-]active Serve this release immediately
-c, --channel=<value> Channel to publish to. Its environment selects the flavour.
-n, --note=<value> Release notes shown to users
-p, --platform=<option> [default: android] Target platform
<options: android|ios>
-r, --[no-]required Users cannot postpone this release
-t, --type=<option> [default: release] Gradle variant to assemble
<options: debug|release>
-v, --version=<option> Bump the app version before publishing
<options: major|minor|patch>
-y, --yes Accept every prompt - required in CI
--allow-unsigned Publish a release build with no signature. Android will refuse to install it.
--dry-run Build and package, but upload nothing
--flavor=<value> Gradle product flavour to build, when the project has more than one
--json Emit a machine-readable result on stdout
--skip-assets Do not regenerate launcher icons
--skip-build Publish the existing build output as-is
--verbose Stream build output to the terminal
DESCRIPTION
Build and publish a native binary (APK). Users install it through the OS.
EXAMPLES
$ capuchoo deploy native --channel staging
$ capuchoo deploy native -c production -v minor --type release
$ capuchoo deploy native -c staging --type debug -ySee code: src/commands/deploy/native.ts
capuchoo deploy ota
Publish a web bundle over the air. Does not change the installed binary.
USAGE
$ capuchoo deploy ota [-c <value>] [-n <value>] [-v major|minor|patch] [-a] [-r] [--skip-assets]
[--skip-build] [--dry-run] [--json] [--verbose] [-y]
FLAGS
-a, --[no-]active Serve this release immediately
-c, --channel=<value> Channel to publish to. Its environment selects the flavour.
-n, --note=<value> Release notes shown to users
-r, --[no-]required Users cannot postpone this release
-v, --version=<option> Bump the app version before publishing
<options: major|minor|patch>
-y, --yes Accept every prompt - required in CI
--dry-run Build and package, but upload nothing
--json Emit a machine-readable result on stdout
--skip-assets Do not regenerate launcher icons
--skip-build Publish the existing build output as-is
--verbose Stream build output to the terminal
DESCRIPTION
Publish a web bundle over the air. Does not change the installed binary.
EXAMPLES
$ capuchoo deploy ota --channel staging
$ capuchoo deploy ota -c production -v patch -n 'Fixes the invoice total'
$ capuchoo deploy ota -c staging --dry-runSee code: src/commands/deploy/ota.ts
capuchoo doctor
Check that this app, its credentials and its channels are usable
USAGE
$ capuchoo doctor
DESCRIPTION
Check that this app, its credentials and its channels are usable
EXAMPLES
$ capuchoo doctorSee code: src/commands/doctor.ts
capuchoo help [COMMAND]
Display help for capuchoo.
USAGE
$ capuchoo help [COMMAND...] [-n]
ARGUMENTS
[COMMAND...] Command to show help for.
FLAGS
-n, --nested-commands Include all nested commands in the output.
DESCRIPTION
Display help for capuchoo.See code: @oclif/plugin-help
capuchoo init
Set this app up to receive updates, from nothing to verified
USAGE
$ capuchoo init [-l | -c] [--name <value> ] [--app-id <value>] [--org <value> ] [--channel <value>] [-f]
[-y] [--dry-run] [--native] [--skip-telemetry] [--skip-sync] [--skip <value>...] [--only <value>...] [--prove]
FLAGS
-c, --create Create a new app instead of asking
-f, --force Overwrite an existing project.json
-l, --link Link an existing app instead of asking
-y, --yes Apply every change without asking
--app-id=<value> Bundle identifier of the app, e.g. com.company.app
--channel=<value> Create this channel after linking, e.g. staging
--dry-run Report the wiring changes without writing (needs a linked directory)
--name=<value> Name of the app to create (default: this directory's name)
--native Also install what downloading and installing an APK needs
--only=<value>... Run only these steps (verify always runs unless skipped)
--org=<value> Organization to create the app in, by name or id
--prove Publish a release and wait for a device to take it
--skip=<value>... Steps to leave out: credentials, link, identifiers, channels, packages, env, code, verify,
publish, confirm
--skip-sync Do not run cap sync after installing
--skip-telemetry Do not install @capacitor/device
DESCRIPTION
Set this app up to receive updates, from nothing to verified
ALIASES
$ capuchoo setup
EXAMPLES
$ capuchoo init
$ capuchoo init --yes
$ capuchoo init --dry-run
$ capuchoo init --only env --only code
$ capuchoo init --create --name "My App" --app-id com.acme.appSee code: src/commands/init.ts
capuchoo menu
Browse and run commands interactively
USAGE
$ capuchoo menu
DESCRIPTION
Browse and run commands interactively
EXAMPLES
$ capuchoo
$ capuchoo menuSee code: src/commands/menu.ts
capuchoo org create [NAME]
Create an organization
USAGE
$ capuchoo org create [NAME] [--json]
ARGUMENTS
[NAME] Display name of the organization
FLAGS
--json Machine-readable output
DESCRIPTION
Create an organization
EXAMPLES
$ capuchoo org create "SIG Service"
$ capuchoo org create Acme --jsonSee code: src/commands/org/create.ts
capuchoo org invite EMAIL ROLE
Add an existing account to an organization
USAGE
$ capuchoo org invite EMAIL ROLE [--org <value>]
ARGUMENTS
EMAIL Account to add
ROLE (owner|admin|member) One of owner, admin, member
FLAGS
--org=<value> Organization by name or id
DESCRIPTION
Add an existing account to an organization
EXAMPLES
$ capuchoo org invite [email protected] memberSee code: src/commands/org/invite.ts
capuchoo org list
List the organizations this account belongs to
USAGE
$ capuchoo org list [--json]
FLAGS
--json Machine-readable output
DESCRIPTION
List the organizations this account belongs toSee code: src/commands/org/list.ts
capuchoo org members
List the people in an organization
USAGE
$ capuchoo org members [--org <value>]
FLAGS
--org=<value> Organization by name or id
DESCRIPTION
List the people in an organization
EXAMPLES
$ capuchoo org membersSee code: src/commands/org/members.ts
capuchoo setup
Set this app up to receive updates, from nothing to verified
USAGE
$ capuchoo setup [-l | -c] [--name <value> ] [--app-id <value>] [--org <value> ] [--channel <value>] [-f]
[-y] [--dry-run] [--native] [--skip-telemetry] [--skip-sync] [--skip <value>...] [--only <value>...] [--prove]
FLAGS
-c, --create Create a new app instead of asking
-f, --force Overwrite an existing project.json
-l, --link Link an existing app instead of asking
-y, --yes Apply every change without asking
--app-id=<value> Bundle identifier of the app, e.g. com.company.app
--channel=<value> Create this channel after linking, e.g. staging
--dry-run Report the wiring changes without writing (needs a linked directory)
--name=<value> Name of the app to create (default: this directory's name)
--native Also install what downloading and installing an APK needs
--only=<value>... Run only these steps (verify always runs unless skipped)
--org=<value> Organization to create the app in, by name or id
--prove Publish a release and wait for a device to take it
--skip=<value>... Steps to leave out: credentials, link, identifiers, channels, packages, env, code, verify,
publish, confirm
--skip-sync Do not run cap sync after installing
--skip-telemetry Do not install @capacitor/device
DESCRIPTION
Set this app up to receive updates, from nothing to verified
ALIASES
$ capuchoo setup
EXAMPLES
$ capuchoo init
$ capuchoo init --yes
$ capuchoo init --dry-run
$ capuchoo init --only env --only code
$ capuchoo init --create --name "My App" --app-id com.acme.appSee code: src/commands/setup.ts
capuchoo version bump TYPE
Raise the app's semantic version, and optionally an environment's build number
USAGE
$ capuchoo version bump TYPE [-e dev|staging|prod]
ARGUMENTS
TYPE (major|minor|patch) Which part of the version to raise
FLAGS
-e, --environment=<option> Also increment this environment's native build number
<options: dev|staging|prod>
DESCRIPTION
Raise the app's semantic version, and optionally an environment's build number
EXAMPLES
$ capuchoo version bump patch
$ capuchoo version bump minor --environment stagingSee code: src/commands/version/bump.ts
capuchoo version sync
Show, or advance, the version and build number used for each flavour
USAGE
$ capuchoo version sync [-b] [-e dev|staging|prod] [--json]
FLAGS
-b, --bump Increment the build number for the selected environments
-e, --environment=<option> Limit to one environment
<options: dev|staging|prod>
--json Machine-readable output
DESCRIPTION
Show, or advance, the version and build number used for each flavour
EXAMPLES
$ capuchoo version sync
$ capuchoo version sync --bump --environment stagingSee code: src/commands/version/sync.ts
