Releases: 0Chencc/clawgod
ClawGod v1.1.9
Changes
- fix(patcher): Auto-mode unlock regex stale on claude 2.1.158 (28bdfe6)
Install
macOS / Linux:
curl -fsSL https://github.com/0Chencc/clawgod/releases/latest/download/install.sh | bashWindows (PowerShell):
irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 | iexFull changelog: v1.1.8...v1.1.9
ClawGod v1.1.8
Changes
- fix(patcher): escape $$ in regex replacement strings (silent identifier corruption) (1f2dfde)
- fix(patcher): redirect shell-integration multitool path to claude.orig (e7d290e)
Install
macOS / Linux:
curl -fsSL https://github.com/0Chencc/clawgod/releases/latest/download/install.sh | bashWindows (PowerShell):
irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 | iexFull changelog: v1.1.7...v1.1.8
ClawGod v1.1.7
Changes
- fix(installer): resolve bun.ps1 launcher, restore install.ps1 parity (#81) (2b88ddf)
- Merge pull request #74 from shanshanerxi/docs/clawgod-handbook (d69548f)
- docs: add ClawGod Handbook — context governance reference + runnable hooks (0fdd33d)
Install
macOS / Linux:
curl -fsSL https://github.com/0Chencc/clawgod/releases/latest/download/install.sh | bashWindows (PowerShell):
irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 | iexFull changelog: v1.1.6...v1.1.7
ClawGod v1.1.6
Changes
- fix(wrapper): auto-disable attribution header on third-party endpoints (86da142)
- Update bug_report.yml (186acf9)
Install
macOS / Linux:
curl -fsSL https://github.com/0Chencc/clawgod/releases/latest/download/install.sh | bashWindows (PowerShell):
irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 | iexFull changelog: v1.1.5...v1.1.6
ClawGod v1.1.5
Changes
- fix(patcher): Auto-mode unlock regex fails on claude 2.1.139 (multi-var let) (bf3774a)
- Merge pull request #70 from keyblues/fix/windows-launcher-encoding (5e7c4a3)
- fix(installer): require path separator boundary in USERPROFILE prefix check (aafdca3)
- fix(installer): resolve garbled characters in .cmd launcher for non-ASCII Windows usernames (c493177)
Install
macOS / Linux:
curl -fsSL https://github.com/0Chencc/clawgod/releases/latest/download/install.sh | bashWindows (PowerShell):
irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 | iexFull changelog: v1.1.4...v1.1.5
ClawGod v1.1.4
Changes
- fix(installer): hard-require Bun >= 1.3.14 with pre-flight version gate (25e5315)
- docs: add Star History section to all READMEs (b5306eb)
- Merge pull request #57 from shadow1ng/main (4656eeb)
- docs: add Bun canary upgrade instructions to prerequisites and installer (0a2180c)
- docs: add Bun canary upgrade instructions to prerequisites and installer (7df994a)
Install
macOS / Linux:
curl -fsSL https://github.com/0Chencc/clawgod/releases/latest/download/install.sh | bashWindows (PowerShell):
irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 | iexFull changelog: v1.1.3...v1.1.4
ClawGod v1.1.3
Changes
- fix(installer): always pull from npm registry; drop stale local detection (00c5b89)
Install
macOS / Linux:
curl -fsSL https://github.com/0Chencc/clawgod/releases/latest/download/install.sh | bashWindows (PowerShell):
irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 | iexFull changelog: v1.1.2...v1.1.3
ClawGod v1.1.2
Changes
- fix(patcher): cautious actions regex breaks on v2.1.123 (parameterized + branched) (f5b623e)
- fix(wrapper): stop overriding CLAUDE_CONFIG_DIR; auto-migrate stray .claude.json (48f7c30)
- ci: add weekly cache-cleanup workflow (f67e895)
- fix(web): inline self-hosted fonts to eliminate first-paint flash (0c40eb5)
- refactor(web): static HTML + progressive enhancement, no first-paint flash (fb0b9d7)
- build(web): wire Vite build through to repo-root index.html (80a319a)
- feat(web): rebuild landing page on Vite + TypeScript (3229de0)
- docs: clarify
claude updateflow + add Claude-tested version badge (a402bd4)
Install
macOS / Linux:
curl -fsSL https://github.com/0Chencc/clawgod/releases/latest/download/install.sh | bashWindows (PowerShell):
irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 | iexFull changelog: v1.1.1...v1.1.2
ClawGod v1.1.1
Highlights
This release neutralizes claude update (which was actively destructive on both macOS and Windows under clawgod), strips three stale install-source paths that were pinning users to old versions, and removes cli.cjs's drift detection — all manifestations of one underlying assumption (that upstream's install/update flow would keep our world up to date) that no longer held.
claude update was breaking installs in two distinct ways
Under the clawgod launcher, upstream's detectInstallType() returns unknown because our wrapper hides cli.cjs from its path heuristics. The "unknown installation" fallback then did very different — and equally broken — things on each platform:
- macOS: extracted Anthropic's bun runtime from the new native binary and overwrote
~/.bun/bin/bunwith it (an Apr-19 mtime stable build). That silently downgraded the user's Bun, and clawgod's launcher hardcodes that path — so the next launch ofclaude --versionblew up withTypeError: Expected CommonJS module to have a function wrapper. If you weren't messing around with Bun's internals, this is a bug in Bun. The error was misleading: nothing was wrong with cli.original.cjs, it just needed Bun ≥ what it was compiled with. - Windows:
claude updatewrote the new binary somewhere outside~/.local/share/claude/versions/, reportedSuccessfully updated from 2.1.119 to 2.1.121, and thenclaude --versionshowed2.1.119. clawgod's drift detection scannedversions/(which still had only the initial 2.1.119), found nothing to update, and the upgrade was a complete no-op.
The fix patches claude update itself so it redirects into install.{sh,ps1} — the single source of truth for clawgod-aware upgrades. No more unknown fallback, no more touching ~/.bun/bin/bun. The redirect prints a 3-line banner before continuing, and the third line points at bash ~/.clawgod/install.sh --uninstall for users who'd rather drop clawgod and use vanilla claude update directly.
PowerShell 5.1's quirks needed to be accounted for in the redirect's Windows path:
Invoke-WebRequest -UseBasicParsingreturnsbyte[]for.Contenton PS 5.1 (returnsstringon PS 7), soiex (iwr ...).Contentthrows Cannot convert System.Byte[] to System.String. Switched toInvoke-RestMethod(irm), which returns string in both versions.- PS 5.1's
iwrreads only the IE proxy settings — notHTTPS_PROXY/HTTP_PROXYenv. The redirect now reads env explicitly and passes via-Proxy, working in both versions. - The PowerShell payload is shipped via
-EncodedCommand(UTF-16LE base64) to bypass CLI argument-quoting hell entirely.
Stale install-source detection removed
Three detection paths were silently keeping users pinned to whatever version they had on the day they first installed clawgod:
~/.local/share/claude/versions/and%LOCALAPPDATA%\Programs\claude-code— these only ever grow on a vanilla Claude install. With clawgod patching outclaude update, they become write-once: pick from them and you're frozen on first-install version forever.claude.orig/claude.orig.exebackups — they're a frozen snapshot from initial install, kept so--uninstallcan restore vanilla Claude. Using them as a fresh install source guarantees stale binaries.
Detection now always routes to the chain that actually carries current versions: npm-global → bun-global → npm registry fallback. The npm-registry path was already there as last-resort; it's now the default for users who don't have a recent global install.
cli.cjs's drift detection removed
The wrapper used to scan ~/.local/share/claude/versions/ on every launch and re-patch if it found a newer binary than what was stamped in .source-version. With nothing legitimately writing new versions to that directory under clawgod (Anthropic's claude update is now patched out), drift detection had nothing real to detect — but it could and did retract a fresher version that install.{sh,ps1} had just pulled from npm registry, putting users into an infinite re-patch loop on every launch. Gone.
Install-time Bun sanity check
Anthropic builds Claude with Bun's canary channel (currently 1.3.14), while bun.sh's stable still ships 1.3.13 — so a freshly-downloaded Bun fails on cli.original.cjs out of the box. Rather than letting install.{sh,ps1} complete and leaving a launcher that panics on first invocation, we now load cli.cjs --version once before writing the launcher; if Bun panics with the function-wrapper error, install fails fast with a multi-line message that names the version mismatch, points at bun upgrade --canary (which pulls from GitHub Releases — not visible on bun.sh's download page), and special-cases scoop, where the bun shim refuses self-replace and the user has to scoop uninstall bun before going via bun.sh.
Release workflow
.github/workflows/release.yml gets FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true" for parity with compat-daily.yml. Project policy: never run JS-based actions (actions/checkout, etc.) on Node 20 across any of our workflows.
Verified
- Daily CI run
25044012815on a freshubuntu-latestagainst v1.1.1's install.sh: 24 patches applied / 0 failed against Anthropic v2.1.121, sanity check passes,claude --versionprints2.1.121 (Claude Code)exit 0. - Local macOS arm64: clean re-install, sanity check passes, no drift / re-patch logs,
claude --versionis a single line. - Windows arm64 (user reproduction with
pwsh.exe+ scoop bun 1.3.13): pre-fixclaude updateleft the user pinned to 2.1.119 with no error; post-fix.\install.ps1reaches the sanity check and fails fast with the upgrade-bun guidance, exactly as designed.
Install
macOS / Linux:
curl -fsSL https://github.com/0Chencc/clawgod/releases/latest/download/install.sh | bashWindows (PowerShell):
irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 | iexExisting v1.1.0 / earlier users: the redirect lives in cli.original.cjs, which is only refreshed on the next clawgod self-install. If you're on v1.1.0 with no redirect installed yet, claude update will still take the broken upstream path one last time. Run the install one-liner above (or bash ~/.clawgod/install.sh from a clone) once — afterwards claude update will redirect into self-update for all subsequent upgrades.
Closes: #51
Full changelog: v1.1.0...v1.1.1
ClawGod v1.1.0
Highlights
This release adds a daily compatibility CI that catches upstream-Bun drift before users do, and fixes two set -e regressions in install.sh that the new CI surfaced on its very first clean-environment run.
Daily compatibility CI
.github/workflows/compat-daily.yml runs end-to-end every morning on ubuntu-latest: pulls the latest Anthropic native binary via the npm-registry fallback, runs install.sh, asserts patch.mjs reports 0 failed, and runs claude --version to make sure the launcher → wrapper → cli.original.cjs path boots without the Bun Expected CommonJS module to have a function wrapper panic that showed up when v2.1.121 pulled in a Bun 1.3.14 build.
When the run fails, an issue is auto-opened (or a comment is appended on the existing one) under the compat-broken label so we get a single deduped thread per breakage. A new Compat shields.io badge in all three READMEs links to the workflow.
A Linux failure is the strongest possible proxy for cross-platform breakage upstream, so we deliberately don't burn macOS / Windows runner minutes on the daily scout.
install.sh aborted under set -e when no Claude was preinstalled
Two distinct paths were tripping set -e on a clean machine — both shown only by the daily CI's truly empty runner; on local dev machines a leftover bun-global or ~/.local/share/claude/versions/ install kept them hidden.
scan_node_modules_rootreturns 1 on a clean miss. Both the npm-global call ([ -n "$NPM_GLOBAL" ] && scan_node_modules_root …, last command of a&&list) and the bun-global call (last command of a then-block) sat in positions where bash 5 propagates the trailing exit-1 toerrexit. The script silently bailed before reaching the npm-registry fallback — even though that fallback was the whole point of having a clean-environment install path. Both calls now|| trueand fall through.CLAUDE_BIN=$(which claude 2>/dev/null)had the same shape: under bash 5,X=$(failing-cmd)carries the command's exit code through the assignment and tripserrexit. Compounded by Ubuntu 25.04 minimal images no longer shippingwhichat all. Switched both the install-path and uninstall-path lookups to$(command -v claude 2>/dev/null || true)— POSIX builtin, robust on minimal images, and explicit about the miss being non-fatal.
CI runtime hardening
While wiring up compat-daily, the workflow itself was tightened:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=trueplusactions/setup-node@v4 (node-version: 24)pin everything — including JS-based actions likeactions/checkout— to Node 24, ahead of GitHub forcing the switch on 2026-06-02.oven-sh/setup-bun@v2withbun-version: canaryreplaces thecurl install + bun upgrade --canarydance. The action caches the canary binary by commit hash, so the same canary build is restored from cache on subsequent runs and only re-downloaded when oven-sh ships a new commit.actions/cache@v4against~/.npmletsnpm packreuse the ~80 MBclaude-code-<plat>tarball when@latesthasn't bumped, while still re-validating registry metadata on every run so we never serve a stale binary on an actual upgrade day.
Acknowledgements
Huge thanks to @shadow1ng for the suggestion that a daily CI run is the right shape for catching upstream-Bun-version drift before users have to file an issue. This release is the direct outcome of that idea — the daily scout, the two set -e regressions it surfaced on its very first clean-environment run, and the hardening that followed all trace back to it.
Verified
- Daily CI run
25039987442on a freshubuntu-latest:install.shreports 23 patches applied / 0 failed against Anthropic v2.1.121,claude --versionprints2.1.121 (Claude Code)exit 0, total job time 36s. - Local macOS arm64 with existing
~/.local/share/claude/versions/2.1.121:install.shpatches cleanly,claude --versionboots the patched cli.cjs without the CJS-wrapper panic (this exercised the local-Bun-canary upgrade path that motivated the daily CI in the first place).
Install
macOS / Linux:
curl -fsSL https://github.com/0Chencc/clawgod/releases/latest/download/install.sh | bashWindows (PowerShell):
irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 | iexFull changelog: v1.0.9...v1.1.0