@vibecodr/cli 1.0.0-rc.0 → 1.0.1

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.
Files changed (43) hide show
  1. package/CHANGELOG.md +58 -111
  2. package/MIGRATION.md +31 -2
  3. package/dist/auth/credential-broker.d.ts +28 -0
  4. package/dist/auth/credential-broker.d.ts.map +1 -0
  5. package/dist/auth/credential-broker.js +80 -0
  6. package/dist/auth/credential-broker.js.map +1 -0
  7. package/dist/bin/vc-tools.js +4 -0
  8. package/dist/bin/vc-tools.js.map +1 -1
  9. package/dist/bin/vibecodr-mcp.js +4 -0
  10. package/dist/bin/vibecodr-mcp.js.map +1 -1
  11. package/dist/clients/claude-code.d.ts.map +1 -1
  12. package/dist/clients/claude-code.js +5 -1
  13. package/dist/clients/claude-code.js.map +1 -1
  14. package/dist/core/env.d.ts +13 -0
  15. package/dist/core/env.d.ts.map +1 -0
  16. package/dist/core/env.js +62 -0
  17. package/dist/core/env.js.map +1 -0
  18. package/dist/legacy/config/store.d.ts.map +1 -1
  19. package/dist/legacy/config/store.js +19 -5
  20. package/dist/legacy/config/store.js.map +1 -1
  21. package/dist/legacy/core/version.d.ts +2 -2
  22. package/dist/legacy/core/version.d.ts.map +1 -1
  23. package/dist/legacy/core/version.js +1 -1
  24. package/dist/legacy/core/version.js.map +1 -1
  25. package/dist/platform/paths.d.ts.map +1 -1
  26. package/dist/platform/paths.js +11 -1
  27. package/dist/platform/paths.js.map +1 -1
  28. package/dist/storage/config-store.d.ts.map +1 -1
  29. package/dist/storage/config-store.js +15 -3
  30. package/dist/storage/config-store.js.map +1 -1
  31. package/dist/storage/install-manifest.d.ts.map +1 -1
  32. package/dist/storage/install-manifest.js +14 -3
  33. package/dist/storage/install-manifest.js.map +1 -1
  34. package/dist/storage/migrate.d.ts +15 -0
  35. package/dist/storage/migrate.d.ts.map +1 -0
  36. package/dist/storage/migrate.js +93 -0
  37. package/dist/storage/migrate.js.map +1 -0
  38. package/dist/types/install.d.ts +4 -0
  39. package/dist/types/install.d.ts.map +1 -1
  40. package/docs/commands.md +171 -119
  41. package/docs/legacy/CHANGELOG-mcp-cli.md +85 -0
  42. package/package.json +74 -69
  43. package/preinstall-check.mjs +107 -0
package/docs/commands.md CHANGED
@@ -1,204 +1,256 @@
1
1
  # Commands
2
2
 
3
- This page documents the command surface implemented in the current repo.
3
+ The Vibecodr CLI talks to two hosted endpoints. Every command targets exactly one of them:
4
+
5
+ | Badge | Endpoint | Auth path |
6
+ |---|---|---|
7
+ | `H` | `tools.vibecodr.space` | device-code (`vibecodr start` / `vc-tools start`) -> durable Clerk API key in OS keychain (`@vibecodr/vc-tools` service) |
8
+ | `M` | `openai.vibecodr.space/mcp` | CIMD/PKCE OAuth (`vibecodr login`) -> encrypted session in OS keychain (`@vibecodr/mcp` service) + AES-GCM session file |
9
+ | `*` | both | command picks the credential by what it talks to; no shared bin state |
10
+
11
+ The three bin entries — `vibecodr`, `vibecodr-mcp`, `vc-tools` — all resolve to the same dispatcher. The `vc-tools` bin sets `__VCR_INVOKED_AS=vc-tools` and routes every command through the legacy code path so output is byte-equivalent to `@vibecodr/vc-tools@0.1.4`. The `vibecodr` bin runs the MCP-gateway commands inline and cross-routes the hosted Agent Computer commands into the legacy code path. The `vibecodr-mcp` bin is the alias preserved from `@vibecodr/cli@0.2.x`.
4
12
 
5
13
  ## Global flags
6
14
 
7
15
  All commands accept:
8
16
 
9
- - `--profile <name>`
10
- - `--json`
11
- - `--verbose`
12
- - `--non-interactive`
17
+ - `--profile <name>` (M)
18
+ - `--json` (\*)
19
+ - `--verbose` (\*)
20
+ - `--non-interactive` (\*)
13
21
 
14
- Alternate MCP servers are profile-scoped, not runtime overrides. Use
15
- `vibecodr config profile create <name> --server-url <url>` and then login to
16
- that profile; stored tokens are bound to the server that issued them.
22
+ The legacy `vc-tools` bin also accepts:
17
23
 
