Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Bump or upgrade the pinned versions of Helmor's bundled agent CLIs, SDKs, and supporting binaries — Claude Code + claude-agent-sdk (lockstep), Codex, Cursor SDK, OpenCode, Kimi, Pi, and gh / glab / cloudflared / llama.cpp / Node. Encodes exactly which files to edit (`sidecar/package.json`, `sidecar/scripts/vendor-platform.ts`), how to source each version and compute its SHA256, the Claude SDK↔CLI lockstep rule, npm dist-tags caveats (latest vs next vs stable), the cross-arch (arm64+x64) SHA requ
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 237% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 81% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 76% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 10% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 11% | 0% |
Standardized procedure for upgrading the third-party agent CLIs, SDKs, and helper binaries that Helmor pins and bundles. Goal: a correct, verified bump with no guesswork about where versions live, how to source each SHA256, or what to run before declaring it done.
Every bundled version is pinned in one (or both) of these files:
sidecar/package.json — npm dependencies. Covers SDKs (imported in TS) and thenpm-distributed CLIs whose native binary is staged from node_modules (@anthropic-ai/claude-code, @openai/codex, opencode-ai).
sidecar/scripts/vendor-platform.ts — version constants + per-version SHA256 tablesfor every staged binary. Source of truth for what gets bundled into the release.
sidecar/scripts/stage-vendor.ts — staging logic. Only edit it when a vendor's archivelayout changes (rare; see codex/cursor notes in references/vendors.md).
| Class | Vendors | What to edit | SHA256? | |---|---|---|---| | A. npm SDK only | @anthropic-ai/claude-agent-sdk, @cursor/sdk, @opencode-ai/sdk, @earendil-works/pi-* | package.json line | No — plain npm dep | | B. npm-distributed staged binary | claude-code, codex, opencode | package.json line + SHA256 table key in vendor-platform.ts | Yes — from npm tarball | | C. GitHub-release staged binary | kimi, gh, glab, cloudflared, llama.cpp, node | <NAME>_VERSION const + SHA256 table in vendor-platform.ts (NOT in package.json) | Yes — source varies |
Per-vendor exact pin location, SHA256 source, and gotchas live in references/vendors.md — read the relevant section before editing.
references/vendors.md for its class,pin location, SHA source, and gotchas.
bun -e 'console.log((await (await fetch("https://registry.npmjs.org/<pkg>")).json())["dist-tags"])'Target latest (the stable channel). next is a prerelease — do not pin it unless the user explicitly asks. claude-code also publishes a conservative stable tag that lags (e.g. 2.1.179); Helmor tracks latest, not stable.
https://api.github.com/repos/<owner>/<repo>/releases).package.json and/or the _VERSION const). Apply the Claude lockstep ruleand any per-vendor gotcha from the reference.
cd sidecar && bun install — pulls the new versions. Sanity-check: resolved versions arecorrect, any removed deps dropped from bun.lock, transitive deps you rely on are still present.
scripts/npm_vendor_sha.sh for B; see the referencefor C. Both arm64 and x64 are mandatory (see Critical rules).
/helmor-release skill to draftthe changeset (and an in-app announcement if the bump warrants one). Don't skip this — a vendor bump is a user-visible change and needs a changeset. A routine bundled-agent refresh is typically a patch changeset with no announcement; the body should name the user-visible change (which agents moved to latest), not the internal cleanup (Pi removal, pin tidy-ups, doc fixes).
touched, and the changeset created. Leave commit / PR to the user unless asked.
@anthropic-ai/claude-agent-sdk@0.3.X and @anthropic-ai/claude-code@2.1.Xshare patch X and ship together — always bump both to the same X. Verify: the SDK's node_modules/@anthropic-ai/claude-agent-sdk/package.json carries claudeCodeVersion: "2.1.X". Only claude-code (the staged binary) needs a SHA256 entry; the agent-sdk is a plain npm dep.
arm64 and x64.CI cross-builds the x86_64 bundle on an arm64 runner. On a native-arch host the build uses node_modules directly and does not verify the SHA — so a wrong/missing x64 entry passes locally but breaks CI. Always compute both from the tarballs.
latest at bump time even if you "just looked" — a newer patch canbe promoted from next to latest within hours.
version-keyed, so old keys coexist harmlessly). Add the new key; keep the prior one. If you are superseding an uncommitted entry you added this session, replace it (don't stack) for a clean diff.
codex-package.json descriptor; after abump, diff it — a layoutVersion change or new field means stage-vendor.ts needs review. See references/vendors.md for codex, cursor (Node engines floor + phantom dep), and kimi (ACP protocol version) specifics.
bashcd sidecar && bun install # 1. installs targets; confirm versions + dropped deps in bun.lock cd sidecar && bun run typecheck # 2. catches SDK API breaks (removed/renamed exports) — main breaking-change detector cd sidecar && bun test # 3. sidecar unit tests # 4. MANDATORY after ANY agent CLI/SDK bump — validates the stdout event-shape contract the Rust pipeline depends on: cd src-tauri && cargo test --test pipeline_scenarios --test pipeline_fixtures --test pipeline_streams cd sidecar && bun run build # 5. full staging + compile; a wrong SHA256 hard-fails here (downloads + verifies kimi / cross-arch)
What each gate proves:
new event shapes from a newer binary. For the latter, read the upstream changelog (focus on the stdout event JSON: codex item/,turn/,thread/ methods; claude SDKMessage/stream blocks; opencode message.part; kimi ACP session/update) and capture fresh fixtures if the shape moved.
Before pinning, read the upstream changelog/release notes across the current→target window. Most agent-CLI patch bumps are additive; the risks that matter for Helmor are (a) SDK export/type changes (typecheck catches these) and (b) stdout event-shape changes (the Rust pipeline contract). Tag each notable change affects Helmor or no impact with reasoning, and surface it before bumping.
scripts/npm_vendor_sha.sh <claude-code|codex|opencode> <version> — downloads the darwinarm64 + x64 npm tarballs and prints their SHA256, ready to paste into the vendor-platform.ts table. (Class B only. Class A SDKs need no SHA; class C sources differ — see the reference.)
references/vendors.md — exhaustive per-vendor map: integration mechanism, exact pinlocation, SHA256 source/recipe, gotchas, and post-bump steps.
Other measured skills in the registry, with their headline benchmark lift.