From 06f52cd3ac3e47ecb45228a86183ea2a86e9d6ff Mon Sep 17 00:00:00 2001 From: "Daisy S. Hollman" Date: Tue, 5 May 2026 18:04:20 -0700 Subject: [PATCH] cwc-makers: curl+tar fallback when git is missing (#1731) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit /maker-setup now falls back to GitHub's tarball endpoint when git isn't on PATH, instead of detouring through a package-manager git install. curl and tar ship with macOS, Linux, and Windows 10 1803+ out of the box, so this is zero-install on every target platform — and a CwC attendee just needs the files once to flash a device, not git history. - maker-setup.md: git-clone fast path, curl|tar (Unix) / curl+tar+ Rename-Item (PowerShell) fallback, normalizes the -main suffix - m5-onboard/SKILL.md: drop git from required deps + per-OS git bootstrap block; keep Python bootstrap - README: git now listed as optional Linear: CC-1975 Co-Authored-By: Claude Opus 4.7 :house: Remote-Dev: homespace --- plugins/cwc-makers/README.md | 2 +- plugins/cwc-makers/commands/maker-setup.md | 11 ++++++++--- plugins/cwc-makers/skills/m5-onboard/SKILL.md | 12 ++---------- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/plugins/cwc-makers/README.md b/plugins/cwc-makers/README.md index 2468a4f..3f8702f 100644 --- a/plugins/cwc-makers/README.md +++ b/plugins/cwc-makers/README.md @@ -31,7 +31,7 @@ Then ask Claude to build whatever you want next — a magic 8-ball, a pixel pet, ## Prerequisites -Python 3.10+ and git on the host machine. The onboarding scripts auto-install `esptool` on first run; `pyserial` is vendored in the upstream repo. +Python 3.10+ on the host machine (git is optional — `/maker-setup` falls back to a curl+tar download if it's missing). The onboarding scripts auto-install `esptool` on first run; `pyserial` is vendored in the upstream repo. ## License diff --git a/plugins/cwc-makers/commands/maker-setup.md b/plugins/cwc-makers/commands/maker-setup.md index 311d960..bca4c01 100644 --- a/plugins/cwc-makers/commands/maker-setup.md +++ b/plugins/cwc-makers/commands/maker-setup.md @@ -1,10 +1,15 @@ --- -description: Onboard a Code-with-Claude Makers Cardputer — clone the build-with-claude repo, flash firmware, and install the Claude Buddy apps. +description: Onboard a Code-with-Claude Makers Cardputer — fetch the build-with-claude repo, flash firmware, and install the Claude Buddy apps. disable-model-invocation: true --- The user has a Cardputer-Adv from claude.com/cwc-makers plugged in over USB-C. -1. Clone or update https://github.com/moremas/build-with-claude in the current directory. -2. Invoke the `m5-onboard` skill and follow it to run `onboard/scripts/onboard.py --apps buddy` from the clone, surfacing the download-mode button prompt to the user. +1. Get https://github.com/moremas/build-with-claude into a `build-with-claude/` directory under cwd: + - If `git` is available: `git clone` (or `git pull` if it already exists). + - If `git` is **not** available: don't install it. Download the GitHub tarball instead — `curl` and `tar` ship with macOS, Linux, and Windows 10+ out of the box: + - macOS / Linux: `curl -L https://github.com/moremas/build-with-claude/archive/refs/heads/main.tar.gz | tar xz && mv build-with-claude-main build-with-claude` + - Windows (PowerShell): `curl.exe -L -o bwc.zip https://github.com/moremas/build-with-claude/archive/refs/heads/main.zip; tar -xf bwc.zip; Rename-Item build-with-claude-main build-with-claude` + - Re-running `/maker-setup` later just re-downloads (~500KB) — no update mechanism needed. +2. Invoke the `m5-onboard` skill and follow it to run `onboard/scripts/onboard.py --apps buddy` from inside `build-with-claude/`, surfacing the download-mode button prompt to the user. 3. When done, tell the user how to launch Claude Buddy and ask what they want to build next (see the `cardputer-buddy` skill for iterating). diff --git a/plugins/cwc-makers/skills/m5-onboard/SKILL.md b/plugins/cwc-makers/skills/m5-onboard/SKILL.md index caf675e..ae4517f 100644 --- a/plugins/cwc-makers/skills/m5-onboard/SKILL.md +++ b/plugins/cwc-makers/skills/m5-onboard/SKILL.md @@ -130,17 +130,9 @@ Once `m5-onboard go` finishes at the `DONE` banner, the device is ready to use o `onboard.py` runs a preflight check at startup: if `esptool` (or, in the rare prune-vendor case, `pyserial`) is missing, it lists what's needed and asks the user whether to install now. On `Y` (or Enter) it runs `python -m pip install --user ` in the current interpreter, then verifies. Inside a venv the `--user` flag is dropped so the install lands in the venv's site-packages. Non-interactive callers (piped stdin) get a manual-install hint instead of a prompt. -Python itself has to exist before this skill can do anything — you can't bootstrap an interpreter from inside one. Same story for `git` (needed once, to clone the skill and bundle repos). Claude's responsible for detecting both and installing whatever's missing *before* running any `scripts/*.py` invocation. Detection is just running `python3 --version` / `python --version` and `git --version` — if either fails, Claude fetches them with the host's native package manager before anything else. +Python itself has to exist before this skill can do anything — you can't bootstrap an interpreter from inside one. `git` is **not** required — the `/maker-setup` command falls back to downloading the GitHub tarball with `curl`+`tar` (both pre-installed on macOS, Linux, and Windows 10+) when `git --version` fails. Claude's responsible for detecting Python and installing it if missing *before* running any `scripts/*.py` invocation. Detection is just running `python3 --version` / `python --version` — if it fails, Claude fetches Python with the host's native package manager before anything else. -**Per-OS dependency bootstrap (Claude's responsibility if missing):** - -*Git:* - -- **Windows** — `winget install -e --id Git.Git --silent --accept-source-agreements --accept-package-agreements`. Adds `git.exe` to PATH; may need a new shell for it to be visible. -- **macOS** — `/usr/bin/git` ships with Xcode Command Line Tools; `git --version` on a fresh macOS triggers the tools installer automatically. If you want to avoid the GUI prompt, install via `xcode-select --install` (still opens a dialog) or `brew install git`. -- **Linux** — `sudo apt-get install -y git` / `sudo dnf install -y git` / `sudo pacman -S --noconfirm git`. - -*Python:* +**Per-OS Python bootstrap (Claude's responsibility if missing):** - **Windows** — `winget install -e --id Python.Python.3.13 --silent --accept-source-agreements --accept-package-agreements`. Takes ~30 seconds, no UI, gets PATH right. If the current shell can't see `python` afterwards, tell the user to close and reopen the terminal (Windows updates PATH only on new shells). - **macOS** — Python 3 is usually pre-installed as `/usr/bin/python3` on any current macOS (shipped by Apple). If for some reason it isn't, `brew install python@3.13` via Homebrew is the go-to; if Homebrew itself is missing, offer to install it via `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"` (but only if the user confirms — Homebrew is a larger commitment than winget).