18
- ## Commands
24
+ - `--api-url <url>`
25
+ - `--config-dir <path>`
26
+ - `--credential <value>` / `--credential-file <path>` / `--credential-stdin`
27
+ - `--token <value>` / `--token-file <path>` / `--token-stdin`
28
+ - `--timeout-ms <n>` (1000..300000)
29
+ - `--quiet` / `-q`
30
+ - `--no-input`
31
+ - `--no-color`
32
+ - `--debug`
33
+ - `--allow-insecure-local-api`
19
34
 
20
- ### `login`
35
+ Alternate MCP servers are profile-scoped, not runtime overrides. Use `vibecodr config profile create <name> --server-url <url>` and then login to that profile; stored tokens are bound to the server that issued them.
21
36
 
22
- Syntax:
37
+ ## Authentication
38
+
39
+ ### `vibecodr login` (M)
23
40
 
24
41
  `vibecodr login [--scope <oauth-scope>] [--registration auto|preregistered|cimd|dcr|manual] [--browser open|print] [--timeout-sec <n>]`
25
42
 
26
- Use this to authenticate the CLI itself.
43
+ Authenticates this CLI against the MCP gateway via CIMD/PKCE. Prints the authorization URL by default; `--browser open` launches the browser automatically. Stores the encrypted session under the `@vibecodr/mcp` keyring service.
27
44
 
28
- Current default:
45
+ ### `vibecodr logout` (M)
29
46
 
30
- - `login` prints the authorization URL and waits for the loopback callback
31
- - `--browser open` opts into automatic browser launch
47
+ `vibecodr logout [--all] [--no-revoke]`
32
48
 
33
- ### `logout`
49
+ Clears the MCP gateway session. Does not touch editor-owned auth or the hosted Agent Computer credential.
34
50
 
35
- Syntax:
51
+ ### `vibecodr status` (M)
36
52
 
37
- `vibecodr logout [--all] [--no-revoke]`
53
+ `vibecodr status [--probe] [--show-installs]`
38
54
 
39
- Use this to clear CLI auth state. It does not touch editor-owned auth.
55
+ Without `--probe`, reads only local state. `--show-installs` distinguishes configured, missing, and external managed installs.
40
56
 
41
- ### `status`
57
+ ### `vibecodr whoami` (M)
42
58
 
43
- Syntax:
59
+ `vibecodr whoami [--no-login]`
44
60
 
45
- `vibecodr status [--probe] [--show-installs]`
61
+ Calls the protected `get_account_capabilities` MCP tool. Prints account identity, plan, CLI profile, server URL, and session state. Same refresh + interactive login retry path as `call`.
46
62
 
47
- Without `--probe`, this reads only local state.
63
+ ### `vc-tools start` / `vc-tools setup` (H)
48
64
 
49
- ### `whoami`
65
+ `vc-tools start [--api-url <url>] [--browser open|print] [--credential ...] [--token ...] [--no-input]`
50
66
 
