@capgo/cli 7.84.10 → 7.86.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
- type WriteOptions = {
1
+ interface WriteOptions {
2
2
  mode?: number;
3
3
  encoding?: BufferEncoding;
4
- };
4
+ }
5
5
  /**
6
6
  * Create (or reuse) a directory and enforce safe permissions.
7
7
  */
@@ -1889,7 +1889,9 @@ export declare function createSupabaseClient(apikey: string, supaHost?: string,
1889
1889
  credits_estimated: number;
1890
1890
  details?: import("./types/supabase.types").Json | null;
1891
1891
  id?: string;
1892
- metric: Database["public"]["Enums"]["credit_metric_type"];
1892
+ metric: Database["public"]["Enums"] /**
1893
+ * Read directory recursively and return full paths for all files
1894
+ */["credit_metric_type"];
1893
1895
  org_id: string;
1894
1896
  overage_amount: number;
1895
1897
  };
@@ -3658,6 +3660,10 @@ export declare function getPMAndCommand(): {
3658
3660
  installCommand: string;
3659
3661
  runner: PackageManagerRunner;
3660
3662
  };
3663
+ export declare function getNativeProjectResetAdvice(platformRunner: string, nativePlatform: 'ios' | 'android'): {
3664
+ summary: string;
3665
+ command: string;
3666
+ };
3661
3667
  export declare function getLocalDependencies(packageJsonPath: string | undefined, nodeModulesString: string | undefined): Promise<{
3662
3668
  name: string;
3663
3669
  version: string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@capgo/cli",
3
3
  "type": "module",
4
- "version": "7.84.10",
4
+ "version": "7.86.0",
5
5
  "description": "A CLI to upload to capgo servers",
6
6
  "author": "Martin martin@capgo.app",
7
7
  "license": "Apache 2.0",
@@ -23,7 +23,8 @@
23
23
  "cli",
24
24
  "upload",
25
25
  "capgo-cli",
26
- "sdk"
26
+ "sdk",
27
+ "tanstack-intent"
27
28
  ],
