Local Development
Build tapes from source and run it locally.
Prerequisites
- Go 1.25+
- CGO enabled with SQLite dev libraries (e.g.,
libsqlite3) - Docker — required for linting, formatting, and tests via Dagger
- Ollama — optional, for embeddings when running
tapes serve
A Nix flake carries all development dependencies. Run nix develop or enable direnv allow for automatic environment loading.
Clone and Build
1. Clone the repo
git clone https://github.com/papercomputeco/tapes.git
cd tapes 2. Build local binaries
make build-local Outputs tapes, tapesprox, and tapesapi to the ./build/ directory. Sets CGO_ENABLED=1 and GOEXPERIMENT=jsonv2 automatically.
3. Run it
./build/tapes serve 4. Install to your PATH (optional)
make install Copies binaries to your $GOBIN directory.
Demo Data
Seed demo sessions to explore the Deck UI without real data:
./build/tapes deck --demo Reseed with fresh data:
./build/tapes deck --demo --overwrite Nightly Builds
Download the latest nightly binary directly instead of building from source:
curl -O https://download.tapes.dev/nightly/darwin/arm64/tapes
chmod +x ./tapes
sudo mv ./tapes /usr/local/bin/ Available platforms:
| OS | Arch | URL |
|---|---|---|
| macOS | ARM64 | darwin/arm64/tapes |
| macOS | AMD64 | darwin/amd64/tapes |
| Linux | ARM64 | linux/arm64/tapes |
| Linux | AMD64 | linux/amd64/tapes |
Replace the path in the URL above with the row matching your platform. Base URL: https://download.tapes.dev/nightly/
Useful Commands
make build-local Build binaries with local toolchain make install Build and install to $GOBIN make unit-test Run tests via Dagger (requires Docker) make format Auto-fix lint and formatting issues make check Run golangci-lint checks make clean Remove the build directory Troubleshooting
SQLite Errors
Verify SQLite dev libraries are installed and CGO_ENABLED=1 is set. make build-local handles this automatically.
Merkle Hashing Failures
tapes requires GOEXPERIMENT=jsonv2. The Makefile sets this for you. If building manually, include it:
CGO_ENABLED=1 GOEXPERIMENT=jsonv2 go build ./cli/tapes Dagger Commands Failing
make format, make check, and make unit-test run through Dagger and require Docker to be running.