51
- Syntax:
67
+ `setup` is an alias for `start`. Walks device-code login against `api.vibecodr.space`, shows the matching approval code, waits for the user to approve in-browser, stores a durable Clerk API key under the `@vibecodr/vc-tools` keyring service (visible in the user's Clerk-managed API keys list as `"vc-tools Agent Computer"`), then returns the hosted MCP connection details an agent needs.
52
68
 
53
- `vibecodr whoami [--no-login]`
69
+ ### `vc-tools auth diagnose` / `vc-tools auth export-agent-env` (H)
54
70
 
55
- Shows the connected Vibecodr account and plan by calling the protected
56
- `get_account_capabilities` MCP tool. It uses the same refresh and interactive
57
- login retry path as `call`, but prints only account identity, plan, CLI profile,
58
- server URL, and session state.
71
+ `auth diagnose` reports local credential health and which surface owns the active session. `auth export-agent-env` emits `VC_TOOLS_*` environment variables so an isolated agent shell can pick up the cached credential.
59
72
 
60
- ### `tools`
73
+ ## Agent client installation (*)
61
74
 
62
- Syntax:
75
+ ### `vibecodr install <client>` / `vibecodr uninstall <client>`
63
76
 
64
- `vibecodr tools [<tool-name>] [--search <text>] [--schema] [--no-login]`
77
+ `vibecodr install <codex|cursor|vscode|windsurf|claude-desktop|claude-code> [--scope user|project] [--path <dir>] [--name <server-name>] [--open-client] [--overwrite] [--dry-run]`
65
78
 
66
- This always reads the live tool catalog from the MCP server.
79
+ Adds (or removes) the hosted Vibecodr MCP server to the client's MCP catalog. `codex`, `vscode`, and `claude-code` prefer their own CLI shim (`codex mcp add`, `code --add-mcp`, `claude mcp add`) and fall back to writing the client's config file. `cursor`, `windsurf`, `claude-desktop` always write the client's config file directly. Records the install in `installs.json` so `uninstall` can find it.
67
80
 
68
- ### `call`
81
+ ### `vc-tools connect` / `vc-tools agent connect` (H)
69
82
 
70
- Syntax:
83
+ `vc-tools connect --client <codex|cursor|vscode|windsurf|claude-desktop|claude-code> [--print] [--name <server-name>] [--install] [--overwrite]`
71
84
 
72
- `vibecodr call <tool-name> [--input-json <json>] [--input-file <path>] [--stdin] [--interactive] [--timeout-sec <n>] [--no-login] [--confirm]`
85
+ Prints (`--print`) or installs (`--install`) the MCP connection details for the hosted Agent Computer. The `vc-tools agent connect` form is the legacy spelling; both reach the same code path.
86
+
87
+ ## Hosted browser (H)
88
+
89
+ ### `vc-tools browser <subcommand>`
90
+
91
+ - `browser read <https-url> [--out ./proof] [--no-wait] [--details]`
92
+ - `browser screenshot <https-url> [--format png|jpg] [--out ./proof] [--no-wait] [--details]`
93
+ - `browser render <https-url> [--out ./proof] [--no-wait] [--details]`
94
+ - `browser pdf <https-url> [--out ./proof] [--no-wait] [--details]`
95
+ - `browser crawl <https-url> [--max-pages n] [--max-depth n] [--out ./proof]`
96
+ - `browser snapshot <https-url> [--instructions <text>] [--out ./proof]`
97
+ - `browser ask <https-url> --instructions <text>`
98
+
99
+ Public HTTPS URLs only. Localhost, private network ranges, URL credentials, and internal hostnames are blocked before any hosted work is submitted. `--no-wait` returns immediately with a `jobId` you can follow via `vc-tools work follow`. `--details` includes capability metadata in the response.
100
+
101
+ ## Hosted computer (H)
73
102
 
74
- `--interactive` currently supports top-level scalar object fields.
103
+ ### `vc-tools computer <subcommand>`
75
104
 
76
- For `quick_publish_creation` with `payload.importMode: "direct_files"`, pass file paths as normal slash-separated project paths such as `src/main.tsx` or `src/server/binding-proof.js`. Do not pre-encode slashes as `%2F`; the hosted MCP gateway encodes each URL segment when it writes files to Vibecodr.
105
+ - `computer run <command> [--out ./proof] [--no-wait]`
106
+ - `computer test <command> [--out ./proof] [--no-wait]`
107
+ - `computer status`
77
108
 
78
- Known mutating tools require explicit confirmation through `--confirm`. The CLI redacts secret, token, source, descriptor, and inline file-content fields from displayed arguments and results while preserving safe operator handles and counters such as `artifactId`, `jobId`, `requestId`, `traceId`, `errorCode`, `credentialType`, `tokenCount`, and `tokenKind`; the MCP gateway remains the authority boundary for OAuth, owner checks, confirmation, and output shaping.
109
+ `run` and `test` submit bounded commands to the hosted sandbox container (Sandbox or ProSandbox class depending on plan). Public HTTP(S) network is enabled for sandbox tests; private/metadata networks remain blocked.
79
110
 
80
- Use `--timeout-sec <n>` when a protected tool is expected to run longer than the default client wait, such as a build-backed publish retry. This changes only the local MCP transport timeout and is not forwarded as a server tool argument.
111
+ ## Hosted work + proof (H)
81
112
 
82
- Use `vibecodr call get_account_capabilities --json` to read the live model-safe plan snapshot before promising hosted tool work. The gateway returns Quick Checks, Agent Browser, Sandbox, Crawl, and Artifact Shelf limits when the platform API exposes them.
113
+ ### `vc-tools work <subcommand>`
83
114
 
84
- ### `upload`
115
+ - `work list`
116
+ - `work follow <jobId> [--no-wait] [--timeout-sec <n>]`
117
+ - `work show <jobId>`
118
+ - `work cancel <jobId>`
119
+ - `work submit <command-spec>`
85
120
 
86
- Syntax:
121
+ ### `vc-tools proof <subcommand>`
87
122
 
88
- `vibecodr upload --zip <path> [--idempotency-key <key>] [--root-hint <path>] [--entry-hint <path>] [--timeout-sec <n>] [--no-login]`
123
+ - `proof list [--limit <n>] [--cursor <c>]`
124
+ - `proof get <artifactId>`
125
+ - `proof save <artifactId> --out <path>`
126
+ - `proof download <artifactId> --out <path>`
127
+ - `proof delete <artifactId>`
89
128
 
90
- `vibecodr upload --image <path> [--kind cover_image|avatar_image] [--content-type <mime>] [--timeout-sec <n>] [--no-login]`
129
+ Artifact output is workspace-bounded: downloaded bytes can only be written to files you intentionally target inside the current workspace. Use `--out ./artifacts`, `--out ./artifacts/report.pdf`, or `cd` to the intended workspace and use `--out .`.
91
130
 
92
- Stages a local ZIP or image through Vibecodr's API-owned upload session flow. The CLI asks the MCP gateway for a short-lived direct R2 PUT URL, uploads the bytes directly to R2, completes server-side verification, and prints safe identifiers only.
131
+ ### `vc-tools jobs <subcommand>` / `vc-tools artifacts <subcommand>`
93
132
 
94
- ZIP uploads print a `quickPublishPayload` snippet using `payload.importMode: "staged_upload"`. The snippet asks Vibecodr to use the async staged-upload import path so larger projects can move to the heavy import lane automatically instead of making the CLI guess. Cover image uploads print a `thumbnailStagedUpload` snippet that can be passed to publish metadata tools. Avatar image uploads print an `avatarStagedUpload` identifier for avatar promotion flows.
133
+ `jobs list|status|cancel` and `artifacts list|get|delete` are lower-level surfaces over the same underlying entities; prefer `work` and `proof` for the common flows.
95
134
 
96
- Cover images support PNG, JPEG, WebP, and AVIF. Avatar images support PNG, JPEG, WebP, and GIF.
135
+ ## Plan + usage (H)
97
136
 
98
- Staged upload MCP setup and completion calls use a longer client-side wait by default so large ZIP verification does not fail only because the local CLI stopped waiting. Use `--timeout-sec <n>` only when a slower network needs a different local wait; this value is transport behavior and is not forwarded as a server tool argument.
137
+ ### `vc-tools usage` / `vc-tools limits`
99
138
 
100
- The presigned URL is a bearer credential and is never printed in command output. Legacy `zip_import` / `fileBase64` remains a compatibility path for small payloads, not the preferred CLI path for whole repos or launch images.
139
+ `vc-tools usage [--json]` (and the `limits` alias) reports the account's plan name, monthly and daily credit counters, current concurrent runs, and remaining headroom. The hosted worker is the authority; the CLI does not cache quotas.
101
140
 
102
- ### `pulse-setup`
141
+ ### `vc-tools grants <subcommand>`
142
+
143
+ - `grants list`
144
+ - `grants refresh`
145
+
146
+ Inspects scoped grants the worker issues to bind a tool call to a plan + capability set.
147
+
148
+ ### `vc-tools retention` / `vc-tools scheduled-qa`
149
+
150
+ `retention` shows or sets the account's proof-retention policy. `scheduled-qa` shows or schedules recurring QA runs (rate-limited per plan).
151
+
152
+ ### `vc-tools plans [--details]`
153
+
154
+ Prints the plan packaging matrix (Free / Creator / Pro). With `--details`, includes per-capability limits and the tool-credit breakdown.
155
+
156
+ ### `vc-tools dashboard`
157
+
158
+ Prints the URL of the hosted supervision dashboard. Does not open a browser; that is left to the caller.
159
+
160
+ ## MCP gateway tooling (M)
161
+
162
+ ### `vibecodr tools` / `vibecodr tools test`
163
+
164
+ `vibecodr tools [<tool-name>] [--search <text>] [--schema] [--no-login]`
165
+
166
+ Lists the live MCP tool catalog from `openai.vibecodr.space/mcp`. With `<tool-name>`, prints the schema for that tool. `--schema` includes the full JSON schema. `tools test <tool-name>` runs the gateway's `validators` against a sample input.
167
+
168
+ ### `vibecodr call <tool-name>`
169
+
170
+ `vibecodr call <tool-name> [--input-json <json>] [--input-file <path>] [--stdin] [--interactive] [--timeout-sec <n>] [--no-login] [--confirm]`
103
171
 
104
- Syntax:
172
+ Invokes the named MCP tool. `--interactive` supports top-level scalar object fields; richer schemas should use `--input-json` or `--input-file`. `--confirm` is required for known mutating tools. The CLI redacts source, descriptor, token, secret, and inline file-content fields from displayed arguments and results while preserving safe operator handles (`artifactId`, `jobId`, `requestId`, `traceId`, `errorCode`, `credentialType`, `tokenCount`, `tokenKind`). The gateway remains the authority boundary for OAuth, owner scoping, confirmation policy, and output shaping. `--timeout-sec <n>` changes only the local MCP transport timeout and is not forwarded as a server tool argument.
105
173
 
106
- `vibecodr pulse-setup [--json] [--descriptor-setup-json <json> | --descriptor-setup-file <path>]`
174
+ For `quick_publish_creation` with `payload.importMode: "direct_files"`, pass file paths as normal slash-separated project paths (`src/main.tsx`, `src/server/binding-proof.js`). Do not pre-encode slashes as `%2F`; the hosted gateway encodes each URL segment when it writes files to Vibecodr.
107
175
 
108
- Calls the live `get_pulse_setup_guidance` MCP tool. Pass a `PulseDescriptorSetupProjection` through `--descriptor-setup-json` or `--descriptor-setup-file` when you have one; the CLI forwards it as `descriptorSetup` and verifies the MCP response evaluated that descriptor. Without a descriptor projection, the command returns general Pulse setup rules and must not be treated as proof that a specific Pulse needs or does not need backend setup.
176
+ ### `vibecodr upload`
109
177
 
110
- The CLI does not maintain separate Pulse setup copy; it reads MCP output derived from the API projection owned by `PulseDescriptor`.
178
+ `vibecodr upload --zip <path>` or `vibecodr upload --image <path> [--kind cover_image|avatar_image]`
111
179
 
112
- The returned guidance should stay capability-shaped: `env.fetch` is Vibecodr policy-mediated fetch, `env.secrets.bearer/header/query/verifyHmac` are policy-bound secret helpers, `env.webhooks.verify("stripe")` is the first certified provider helper rather than the whole webhook model, non-Stripe signed webhooks use generic HMAC format presets such as `github-sha256`, `shopify-hmac-sha256`, and `slack-v0` until fixture-backed helpers exist, `env.connections.use(provider).fetch` is provider-scoped connected-account access, `env.log` is structured logging, `env.request` is sanitized request access, `env.runtime` is safe correlation metadata, and `env.waitUntil` is best-effort after-response work. The CLI must not introduce separate cleanup, platform-binding, dispatch, raw-token, raw-authorization, or physical-storage guidance.
180
+ Direct-to-R2 staged uploads (no base64 payloads). Hosted gateway returns a presigned R2 PUT URL, the CLI streams the file, then the gateway records the upload metadata. Image uploads accept the kind discriminator.
113
181
 
114
- ### `pulse-publish`
182
+ ## Pulse (M)
115
183
 
116
- Syntax:
184
+ ### `vibecodr pulse-setup`
117
185
 
118
- `vibecodr pulse-publish --name <name> (--code <source> | --code-file <path>) [--descriptor-json <json> | --descriptor-file <path>] [--slug <slug>] [--visibility public|unlisted|private] --confirm`
186
+ `vibecodr pulse-setup [--descriptor-setup-json <json> | --descriptor-setup-file <path>]`
119
187
 
120
- Calls `publish_standalone_pulse`. Standalone Pulse source/metadata visibility defaults to private. Private visibility does not add runtime authentication to the public Pulse URL. The CLI does not echo source code or descriptors in successful output.
188
+ Walks live Pulse setup (provider connections, secret bindings, Stripe-first webhook helper). Without args, prompts interactively.
121
189
 
122
- ### `pulse`
190
+ ### `vibecodr pulse-publish`
123
191
 
124
- Syntax:
192
+ `vibecodr pulse-publish --name <name> (--code <source> | --code-file <path>) --confirm`
125
193
 
126
- - `vibecodr pulse list [--limit <n>] [--offset <n>]`
127
- - `vibecodr pulse get <pulse-id>`
128
- - `vibecodr pulse status <pulse-id>`
129
- - `vibecodr pulse run <pulse-id> [--input-json <json> | --input-file <path>] --confirm`
130
- - `vibecodr pulse archive <pulse-id> --confirm`
131
- - `vibecodr pulse restore <pulse-id> --confirm`
132
- - `vibecodr pulse create --name <name> (--code <source> | --code-file <path>) --confirm`
133
- - `vibecodr pulse deploy --name <name> (--code <source> | --code-file <path>) --confirm`
194
+ Publishes a standalone Pulse with private source/metadata visibility by default. Runtime URL is public HTTP unless the Pulse code rejects callers. `--confirm` is required.
134
195
 
135
- `create` and `deploy` are aliases for the standalone publish flow. `run`, `archive`, and `restore` require explicit confirmation. `delete` is intentionally unavailable; archive a Pulse instead. `logs` are not exposed through the hardened lifecycle surface yet.
196
+ ### `vibecodr pulse <subcommand>`
136
197
 
137
- The CLI forwards lifecycle calls to MCP tools owned by the hosted gateway: `list_pulses`, `get_pulse`, `get_pulse_status`, `run_pulse`, `archive_pulse`, and `restore_pulse`. These server tools are hidden from default discovery but callable by exact name for owner recovery and CLI use.
198
+ - `pulse list`
199
+ - `pulse get <pulseId>`
200
+ - `pulse status <pulseId>`
201
+ - `pulse run <pulseId>`
202
+ - `pulse archive <pulseId> --confirm`
203
+ - `pulse restore <pulseId> --confirm`
204
+ - `pulse create --confirm`
205
+ - `pulse deploy <pulseId>`
138
206
 
139
- ### `doctor`
207
+ Convenience wrappers over the gateway's Pulse lifecycle. `create` and `deploy` are aliases for the create-and-publish sequence; prefer the explicit form when scripting.
140
208
 
141
- Syntax:
209
+ ## Convenience (*)
142
210
 
143
- `vibecodr doctor [--client <client>]`
211
+ ### `vc-tools try` (H)
144
212
 
145
- Supported client probes now:
213
+ `vc-tools try [--out ./proof]`
146
214
 
147
- - `codex`
148
- - `cursor`
149
- - `vscode`
150
- - `windsurf`
215
+ Runs a small browser + computer + proof + usage check end-to-end to verify the account, the credential, and the hosted plumbing.
151
216
 
152
- ### `config`
217
+ ### `vibecodr doctor` / `vc-tools doctor` (*)
153
218
 
154
- Syntax:
219
+ `vibecodr doctor [--json]` walks local health: secret store availability, browser launcher, network reachability, MCP gateway handshake, hosted worker handshake.
155
220
 
156
- - `vibecodr config path`
157
- - `vibecodr config show`
158
- - `vibecodr config set <key> <value>`
159
- - `vibecodr config unset <key>`
160
- - `vibecodr config profile list`
161
- - `vibecodr config profile create <name> [--server-url <url>]`
162
- - `vibecodr config profile use <name>`
163
- - `vibecodr config profile delete <name> [--force]`
221
+ `vc-tools doctor` does the same plus device-code surface checks.
164
222
 
165
- ### `install`
223
+ ### `vibecodr config` / `vc-tools config` (*)
166
224
 
167
- Syntax:
225
+ `config` reads and writes the CLI's profile catalog. Sub-surfaces include profile create, profile select, profile list, get, set.
168
226
 
169
- `vibecodr install <codex|cursor|vscode|windsurf|claude-desktop> [--scope user|project] [--path <dir>] [--name <server-name>] [--open-client] [--overwrite] [--dry-run]`
227
+ ### `vc-tools inspect` (H)
170
228
 
171
- Install config only. Runtime auth remains CLI-owned or editor-owned depending on where the server is used.
229
+ `vc-tools inspect --json`
172
230
 
173
- Claude Desktop does not load remote HTTP MCP servers natively, so the installer writes the documented `mcp-remote` stdio proxy entry (`{ command: "npx", args: ["mcp-remote", <url>] }`). Node.js / npx must be on PATH for the proxy to launch. Users can alternatively add the MCP URL via Settings -> Connectors -> Add custom connector in the desktop app.
231
+ Emits the goal-coverage map (which hosted capabilities are local-verified vs hosted-required vs production-smoked). Used by the release-readiness check.
174
232
 
175
- Platform support matrix:
176
- - **macOS**: writes to `~/Library/Application Support/Claude/claude_desktop_config.json`.
177
- - **Windows**: writes to `%APPDATA%\Claude\claude_desktop_config.json`.
178
- - **Linux**: Anthropic does not ship an official Claude Desktop build for Linux. The installer writes to `${XDG_CONFIG_HOME:-$HOME/.config}/Claude/claude_desktop_config.json`, the path used by community repackages. If you are not running such a build, install Claude Code and use `vibecodr install codex` / equivalent instead.
233
+ ## Legacy bin aliases
179
234
 
180
- ### `uninstall`
235
+ `vibecodr-mcp <command> ...` and `vc-tools <command> ...` are bin entries that route into the same dispatcher.
181
236
 
182
- Syntax:
237
+ - `vibecodr-mcp` produces output byte-equivalent to `@vibecodr/cli@0.2.11` for every MCP-gateway command.
238
+ - `vc-tools` produces output byte-equivalent to `@vibecodr/vc-tools@0.1.4` for every hosted Agent Computer command.
183
239
 
184
- `vibecodr uninstall <codex|cursor|vscode|windsurf|claude-desktop> [--scope user|project] [--path <dir>] [--name <server-name>] [--dry-run]`
240
+ If you have scripts that call either binary, no changes are required.
185
241
 
186
- ## Exit codes
242
+ ## Output and exit codes
187
243
 
188
- - `0` success
189
- - `1` runtime or doctor check failure
190
- - `2` usage error
191
- - `3` config or filesystem error
192
- - `4` auth required but unavailable in current mode
193
- - `5` auth failed
194
- - `6` network failure
195
- - `7` protocol or discovery failure
196
- - `8` tool failure
197
- - `9` unsupported client or missing required executable
198
- - `10` install or uninstall conflict
199
- - `11` secure credential store unavailable
200
- - `12` cancellation or auth timeout
244
+ All commands return non-zero on failure. Stable codes:
201
245
 
202
- ## Current note
246
+ | Code | Meaning |
247
+ |---|---|
248
+ | 0 | success |
249
+ | 2 | usage / input validation |
250
+ | 3 | auth / session |
251
+ | 4 | quota / plan limit |
252
+ | 5 | local config / storage |
253
+ | 6 | install / uninstall conflict |
254
+ | 7 | runtime / hosted failure |
203
255
 
204
- The commands above are implemented now. The main remaining product constraint is VS Code user-scope uninstall, because there is still no documented removal surface that this repo can safely automate without inventing one.
256
+ `--json` shape is `{ ok: true, data, warnings }` on success and `{ ok: false, error: { code, message, status, details } }` on failure. Volatile fields (`requestId`, `traceId`, timestamps) appear in `data` / `error.details` but are filtered out of the §14 output-baseline regression contract.
@@ -0,0 +1,85 @@
1
+ # @vibecodr/cli 0.1.x / 0.2.x changelog (pre-merge)
2
+
3
+ This is the changelog for the legacy `@vibecodr/cli@0.2.x` and `0.1.x` lines — the MCP-gateway-only CLI that became part of the merged `@vibecodr/cli@1.0.0` in May 2026. The 1.0.x entries live in [`/CHANGELOG.md`](../../CHANGELOG.md).
4
+
5
+ The other half of the merge — `@vibecodr/vc-tools@0.1.x` — kept its own changelog inside its own repo; that history is preserved in the archived [`BradenHartsell/vc-tools`](https://github.com/BradenHartsell/vc-tools) repository.
6
+
7
+ ## 0.2.11
8
+
9
+ - add `vibecodr call --timeout-sec <n>` as a local MCP transport timeout for long-running protected tool calls such as build-backed publish retries
10
+ - keep `--timeout-sec` out of server tool arguments so hosted MCP schemas remain authoritative
11
+
12
+ ## 0.2.6
13
+
14
+ - publish a fresh CLI version so GitHub and npm carry the same current release marker
15
+
16
+ ## 0.2.5
17
+
18
+ - refresh release lockfile coverage before publishing the CLI
19
+
20
+ ## 0.2.4
21
+
22
+ - clarify staged ZIP upload output so larger projects can move into Vibecodr's async heavy import lane automatically
23
+ - keep worker-gateway integration fixtures aligned with pulse compute quota fields
24
+
25
+ ## 0.2.2
26
+
27
+ - show command-specific help for nested `vibecodr pulse <command> --help|-h|-help` requests
28
+
29
+ ## 0.2.1
30
+
31
+ - preserve encrypted offline sessions when refresh fails because the authorization server is temporarily unavailable
32
+ - continue clearing stored auth on OAuth `invalid_grant` so revoked or expired refresh tokens fail closed
33
+
34
+ ## 0.2.0
35
+
36
+ - rename the npm package to `@vibecodr/cli` while keeping `vibecodr` as the primary executable and `vibecodr-mcp` as a compatibility alias
37
+ - add the hardened `pulse` lifecycle command group for list/get/status/run/archive/restore plus create/deploy aliases
38
+ - redact source, descriptor, token, secret, and inline file-content fields from CLI-displayed MCP arguments and results
39
+ - require explicit confirmation for known mutating MCP tools when invoked through the generic `call` command
40
+
41
+ ## 0.1.8
42
+
43
+ - report the actual package version in MCP client metadata instead of a stale hardcoded value
44
+ - publish the CLI after redeploying the hosted Vibecodr MCP gateway
45
+
46
+ ## 0.1.7
47
+
48
+ - add the `pulse-setup` command for live Pulse setup guidance
49
+ - align CLI Pulse setup docs with the gateway runtime contract for policy-bound secrets, Stripe-first webhook helper guidance, generic HMAC presets, and provider-scoped connections
50
+ - refresh release-lock coverage for current in-range MCP SDK, keyring, and Node type packages before publishing
51
+
52
+ ## 0.1.6
53
+
54
+ - make printed OAuth authorization URLs the default login behavior
55
+ - keep automatic browser launch available behind `--browser open`
56
+ - keep secret-store delete best-effort when keyring entry loading fails during cleanup
57
+
58
+ ## 0.1.5
59
+
60
+ - replace the Windows browser launcher with `rundll32 url.dll,FileProtocolHandler` so OAuth URLs open in the default browser instead of File Explorer
61
+ - make `doctor` use the same browser-launcher availability check as runtime auth
62
+
63
+ ## 0.1.4
64
+
65
+ - replace the Windows browser launcher with `explorer.exe` so OAuth URLs are passed through intact
66
+
67
+ ## 0.1.3
68
+
69
+ - fix Windows command detection by resolving `where.exe` from the real system path
70
+ - make `status --show-installs` verify file-backed installs instead of blindly trusting the manifest
71
+
72
+ ## 0.1.2
73
+
74
+ - fix Windows browser auto-open by launching the actual command shell instead of assuming `cmd` is on PATH
75
+ - make `doctor` validate the real browser launcher path instead of hardcoding Windows success
76
+
77
+ ## 0.1.1
78
+
79
+ - add `vibecodr` as a first-class executable alias
80
+ - fix Windows login persistence by storing encrypted session blobs on disk with a small OS-keyring-backed encryption key
81
+ - keep `vibecodr-mcp` as a compatibility alias
82
+
83
+ ## 0.1.0
84
+
85
+ - Initial Phase 0 scaffold for the direct Vibecodr MCP CLI.
package/package.json CHANGED
@@ -1,69 +1,74 @@
1
- {
2
- "name": "@vibecodr/cli",
3
- "version": "1.0.0-rc.0",
4
- "description": "The official Vibecodr CLI: hosted browser, hosted computer, capsule uploads, Pulse operations, and agent-client MCP setup under one command.",
5
- "license": "Apache-2.0",
6
- "type": "module",
7
- "bin": {
8
- "vibecodr": "dist/bin/vibecodr-mcp.js",
9
- "vibecodr-mcp": "dist/bin/vibecodr-mcp.js",
10
- "vc-tools": "dist/bin/vc-tools.js"
11
- },
12
- "files": [
13
- "dist",
14
- "README.md",
15
- "LICENSE",
16
- "CHANGELOG.md",
17
- "MIGRATION.md",
18
- "docs"
19
- ],
20
- "engines": {
21
- "node": ">=22 <26"
22
- },
23
- "keywords": [
24
- "vibecodr",
25
- "cli",
26
- "mcp",
27
- "model-context-protocol",
28
- "agent-computer",
29
- "browser-automation",
30
- "cloudflare",
31
- "sandbox"
32
- ],
33
- "repository": {
34
- "type": "git",
35
- "url": "https://github.com/BradenHartsell/Vibecodr-CLI.git"
36
- },
37
- "bugs": {
38
- "url": "https://github.com/BradenHartsell/Vibecodr-CLI/issues"
39
- },
40
- "homepage": "https://vibecodr.space/vc-tools",
41
- "publishConfig": {
42
- "access": "public"
43
- },
44
- "scripts": {
45
- "build": "tsc -p tsconfig.build.json",
46
- "check": "npm run check:cli && npm run check:worker",
47
- "check:cli": "tsc -p tsconfig.json --noEmit",
48
- "check:worker": "tsc -p tsconfig.worker.json --noEmit",
49
- "test": "node --import tsx --test test/**/*.test.ts",
50
- "test:live-smoke": "node --import tsx --test test/live-smoke.smoke.ts",
51
- "test:integration:worker": "node --import tsx --test test/worker-gateway.integration.test.ts",
52
- "verify:artifact": "node scripts/check-pack-artifact.mjs",
53
- "verify": "npm run check && npm run build && npm test && npm run verify:artifact"
54
- },
55
- "dependencies": {
56
- "@iarna/toml": "^2.2.5",
57
- "@modelcontextprotocol/sdk": "^1.27.1",
58
- "@napi-rs/keyring": "^1.3.0"
59
- },
60
- "devDependencies": {
61
- "@cloudflare/puppeteer": "^1.1.0",
62
- "@cloudflare/sandbox": "^0.10.0",
63
- "@cloudflare/workers-types": "^4.20260511.1",
64
- "@types/node": "^24.7.2",
65
- "tsx": "^4.21.0",
66
- "typescript": "^5.9.3",
67
- "wrangler": "^4.90.0"
68
- }
69
- }
1
+ {
2
+ "name": "@vibecodr/cli",
3
+ "version": "1.0.1",
4
+ "description": "The official Vibecodr CLI: hosted browser, hosted computer, capsule uploads, Pulse operations, and agent-client MCP setup under one command.",
5
+ "license": "Apache-2.0",
6
+ "type": "module",
7
+ "bin": {
8
+ "vibecodr": "dist/bin/vibecodr-mcp.js",
9
+ "vibecodr-mcp": "dist/bin/vibecodr-mcp.js",
10
+ "vc-tools": "dist/bin/vc-tools.js"
11
+ },
12
+ "files": [
13
+ "dist",
14
+ "README.md",
15
+ "LICENSE",
16
+ "CHANGELOG.md",
17
+ "MIGRATION.md",
18
+ "docs",
19
+ "preinstall-check.mjs"
20
+ ],
21
+ "engines": {
22
+ "node": ">=22 <26"
23
+ },
24
+ "keywords": [
25
+ "vibecodr",
26
+ "cli",
27
+ "mcp",
28
+ "model-context-protocol",
29
+ "agent-computer",
30
+ "browser-automation",
31
+ "cloudflare",
32
+ "sandbox"
33
+ ],
34
+ "repository": {
35
+ "type": "git",
36
+ "url": "https://github.com/BradenHartsell/Vibecodr-CLI.git"
37
+ },
38
+ "bugs": {
39
+ "url": "https://github.com/BradenHartsell/Vibecodr-CLI/issues"
40
+ },
41
+ "homepage": "https://vibecodr.space/vc-tools",
42
+ "publishConfig": {
43
+ "access": "public"
44
+ },
45
+ "scripts": {
46
+ "preinstall": "node preinstall-check.mjs",
47
+ "build": "tsc -p tsconfig.build.json",
48
+ "check": "npm run check:cli && npm run check:worker",
49
+ "check:cli": "tsc -p tsconfig.json --noEmit",
50
+ "check:worker": "tsc -p tsconfig.worker.json --noEmit",
51
+ "test": "node --import tsx --test test/**/*.test.ts",
52
+ "test:live-smoke": "node --import tsx --test test/live-smoke.smoke.ts",
53
+ "test:upgrade-smoke": "node --import tsx --test test/upgrade-path.smoke.ts",
54
+ "test:pulse-smoke": "node --import tsx --test test/pulse-e2e.smoke.ts",
55
+ "test:integration:worker": "node --import tsx --test test/worker-gateway.integration.test.ts",
56
+ "verify:artifact": "node scripts/check-pack-artifact.mjs",
57
+ "verify:release": "node scripts/check-release-readiness.mjs",
58
+ "verify": "npm run check && npm run build && npm test && npm run verify:artifact && npm run verify:release"
59
+ },
60
+ "dependencies": {
61
+ "@iarna/toml": "^2.2.5",
62
+ "@modelcontextprotocol/sdk": "^1.27.1",
63
+ "@napi-rs/keyring": "^1.3.0"
64
+ },
65
+ "devDependencies": {
66
+ "@cloudflare/puppeteer": "^1.1.0",
67
+ "@cloudflare/sandbox": "^0.10.0",
68
+ "@cloudflare/workers-types": "^4.20260511.1",
69
+ "@types/node": "^24.7.2",
70
+ "tsx": "^4.21.0",
71
+ "typescript": "^5.9.3",
72
+ "wrangler": "^4.90.0"
73
+ }
74
+ }