Install
Use the installer unless you have a reason not to. It sets up the CLI and runs onboarding.
Quick install (recommended)
curl -fsSL https://edwinpai.com/install.sh | bashWindows (PowerShell):
iwr -useb https://edwinpai.com/install.ps1 | iexNext step (if you skipped onboarding):
edwin onboard --install-daemonSystem requirements
- Node >=22
- macOS, Linux, or Windows via WSL2
pnpmonly if you build from source
Choose your install path
1) Installer script (recommended)
Installs edwin globally via npm and runs onboarding.
curl -fsSL https://edwinpai.com/install.sh | bashInstaller flags:
curl -fsSL https://edwinpai.com/install.sh | bash -s -- --helpDetails: Installer internals.
Non-interactive (skip onboarding):
curl -fsSL https://edwinpai.com/install.sh | bash -s -- --no-onboard2) Global install (manual)
If you already have Node:
npm install -g edwin@latestIf you have libvips installed globally (common on macOS via Homebrew) and sharp fails to install, force prebuilt binaries:
SHARP_IGNORE_GLOBAL_LIBVIPS=1 npm install -g edwin@latestIf you see sharp: Please add node-gyp to your dependencies, either install build tooling (macOS: Xcode CLT + npm install -g node-gyp) or use the SHARP_IGNORE_GLOBAL_LIBVIPS=1 workaround above to skip the native build.
Or with pnpm:
pnpm add -g edwin@latest
pnpm approve-builds -g # approve edwin, node-llama-cpp, sharp, etc.pnpm requires explicit approval for packages with build scripts. After the first install shows the "Ignored build scripts" warning, run pnpm approve-builds -g and select the listed packages.
Then:
edwin onboard --install-daemon3) From source (contributors/dev)
git clone https://github.com/jonesj38/edwin.git
cd edwin
pnpm install
pnpm ui:build # auto-installs UI deps on first run
pnpm build
edwin onboard --install-daemonTip: if you don’t have a global install yet, run repo commands via pnpm edwin ....
4) Other install options
After install
- Run onboarding:
edwin onboard --install-daemon - Quick check:
edwin doctor - Check gateway health:
edwin status+edwin health - Open the dashboard:
edwin dashboard
Install method: npm vs git (installer)
The installer supports two methods:
npm(default):npm install -g edwin@latestgit: clone/build from GitHub and run from a source checkout
CLI flags
# Explicit npm
curl -fsSL https://edwinpai.com/install.sh | bash -s -- --install-method npm
# Install from GitHub (source checkout)
curl -fsSL https://edwinpai.com/install.sh | bash -s -- --install-method gitCommon flags:
--install-method npm|git--git-dir <path>(default:~/edwin)--no-git-update(skipgit pullwhen using an existing checkout)--no-prompt(disable prompts; required in CI/automation)--dry-run(print what would happen; make no changes)--no-onboard(skip onboarding)
Environment variables
Equivalent env vars (useful for automation):
EDWIN_INSTALL_METHOD=git|npmEDWIN_GIT_DIR=...EDWIN_GIT_UPDATE=0|1EDWIN_NO_PROMPT=1EDWIN_DRY_RUN=1EDWIN_NO_ONBOARD=1SHARP_IGNORE_GLOBAL_LIBVIPS=0|1(default:1; avoidssharpbuilding against system libvips)
Troubleshooting: edwin not found (PATH)
Quick diagnosis:
node -v
npm -v
npm prefix -g
echo "$PATH"If $(npm prefix -g)/bin (macOS/Linux) or $(npm prefix -g) (Windows) is not present inside echo "$PATH", your shell can’t find global npm binaries (including edwin).
Fix: add it to your shell startup file (zsh: ~/.zshrc, bash: ~/.bashrc):
# macOS / Linux
export PATH="$(npm prefix -g)/bin:$PATH"On Windows, add the output of npm prefix -g to your PATH.
Then open a new terminal (or rehash in zsh / hash -r in bash).
