Installer internals
Clawdia ships two installer scripts (served fromclawdia.cc):
https://clawdia.cc/install.sh— “recommended” installer (global npm install by default; can also install from a GitHub checkout)https://clawdia.cc/install-cli.sh— non-root-friendly CLI installer (installs into a prefix with its own Node)https://clawdia.cc/install.ps1— Windows PowerShell installer (npm by default; optional git install)
clawdia is not found in a new terminal, it’s usually a Node/npm PATH issue. See: Install.
install.sh (recommended)
What it does (high level):- Detect OS (macOS / Linux / WSL).
- Ensure Node.js 22+ (macOS via Homebrew; Linux via NodeSource).
- Choose install method:
npm(default):npm install -g clawdia@latestgit: clone/build a source checkout and install a wrapper script
- On Linux: avoid global npm permission errors by switching npm’s prefix to
~/.npm-globalwhen needed. - If upgrading an existing install: runs
clawdia doctor --non-interactive(best effort). - For git installs: runs
clawdia doctor --non-interactiveafter install/update (best effort). - Mitigates
sharpnative install gotchas by defaultingSHARP_IGNORE_GLOBAL_LIBVIPS=1(avoids building against system libvips).
sharp to link against a globally-installed libvips (or you’re debugging), set:
Discoverability / “git install” prompt
If you run the installer while already inside a Clawdia source checkout (detected viapackage.json + pnpm-workspace.yaml), it prompts:
- update and use this checkout (
git) - or migrate to the global npm install (
npm)
--no-prompt), you must pass --install-method git|npm (or set CLAWDIA_INSTALL_METHOD), otherwise the script exits with code 2.
Why Git is needed
Git is required for the--install-method git path (clone / pull).
For npm installs, Git is usually not required, but some environments still end up needing it (e.g. when a package or dependency is fetched via a git URL). The installer currently ensures Git is present to avoid spawn git ENOENT surprises on fresh distros.
Why npm hits EACCES on fresh Linux
On some Linux setups (especially after installing Node via the system package manager or NodeSource), npm’s global prefix points at a root-owned location. Then npm install -g ... fails with EACCES / mkdir permission errors.
install.sh mitigates this by switching the prefix to:
~/.npm-global(and adding it toPATHin~/.bashrc/~/.zshrcwhen present)
install-cli.sh (non-root CLI installer)
This script installsclawdia into a prefix (default: ~/.clawdia) and also installs a dedicated Node runtime under that prefix, so it can work on machines where you don’t want to touch the system Node/npm.
Help:
install.ps1 (Windows PowerShell)
What it does (high level):- Ensure Node.js 22+ (winget/Chocolatey/Scoop or manual).
- Choose install method:
npm(default):npm install -g clawdia@latestgit: clone/build a source checkout and install a wrapper script
- Runs
clawdia doctor --non-interactiveon upgrades and git installs (best effort).
CLAWDIA_INSTALL_METHOD=git|npmCLAWDIA_GIT_DIR=...
-InstallMethod git and Git is missing, the installer will print the
Git for Windows link (https://git-scm.com/download/win) and exit.
Common Windows issues:
- npm error spawn git / ENOENT: install Git for Windows and reopen PowerShell, then rerun the installer.
- “clawdia” is not recognized: your npm global bin folder is not on PATH. Most systems use
%AppData%\\npm. You can also runnpm config get prefixand add\\binto PATH, then reopen PowerShell.