28
29
  "exports": {
29
30
  ".": {
@@ -40,6 +41,11 @@
40
41
  "bin": {
41
42
  "capgo": "dist/index.js"
42
43
  },
44
+ "files": [
45
+ "!skills/_artifacts",
46
+ "dist",
47
+ "skills"
48
+ ],
43
49
  "engines": {
44
50
  "npm": ">=8.0.0",
45
51
  "node": ">=20.0.0"
@@ -83,6 +89,7 @@
83
89
  "@sauber/table": "npm:@jsr/sauber__table",
84
90
  "@std/semver": "npm:@jsr/std__semver@1.0.8",
85
91
  "@supabase/supabase-js": "^2.79.0",
92
+ "@tanstack/intent": "^0.0.23",
86
93
  "@types/adm-zip": "^0.5.7",
87
94
  "@types/node": "^25.0.0",
88
95
  "@types/prettyjson": "^0.0.33",
@@ -97,11 +104,11 @@
97
104
  "is-wsl": "^3.1.0",
98
105
  "micromatch": "^4.0.8",
99
106
  "open": "^11.0.0",
107
+ "partysocket": "^1.1.11",
100
108
  "prettyjson": "^1.2.5",
101
109
  "tmp": "^0.2.5",
102
110
  "tus-js-client": "^4.3.1",
103
111
  "typescript": "^5.9.3",
104
- "partysocket": "^1.1.11",
105
112
  "ws": "^8.18.3",
106
113
  "zod": "^4.3.6"
107
114
  }
@@ -0,0 +1,32 @@
1
+ domains:
2
+ - name: cli-usage
3
+ summary: High-level command routing, setup, diagnostics, app management, docs generation, MCP, and GitHub support commands.
4
+ primary_sources:
5
+ - webdocs/init.mdx
6
+ - webdocs/doctor.mdx
7
+ - webdocs/login.mdx
8
+ - webdocs/app.mdx
9
+ - webdocs/account.mdx
10
+ - webdocs/probe.mdx
11
+ - webdocs/star.mdx
12
+ - webdocs/star-all.mdx
13
+ - src/index.ts
14
+ - name: ota-release-management
15
+ summary: OTA bundle uploads, channel operations, compatibility checks, cleanup, and encryption-key workflows.
16
+ primary_sources:
17
+ - webdocs/bundle.mdx
18
+ - webdocs/channel.mdx
19
+ - webdocs/key.mdx
20
+ - src/index.ts
21
+ - name: native-builds
22
+ summary: Native cloud build requests and local build credential management for iOS and Android.
23
+ primary_sources:
24
+ - webdocs/build.mdx
25
+ - src/index.ts
26
+ - name: organization-management
27
+ summary: Account lookup, organization administration, and deprecated organisation aliases.
28
+ primary_sources:
29
+ - webdocs/account.mdx
30
+ - webdocs/organization.mdx
31
+ - webdocs/organisation.mdx
32
+ - src/index.ts
@@ -0,0 +1,30 @@
1
+ # Capgo CLI skill spec
2
+
3
+ ## Goal
4
+
5
+ Provide a small Capgo CLI skill set that helps an agent choose and invoke the correct CLI commands for app setup, OTA release operations, organization administration, MCP setup, GitHub support commands, and native cloud builds without exceeding TanStack Intent size limits.
6
+
7
+ ## Sources
8
+
9
+ - `webdocs/*.mdx` for published command descriptions, examples, and option tables.
10
+ - `src/index.ts` for the currently registered commands, aliases, and flags that may not yet be fully reflected in the web docs.
11
+ - `AGENTS.md` for repository-specific maintenance requirements.
12
+
13
+ ## Skill set
14
+
15
+ - `usage`: routing, setup, diagnostics, app commands, docs generation, MCP, and GitHub support commands.
16
+ - `release-management`: bundle, channel, compatibility, cleanup, and encryption-key workflows.
17
+ - `native-builds`: native cloud build requests and build credential storage/update flows.
18
+ - `organization-management`: account ID lookup, organization admin flows, and deprecated `organisation` aliases.
19
+
20
+ ## Scope
21
+
22
+ - Include the documented command purpose, invocation patterns, key options, and important caveats.
23
+ - Prefer the public user-facing examples already used by the project.
24
+ - Keep the skills aligned with the published docs and current CLI registration.
25
+
26
+ ## Maintenance rules
27
+
28
+ - Any CLI command or option change should update the relevant `skills/*/SKILL.md` file in the same pull request.
29
+ - Use `webdocs/` as the primary wording source and `src/index.ts` as the completeness check.
30
+ - Validate the skills with `bunx @tanstack/intent@latest validate` before release.
@@ -0,0 +1,17 @@
1
+ skills:
2
+ - name: usage
3
+ path: skills/usage/SKILL.md
4
+ domain: cli-usage
5
+ focus: High-level routing and shared invocation rules.
6
+ - name: release-management
7
+ path: skills/release-management/SKILL.md
8
+ domain: ota-release-management
9
+ focus: OTA bundle, channel, compatibility, cleanup, and encryption workflows.
10
+ - name: native-builds
11
+ path: skills/native-builds/SKILL.md
12
+ domain: native-builds
13
+ focus: Native build request flows and local build credential management.
14
+ - name: organization-management
15
+ path: skills/organization-management/SKILL.md
16
+ domain: organization-management
17
+ focus: Account and organization administration commands, including deprecated aliases.
@@ -0,0 +1,177 @@
1
+ ---
2
+ name: native-builds
3
+ description: Use when working with Capgo Cloud native iOS and Android build requests, credential storage, credential updates, and build output upload settings.
4
+ ---
5
+
6
+ # Capgo CLI Native Builds
7
+
8
+ Use this skill for Capgo Cloud native iOS and Android build workflows.
9
+
10
+ ## Core build request
11
+
12
+ ### `build request [appId]`
13
+
14
+ - Example: `npx @capgo/cli@latest build request com.example.app --platform ios --path .`
15
+ - Notes:
16
+ - Zips the current project directory and uploads it to Capgo for building.
17
+ - Builds are processed for store distribution.
18
+ - Credentials are never stored permanently on Capgo servers.
19
+ - Build outputs can be uploaded for time-limited download links.
20
+ - Before requesting a build, save credentials with `build credentials save`.
21
+ - Core options:
22
+ - `--path <path>`
23
+ - `--platform <platform>`: `ios` or `android`, required.
24
+ - `--build-mode <buildMode>`: `debug` or `release`.
25
+ - `-a, --apikey <apikey>`
26
+ - `--verbose`
27
+
28
+ #### iOS request options
29
+
30
+ - `--build-certificate-base64 <cert>`
31
+ - `--p12-password <password>`
32
+ - `--apple-id <email>`
33
+ - `--apple-app-specific-password <password>`
34
+ - `--apple-key-id <id>`
35
+ - `--apple-issuer-id <id>`
36
+ - `--apple-key-content <content>`
37
+ - `--app-store-connect-team-id <id>`
38
+ - `--ios-scheme <scheme>`
39
+ - `--ios-target <target>`
40
+ - `--ios-distribution <mode>`: `app_store` or `ad_hoc`
41
+ - `--ios-provisioning-profile <mapping>`: repeatable path or `bundleId=path`
42
+
43
+ #### Android request options
44
+
45
+ - `--android-keystore-file <keystore>`
46
+ - `--keystore-key-alias <alias>`
47
+ - `--keystore-key-password <password>`
48
+ - `--keystore-store-password <password>`
49
+ - `--play-config-json <json>`
50
+ - `--android-flavor <flavor>`
51
+
52
+ #### Output behavior options
53
+
54
+ - `--no-playstore-upload`: skip Play Store upload for the build, requires `--output-upload`
55
+ - `--output-upload`
56
+ - `--no-output-upload`
57
+ - `--output-retention <duration>`: `1h` to `7d`
58
+ - `--skip-build-number-bump`
59
+ - `--no-skip-build-number-bump`
60
+
61
+ ## Local credential management
62
+
63
+ Credentials are stored locally, either globally in `~/.capgo-credentials/credentials.json` or locally in `.capgo-credentials.json`.
64
+
65
+ ### `build credentials save`
66
+
67
+ - Required before build requests.
68
+ - Supports global storage by default and local storage with `--local`.
69
+ - Example iOS flow:
70
+
71
+ ```bash
72
+ npx @capgo/cli build credentials save --platform ios \
73
+ --certificate ./cert.p12 --p12-password "password" \
74
+ --ios-provisioning-profile ./profile.mobileprovision \
75
+ --apple-key ./AuthKey.p8 --apple-key-id "KEY123" \
76
+ --apple-issuer-id "issuer-uuid" --apple-team-id "team-id"
77
+ ```
78
+
79
+ - Example multi-target iOS flow:
80
+
81
+ ```bash
82
+ npx @capgo/cli build credentials save --platform ios \
83
+ --ios-provisioning-profile ./App.mobileprovision \
84
+ --ios-provisioning-profile com.example.widget=./Widget.mobileprovision
85
+ ```
86
+
87
+ - Example Android flow:
88
+
89
+ ```bash
90
+ npx @capgo/cli build credentials save --platform android \
91
+ --keystore ./release.keystore --keystore-alias "my-key" \
92
+ --keystore-key-password "key-pass" \
93
+ --play-config ./service-account.json
94
+ ```
95
+
96
+ - Core options:
97
+ - `--appId <appId>`
98
+ - `--platform <platform>`
99
+ - `--local`
100
+ - `--output-upload`, `--no-output-upload`
101
+ - `--output-retention <duration>`
102
+ - `--skip-build-number-bump`, `--no-skip-build-number-bump`
103
+
104
+ #### iOS credential save options
105
+
106
+ - `--certificate <path>`
107
+ - `--ios-provisioning-profile <mapping>`
108
+ - `--p12-password <password>`
109
+ - `--apple-key <path>`
110
+ - `--apple-key-id <id>`
111
+ - `--apple-issuer-id <id>`
112
+ - `--apple-team-id <id>`
113
+ - `--ios-distribution <mode>`
114
+ - `--apple-id <email>`
115
+ - `--apple-app-password <password>`
116
+
117
+ #### Android credential save options
118
+
119
+ - `--keystore <path>`
120
+ - `--keystore-alias <alias>`
121
+ - `--keystore-key-password <password>`
122
+ - `--keystore-store-password <password>`
123
+ - `--play-config <path>`
124
+ - `--android-flavor <flavor>`
125
+
126
+ ### `build credentials list`
127
+
128
+ - Examples:
129
+ - `npx @capgo/cli build credentials list`
130
+ - `npx @capgo/cli build credentials list --appId com.example.app`
131
+ - Options:
132
+ - `--appId <appId>`
133
+ - `--local`
134
+
135
+ ### `build credentials clear`
136
+
137
+ - Examples:
138
+ - `npx @capgo/cli build credentials clear`
139
+ - `npx @capgo/cli build credentials clear --local`
140
+ - `npx @capgo/cli build credentials clear --appId com.example.app --platform ios`
141
+ - Options:
142
+ - `--appId <appId>`
143
+ - `--platform <platform>`
144
+ - `--local`
145
+
146
+ ### `build credentials update`
147
+
148
+ - Use to update specific credential fields without re-entering all data.
149
+ - Platform is auto-detected from the supplied options.
150
+ - Examples:
151
+ - `npx @capgo/cli build credentials update --ios-provisioning-profile ./new-profile.mobileprovision`
152
+ - `npx @capgo/cli build credentials update --local --keystore ./new-keystore.jks`
153
+ - Core options:
154
+ - `--appId <appId>`
155
+ - `--platform <platform>`
156
+ - `--local`
157
+ - `--overwrite-ios-provisioning-map`
158
+ - `--output-upload`, `--no-output-upload`
159
+ - `--output-retention <duration>`
160
+ - `--skip-build-number-bump`, `--no-skip-build-number-bump`
161
+ - Supports the same iOS and Android credential fields as `build credentials save`.
162
+
163
+ ### `build credentials migrate`
164
+
165
+ - Example: `npx @capgo/cli build credentials migrate --platform ios`
166
+ - Notes:
167
+ - Converts `BUILD_PROVISION_PROFILE_BASE64` to `CAPGO_IOS_PROVISIONING_MAP`.
168
+ - Discovers the main bundle ID from the Xcode project automatically.
169
+ - Options:
170
+ - `--appId <appId>`
171
+ - `--platform <platform>`: only `ios`
172
+ - `--local`
173
+
174
+ ## Supporting docs
175
+
176
+ - iOS setup: `https://capgo.app/docs/cli/cloud-build/ios/`
177
+ - Android setup: `https://capgo.app/docs/cli/cloud-build/android/`
@@ -0,0 +1,93 @@
1
+ ---
2
+ name: organization-management
3
+ description: Use when working with Capgo account lookup, organization administration, member security settings, and deprecated organisation aliases.
4
+ ---
5
+
6
+ # Capgo CLI Organization Management
7
+
8
+ Use this skill for account and organization administration commands.
9
+
10
+ ## Account command
11
+
12
+ ### `account id`
13
+
14
+ - Example: `npx @capgo/cli@latest account id`
15
+ - Use to retrieve an account ID that is safe to share for collaboration or support.
16
+ - Key option:
17
+ - `-a, --apikey <apikey>`
18
+
19
+ ## Organization commands
20
+
21
+ ### `organization list`
22
+
23
+ - Alias: `l`
24
+ - Example: `npx @capgo/cli@latest organization list`
25
+ - Lists all organizations the current user can access.
26
+
27
+ ### `organization add`
28
+
29
+ - Alias: `a`
30
+ - Example: `npx @capgo/cli@latest organization add --name "My Company" --email admin@mycompany.com`
31
+ - Key options:
32
+ - `-n, --name <name>`
33
+ - `-e, --email <email>`
34
+
35
+ ### `organization members [orgId]`
36
+
37
+ - Alias: `m`
38
+ - Example: `npx @capgo/cli@latest organization members ORG_ID`
39
+ - Notes:
40
+ - Lists members, roles, and 2FA status.
41
+ - Useful before enabling 2FA enforcement.
42
+ - Viewing 2FA status requires `super_admin` rights.
43
+
44
+ ### `organization set [orgId]`
45
+
46
+ - Alias: `s`
47
+ - Example: `npx @capgo/cli@latest organization set ORG_ID --name "New Name"`
48
+ - Security examples:
49
+ - `npx @capgo/cli@latest organization set ORG_ID --enforce-2fa`
50
+ - `npx @capgo/cli@latest organization set ORG_ID --password-policy --min-length 12`
51
+ - `npx @capgo/cli@latest organization set ORG_ID --require-apikey-expiration --max-apikey-expiration-days 90`
52
+ - `npx @capgo/cli@latest organization set ORG_ID --enforce-hashed-api-keys`
53
+ - Notes:
54
+ - Security settings require `super_admin` role.
55
+ - Key options:
56
+ - `-n, --name <name>`
57
+ - `-e, --email <email>`
58
+ - `--enforce-2fa`, `--no-enforce-2fa`
59
+ - `--password-policy`, `--no-password-policy`
60
+ - `--min-length <minLength>`
61
+ - `--require-uppercase`, `--no-require-uppercase`
62
+ - `--require-number`, `--no-require-number`
63
+ - `--require-special`, `--no-require-special`
64
+ - `--require-apikey-expiration`, `--no-require-apikey-expiration`
65
+ - `--max-apikey-expiration-days <days>`
66
+ - `--enforce-hashed-api-keys`, `--no-enforce-hashed-api-keys`
67
+
68
+ ### `organization delete [orgId]`
69
+
70
+ - Alias: `d`
71
+ - Example: `npx @capgo/cli@latest organization delete ORG_ID`
72
+ - Notes:
73
+ - This action cannot be undone.
74
+ - Only organization owners can delete organizations.
75
+
76
+ ## Deprecated aliases
77
+
78
+ The `organisation` command group is deprecated in favor of `organization` and will be removed in a future version.
79
+
80
+ ### Deprecated commands
81
+
82
+ - `organisation list`
83
+ - `organisation add`
84
+ - `organisation set [orgId]`
85
+ - `organisation delete [orgId]`
86
+
87
+ Use the `organization` equivalents for all new documentation and examples.
88
+
89
+ ## Shared options
90
+
91
+ Most account and organization commands support:
92
+
93
+ - `-a, --apikey <apikey>`
@@ -0,0 +1,222 @@
1
+ ---
2
+ name: release-management
3
+ description: Use when working on Capgo OTA release workflows including bundle uploads, compatibility checks, channel management, cleanup, and encryption key setup.
4
+ ---
5
+
6
+ # Capgo CLI Release Management
7
+
8
+ Use this skill for OTA update workflows in Capgo Cloud.
9
+
10
+ ## Shared notes
11
+
12
+ - Prefer `npx @capgo/cli@latest ...` examples.
13
+ - `appId` can often be inferred from the current Capacitor project.
14
+ - Shared public flags often include `-a, --apikey`.
15
+
16
+ ## Bundle workflows
17
+
18
+ ### `bundle upload [appId]`
19
+
20
+ - Alias: `u`
21
+ - Example: `npx @capgo/cli@latest bundle upload com.example.app --path ./dist --channel production`
22
+ - Key behavior:
23
+ - Bundle version must be greater than `0.0.0` and unique.
24
+ - Deleted versions cannot be reused.
25
+ - External URL mode is useful for very large or privacy-sensitive bundles.
26
+ - Encryption is recommended for trustless distribution.
27
+ - Important options:
28
+ - `-p, --path <path>`
29
+ - `-c, --channel <channel>`
30
+ - `-e, --external <url>`
31
+ - `--iv-session-key <key>`
32
+ - `-b, --bundle <bundle>`
33
+ - `--link <link>`
34
+ - `--comment <comment>`
35
+ - `--min-update-version <minUpdateVersion>`
36
+ - `--auto-min-update-version`
37
+ - `--ignore-metadata-check`
38
+ - `--ignore-checksum-check`
39
+ - `--force-crc32-checksum`
40
+ - `--timeout <timeout>`
41
+ - `--zip`
42
+ - `--tus`
43
+ - `--tus-chunk-size <tusChunkSize>`
44
+ - `--delta`
45
+ - `--delta-only`
46
+ - `--no-delta`
47
+ - `--encrypted-checksum <encryptedChecksum>`
48
+ - `--auto-set-bundle`
49
+ - `--dry-upload`
50
+ - `--package-json <packageJson>`
51
+ - `--node-modules <nodeModules>`
52
+ - `--encrypt-partial`
53
+ - `--delete-linked-bundle-on-upload`
54
+ - `--no-brotli-patterns <patterns>`
55
+ - `--disable-brotli`
56
+ - `--version-exists-ok`
57
+ - `--self-assign`
58
+ - S3 options: `--s3-region`, `--s3-apikey`, `--s3-apisecret`, `--s3-endpoint`, `--s3-bucket-name`, `--s3-port`, `--no-s3-ssl`
59
+ - Signing options: `--key-v2`, `--key-data-v2`, `--bundle-url`, `--no-key`, `--display-iv-session`
60
+ - Deprecated options still supported: `--multipart`, `--partial`, `--partial-only`
61
+
62
+ ### `bundle compatibility [appId]`
63
+
64
+ - Example: `npx @capgo/cli@latest bundle compatibility com.example.app --channel production`
65
+ - Use to check whether a bundle is safe for a given channel.
66
+ - Key options:
67
+ - `-c, --channel <channel>`
68
+ - `--text`
69
+ - `--package-json <packageJson>`
70
+ - `--node-modules <nodeModules>`
71
+
72
+ ### `bundle releaseType [appId]`
73
+
74
+ - Example: `npx @capgo/cli@latest bundle releaseType com.example.app --channel production`
75
+ - Prints `native` or `OTA` based on channel compatibility.
76
+ - Key options:
77
+ - `-c, --channel <channel>`
78
+ - `--package-json <packageJson>`
79
+ - `--node-modules <nodeModules>`
80
+
81
+ ### `bundle list [appId]`
82
+
83
+ - Alias: `l`
84
+ - Example: `npx @capgo/cli@latest bundle list com.example.app`
85
+
86
+ ### `bundle delete [bundleId] [appId]`
87
+
88
+ - Alias: `d`
89
+ - Example: `npx @capgo/cli@latest bundle delete BUNDLE_ID com.example.app`
90
+
91
+ ### `bundle cleanup [appId]`
92
+
93
+ - Alias: `c`
94
+ - Example: `npx @capgo/cli@latest bundle cleanup com.example.app --bundle=1.0 --keep=3`
95
+ - Notes:
96
+ - Linked bundles are preserved unless `--ignore-channel` is used.
97
+ - Key options:
98
+ - `-b, --bundle <bundle>`
99
+ - `-k, --keep <keep>`
100
+ - `-f, --force`
101
+ - `--ignore-channel`
102
+
103
+ ### `bundle zip [appId]`
104
+
105
+ - Example: `npx @capgo/cli@latest bundle zip com.example.app --path ./dist`
106
+ - Notes:
107
+ - Produces a checksum for encryption workflows.
108
+ - Use `--json` for machine-readable output.
109
+ - Key options:
110
+ - `-p, --path <path>`
111
+ - `-b, --bundle <bundle>`
112
+ - `-n, --name <name>`
113
+ - `-j, --json`
114
+ - `--no-code-check`
115
+ - `--key-v2`
116
+ - `--package-json <packageJson>`
117
+
118
+ ### `bundle encrypt [zipPath] [checksum]`
119
+
120
+ - Example: `npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM`
121
+ - Notes:
122
+ - Returns the `ivSessionKey` needed for upload and later decryption.
123
+ - Key options:
124
+ - `--key <key>`
125
+ - `--key-data <keyData>`
126
+ - `-j, --json`
127
+ - `--package-json <packageJson>`
128
+
129
+ ### `bundle decrypt [zipPath] [checksum]`
130
+
131
+ - Example: `npx @capgo/cli@latest bundle decrypt ./myapp_encrypted.zip CHECKSUM`
132
+ - Notes:
133
+ - Mainly for testing.
134
+ - Prints the base64 session key for verification.
135
+ - Key options:
136
+ - `--key <key>`
137
+ - `--key-data <keyData>`
138
+ - `--checksum <checksum>`
139
+ - `--package-json <packageJson>`
140
+
141
+ ## Channel workflows
142
+
143
+ ### `channel add [channelId] [appId]`
144
+
145
+ - Alias: `a`
146
+ - Example: `npx @capgo/cli@latest channel add production com.example.app --default`
147
+ - Key options:
148
+ - `-d, --default`
149
+ - `--self-assign`
150
+
151
+ ### `channel list [appId]`
152
+
153
+ - Alias: `l`
154
+ - Example: `npx @capgo/cli@latest channel list com.example.app`
155
+
156
+ ### `channel delete [channelId] [appId]`
157
+
158
+ - Alias: `d`
159
+ - Example: `npx @capgo/cli@latest channel delete production com.example.app`
160
+ - Key options:
161
+ - `--delete-bundle`
162
+ - `--success-if-not-found`
163
+
164
+ ### `channel currentBundle [channel] [appId]`
165
+
166
+ - Example: `npx @capgo/cli@latest channel currentBundle production com.example.app`
167
+ - Key options:
168
+ - `-c, --channel <channel>`
169
+ - `--quiet`
170
+
171
+ ### `channel set [channelId] [appId]`
172
+
173
+ - Alias: `s`
174
+ - Example: `npx @capgo/cli@latest channel set production com.example.app --bundle 1.0.0 --state default`
175
+ - Notes:
176
+ - One channel must remain default.
177
+ - Supports update policies `major`, `minor`, `metadata`, `patch`, and `none`.
178
+ - Supports platform and device targeting.
179
+ - Key options:
180
+ - `-b, --bundle <bundle>`
181
+ - `-s, --state <state>`
182
+ - `--latest-remote`
183
+ - `--latest`
184
+ - `--downgrade`, `--no-downgrade`
185
+ - `--ios`, `--no-ios`
186
+ - `--android`, `--no-android`
187
+ - `--self-assign`, `--no-self-assign`
188
+ - `--disable-auto-update <disableAutoUpdate>`
189
+ - `--dev`, `--no-dev`
190
+ - `--prod`, `--no-prod`
191
+ - `--emulator`, `--no-emulator`
192
+ - `--device`, `--no-device`
193
+ - `--package-json <packageJson>`
194
+ - `--ignore-metadata-check`
195
+
196
+ ## Encryption key workflows
197
+
198
+ ### `key save`
199
+
200
+ - Example: `npx @capgo/cli@latest key save --key ./path/to/key.pub`
201
+ - Notes:
202
+ - Saves the public key in Capacitor config.
203
+ - Useful for CI.
204
+ - Recommended not to commit the key.
205
+ - Key options:
206
+ - `-f, --force`
207
+ - `--key <key>`
208
+ - `--key-data <keyData>`
209
+
210
+ ### `key create`
211
+
212
+ - Example: `npx @capgo/cli@latest key create`
213
+ - Notes:
214
+ - Creates `.capgo_key_v2` and `.capgo_key_v2.pub`.
215
+ - Saves the public key to Capacitor config.
216
+ - Never commit the private key.
217
+ - Key options:
218
+ - `-f, --force`
219
+
220
+ ### `key delete_old`
221
+
222
+ - Example: `npx @capgo/cli@latest key delete_old`