claude-multi 0.5.1 → 0.5.5

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 (4) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/bun.lock +11 -15
  3. package/dist/cli.js +4741 -2402
  4. package/package.json +12 -16
package/CHANGELOG.md CHANGED
@@ -5,6 +5,31 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.5.5] - 2026-05-22
9
+
10
+ ### Added
11
+ - **Runtime detection** (`src/util/runtime.ts`): `detectPackageManager()` identifies the active package manager (bun / npm / pnpm / deno) at runtime
12
+
13
+ ### Changed
14
+ - **Cross-runtime support**: all package-manager operations (`upgradeClaudeMulti`, `getCurrentVersion`, `updateClaudeCode`) now use the detected package manager instead of hard-coding bun commands
15
+ - `getLatestVersion()` replaced `bun pm npm view` with a direct `fetch()` to the npm registry — works in any runtime
16
+ - `getDefaultBinaryPath()` selects the correct global bin directory for the active package manager on Windows (was always `%LOCALAPPDATA%\bun\bin`)
17
+ - Generated wrapper shebang changed from `#!/usr/bin/env bun` to `#!/usr/bin/env node`
18
+ - Default action (no subcommand) always launches the Ink TUI and awaits `waitUntilExit()` — the `CLAUDE_MULTI_INK=false` prompts fallback is removed
19
+ - Update check is now **opt-in**: set `CLAUDE_MULTI_UPDATE_CHECK=true` to enable; it no longer runs on every invocation
20
+ - Removed `interactive` / `i` command alias (default action covers this)
21
+
22
+ ### Fixed
23
+ - `AddInstance` provider selection: choosing "None" now correctly resets `selectedProvider` to `null` and sets `useProvider` to `false`; choosing a provider correctly sets `useProvider` to `true`
24
+ - `getCurrentVersion()` handles pnpm's array-shaped JSON response
25
+
26
+ ### CI
27
+ - Publish workflow: skip git tag creation when the tag already exists remotely
28
+ - Publish workflow: make git tagging optional via workflow input
29
+ - Switch publish workflow from bun to npm with OIDC trusted publishing (no token)
30
+ - Update Node.js to 24.x in CI and deployment workflows
31
+ - Add `ci:publish` script to trigger versioned publish from local
32
+
8
33
  ## [0.5.1] - 2026-05-22
9
34
 
10
35
  ### Changed
@@ -231,6 +256,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
231
256
  - Support for custom config and binary paths
232
257
  - Command-line interface built with Commander.js
233
258
 
259
+ [0.5.5]: https://github.com/hmziqrs/claude-multi/compare/v0.5.1...v0.5.5
260
+ [0.5.1]: https://github.com/hmziqrs/claude-multi/compare/v0.5.0...v0.5.1
234
261
  [0.5.0]: https://github.com/hmziqrs/claude-multi/compare/v0.4.4...v0.5.0
235
262
  [0.4.4]: https://github.com/hmziqrs/claude-multi/compare/v0.4.3...v0.4.4
236
263
  [0.3.0]: https://github.com/hmziqrs/claude-multi/compare/v0.2.0...v0.3.0
package/bun.lock CHANGED
@@ -4,31 +4,29 @@
4
4
  "workspaces": {
5
5
  "": {
6
6
  "name": "cc-forks",
7
- "dependencies": {
7
+ "devDependencies": {
8
8
  "@astrojs/starlight": "^0.39.2",
9
9
  "@astrojs/tailwind": "^6.0.2",
10
10
  "@inkjs/ui": "^2.0.0",
11
11
  "@tailwindcss/vite": "^4.3.0",
12
- "astro": "^6.3.3",
13
- "chalk": "^5.3.0",
14
- "commander": "^12.0.0",
15
- "ink": "^7.0.2",
16
- "prompts": "^2.4.2",
17
- "react": "^19.2.6",
18
- "tailwindcss": "^4.3.0",
19
- "three": "^0.184.0",
20
- },
21
- "devDependencies": {
22
12
  "@types/node": "^20.0.0",
23
13
  "@types/prompts": "^2.4.9",
24
14
  "@types/react": "^19.2.14",
15
+ "astro": "^6.3.3",
25
16
  "bun-types": "latest",
17
+ "chalk": "^5.3.0",
18
+ "commander": "^12.0.0",
26
19
  "execa": "^9.6.1",
20
+ "ink": "^7.0.2",
27
21
  "ink-testing-library": "^4.0.0",
28
22
  "playwright": "^1.60.0",
23
+ "prompts": "^2.4.2",
29
24
  "puppeteer": "^25.0.4",
30
25
  "puppeteer-screen-recorder": "^3.0.6",
26
+ "react": "^19.2.6",
31
27
  "react-devtools-core": "^7.0.1",
28
+ "tailwindcss": "^4.3.0",
29
+ "three": "^0.184.0",
32
30
  },
33
31
  "peerDependencies": {
34
32
  "@anthropic-ai/claude-code": ">=2.0.0",
@@ -1216,7 +1214,7 @@
1216
1214
 
1217
1215
  "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="],
1218
1216
 
1219
- "ws": ["ws@7.5.10", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ=="],
1217
+ "ws": ["ws@8.20.1", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w=="],
1220
1218
 
1221
1219
  "xxhash-wasm": ["xxhash-wasm@1.1.0", "", {}, "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA=="],
1222
1220
 
@@ -1288,8 +1286,6 @@
1288
1286
 
1289
1287
  "ink/signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="],
1290
1288
 
1291
- "ink/ws": ["ws@8.20.1", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w=="],
1292
-
1293
1289
  "is-inside-container/is-docker": ["is-docker@3.0.0", "", { "bin": { "is-docker": "cli.js" } }, "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="],
1294
1290
 
1295
1291
  "mdast-util-find-and-replace/escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="],
@@ -1298,7 +1294,7 @@
1298
1294
 
1299
1295
  "parse-entities/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="],
1300
1296
 
1301
- "puppeteer-core/ws": ["ws@8.20.1", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w=="],
1297
+ "react-devtools-core/ws": ["ws@7.5.10", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ=="],
1302
1298
 
1303
1299
  "restore-cursor/signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="],
1304
1300