Skip to content

Releases: 0Chencc/clawgod

ClawGod v1.1.9

30 May 16:42

Choose a tag to compare

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 | bash

Windows (PowerShell):

irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 | iex

Full changelog: v1.1.8...v1.1.9

ClawGod v1.1.8

28 May 18:06

Choose a tag to compare

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 | bash

Windows (PowerShell):

irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 | iex

Full changelog: v1.1.7...v1.1.8

ClawGod v1.1.7

20 May 08:59
2b88ddf

Choose a tag to compare

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 | bash

Windows (PowerShell):

irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 | iex

Full changelog: v1.1.6...v1.1.7

ClawGod v1.1.6

17 May 10:57

Choose a tag to compare

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 | bash

Windows (PowerShell):

irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 | iex

Full changelog: v1.1.5...v1.1.6

ClawGod v1.1.5

12 May 14:52

Choose a tag to compare

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 | bash

Windows (PowerShell):

irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 | iex

Full changelog: v1.1.4...v1.1.5

ClawGod v1.1.4

09 May 15:34

Choose a tag to compare

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 | bash

Windows (PowerShell):

irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 | iex

Full changelog: v1.1.3...v1.1.4

ClawGod v1.1.3

29 Apr 07:58

Choose a tag to compare

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 | bash

Windows (PowerShell):

irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 | iex

Full changelog: v1.1.2...v1.1.3

ClawGod v1.1.2

29 Apr 07:48

Choose a tag to compare

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 update flow + add Claude-tested version badge (a402bd4)

Install

macOS / Linux:

curl -fsSL https://github.com/0Chencc/clawgod/releases/latest/download/install.sh | bash

Windows (PowerShell):

irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 | iex

Full changelog: v1.1.1...v1.1.2

ClawGod v1.1.1

28 Apr 09:05

Choose a tag to compare

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/bun with 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 of claude --version blew up with TypeError: 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 update wrote the new binary somewhere outside ~/.local/share/claude/versions/, reported Successfully updated from 2.1.119 to 2.1.121, and then claude --version showed 2.1.119. clawgod's drift detection scanned versions/ (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 -UseBasicParsing returns byte[] for .Content on PS 5.1 (returns string on PS 7), so iex (iwr ...).Content throws Cannot convert System.Byte[] to System.String. Switched to Invoke-RestMethod (irm), which returns string in both versions.
  • PS 5.1's iwr reads only the IE proxy settings — not HTTPS_PROXY / HTTP_PROXY env. 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 out claude update, they become write-once: pick from them and you're frozen on first-install version forever.
  • claude.orig / claude.orig.exe backups — they're a frozen snapshot from initial install, kept so --uninstall can 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 25044012815 on a fresh ubuntu-latest against v1.1.1's install.sh: 24 patches applied / 0 failed against Anthropic v2.1.121, sanity check passes, claude --version prints 2.1.121 (Claude Code) exit 0.
  • Local macOS arm64: clean re-install, sanity check passes, no drift / re-patch logs, claude --version is a single line.
  • Windows arm64 (user reproduction with pwsh.exe + scoop bun 1.3.13): pre-fix claude update left the user pinned to 2.1.119 with no error; post-fix .\install.ps1 reaches 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 | bash

Windows (PowerShell):

irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 | iex

Existing 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

28 Apr 07:38

Choose a tag to compare

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_root returns 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 to errexit. 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 || true and 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 trips errexit. Compounded by Ubuntu 25.04 minimal images no longer shipping which at 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=true plus actions/setup-node@v4 (node-version: 24) pin everything — including JS-based actions like actions/checkout — to Node 24, ahead of GitHub forcing the switch on 2026-06-02.
  • oven-sh/setup-bun@v2 with bun-version: canary replaces the curl install + bun upgrade --canary dance. 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@v4 against ~/.npm lets npm pack reuse the ~80 MB claude-code-<plat> tarball when @latest hasn'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 25039987442 on a fresh ubuntu-latest: install.sh reports 23 patches applied / 0 failed against Anthropic v2.1.121, claude --version prints 2.1.121 (Claude Code) exit 0, total job time 36s.
  • Local macOS arm64 with existing ~/.local/share/claude/versions/2.1.121: install.sh patches cleanly, claude --version boots 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 | bash

Windows (PowerShell):

irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 | iex

Full changelog: v1.0.9...v1.1.0