Get Nuthatch running.

Embedded mode is a single static binary with no external services. Pick whichever route you trust. Every one lands you at the same place: nuthatch init, then nuthatch dev.

v2.0.0 is out. Tenancy moved into the runtime: one nuthatch dev, and the directory decides whether it runs one nest or many. Nest data is keyed by content address, so two tenants mounting the same nest share one dataset and it is never indexed twice, and a cosmetic edit adopts the existing data instead of re-backfilling. Plus a query allowlist for public endpoints - on top of the delightful core and agent-grade MCP. 2.0 is the one release that moves data on disk, and it ships the command that does it: nuthatch migrate moves files and rewrites a config, and never re-indexes - 0.259s on a real two-nest deployment. Read the upgrade notes first. Prebuilt binaries ship for macOS (Apple Silicon) and Linux x86_64. Nuthatch follows semantic versioning on the 2.x line under a published stability contract - see also the roadmap. A Homebrew tap, an OCI image, and detached release signatures are still on the way; other platforms build from source with cargo for now.

Shell script

Detects your platform, downloads the matching static binary from the latest GitHub release, verifies its SHA-256 checksum, and puts it on your PATH. Covers macOS Apple Silicon and Linux x86_64; other targets fall back to cargo.

curl -fsSL https://nuthatch-indexer.com/install.sh | sh

Piping to a shell asks for trust. Read it first: the script is short and on GitHub, or download it, read it, then run it.

Cargo

If you have a Rust toolchain (1.95 or newer), build from source straight from the repo. No prebuilt binary in the trust path.

cargo install --git https://github.com/nightswatchhq/nuthatch nuthatch

Or grab a tarball and its .sha256 yourself from the latest GitHub release.

Homebrew planned

macOS and Linuxbrew, once a tap is published.

brew install nuthatch

Docker

Embedded mode needs no Docker at all - that is rather the point. Images are published for anyone who wants one, and for scaled mode, where Postgres replaces the embedded hot store across a fleet.

docker run --rm -v $PWD/nest:/nest ghcr.io/nightswatchhq/nuthatch:latest dev --dir /nest

:latest is the embedded build. :2.0.0-scaled carries the Postgres driver and the worker, control and serve --hot-store commands. The compose files live in the repo.

First run

Point it at a contract and go. Public RPC defaults; no key required.

nuthatch init 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 --chain mainnet
nuthatch dev

init resolves each contract's ABI (proxies included), scaffolds a nest, and writes a schema.json, an llms.txt, and a Claude Code skill. Pass several addresses to index a multi-contract nest, and --chain arbitrum-one or --chain base for the L2s. dev follows the tip and serves /tables, /table/{name}, read-only /sql, balances, /metrics, and MCP on one local endpoint.


Verify what you downloaded

Every release binary ships with a SHA-256 checksum file. The shell script checks the sum for you; do it yourself for the manual download.

sha256sum -c nuthatch-<target>.tar.gz.sha256
Detached signatures planned

Releases ship checksums but not yet detached signatures. Minisign and cosign signing, with a published key, land with the remaining release engineering - see the roadmap. Until then, verify the checksum.