Spynel is distributed through the unscoped npm package on Linux and macOS. Both amd64 and arm64 are supported; Windows distribution is temporarily stubbed and fails before downloading an artifact.
Node.js 18 or newer is required. From the directory you want to initialize as a Spynel workspace, run:
npm install -g spynel
spynelThe npm launcher downloads the checksummed native archive for the current platform and keeps the speech runtime libraries beside the executable. On first start in a directory without .spynel/config.yaml, choose Initialize Spynel. Spynel creates the private workspace state under that directory's fixed .spynel/ folder and continues to setup or chat.
If that directory is nested below an initialized workspace, bare interactive spynel pauses before starting any workspace owner. The startup screen offers Use parent workspace (the default), Initialize here, or Exit. Using the parent changes the process working directory to its root; initializing creates a distinct local .spynel; exiting, Escape, and Ctrl+C leave both locations unchanged. Explicit --config commands, spynel serve, and other automation retain deterministic ancestor discovery and never wait for this choice.
Explicit initialization is also available:
spynel init --dir /path/to/workspaceInteractive init continues into the application. Automation can initialize without starting it:
spynel init --no-start --dir /path/to/workspaceSpynel detects supported coding harnesses. If none is available, setup shows installation guidance; authentication remains the responsibility of the selected harness. Run spynel doctor after setup to check the configured environment. See configuration and harness compatibility for the supported profiles and exact settings.
The development helper can download a pinned Go toolchain into the ignored, disposable repository-level .tmp-toolchains/ directory when Go is unavailable:
git clone https://github.com/agent0ai/spynel.git
cd spynel
./scripts/dev.sh buildRun the resulting binary from a separate directory so the repository itself is not initialized as the test workspace:
spynel_source="$(pwd)"
spynel_playground="${TMPDIR:-/tmp}/spynel-playground"
mkdir -p "$spynel_playground"
cd "$spynel_playground"
"$spynel_source/.tmp-bin/spynel"To install the development executable under your user account:
./scripts/install-dev.sh
spynel versionThe installer defaults to ~/.local/bin, replaces only its spynel file, and prints PATH guidance when necessary. Use SPYNEL_DEV_BIN_DIR=/absolute/bin or --bin-dir /absolute/bin to choose another destination.
Run the repository checks relevant to a complete local change:
./scripts/dev.sh test
./scripts/smoke.sh
npm run test:npmRelease packaging has additional native-archive checks documented in releasing. For non-visual operation, named conversations, streaming, and automation output, continue with the plain CLI guide.