Getting Started
The shortest path to understanding Entangle is to boot it. This guide takes you from a fresh clone to a running Host, runner layer, relay, git backend, Studio surface, and CLI.
Prerequisites
Section titled “Prerequisites”- Node.js 22 or newer.
- pnpm 10 or newer.
- Docker with daemon access.
- Docker Compose.
- Git.
Clone and install
Section titled “Clone and install”git clone https://github.com/entangle-run/entangle.gitcd entanglepnpm install --frozen-lockfileUse the lockfile install for a reproducible setup.
Verify the repository
Section titled “Verify the repository”pnpm verifyLint, typecheck, and tests. Run it before changing runtime contracts, deployment files, packages, or operator surfaces.
Preflight the federated dev profile
Section titled “Preflight the federated dev profile”pnpm ops:check-federated-dev:strictStrict preflight validates toolchain, Docker access, Compose configuration, required profile paths, and the runtime profile before services start.
Build the runner image
Section titled “Build the runner image”docker compose -f deploy/federated-dev/compose/docker-compose.federated-dev.yml \ --profile runner-build build runner-imageRunners join by signed handshake and the federated dev launcher boots them as Docker containers; build the image before expecting managed nodes to come up.
Boot the runtime
Section titled “Boot the runtime”docker compose -f deploy/federated-dev/compose/docker-compose.federated-dev.yml \ up --build studio host strfry giteaDefault endpoints:
- Studio:
http://localhost:3000 - Host API:
http://localhost:7071 - Gitea HTTP:
http://localhost:3001 - Gitea SSH:
ssh://localhost:2222 - Nostr relay:
ws://localhost:7777
Run the full runtime path
Section titled “Run the full runtime path”pnpm ops:smoke-federated-dev:disposable:runtimeThis is the strongest verification path. It admits a disposable package, applies a two-node graph, starts two managed runners, publishes a real NIP-59 wrapped event through the relay, runs a provider-backed turn, materializes a git artifact, retrieves it downstream by reference, and tears the profile down.
Open the Federated Preview
Section titled “Open the Federated Preview”pnpm ops:demo-federated-previewThe command leaves the profile running so you can open Studio and the CLI and inspect the same Host-owned state from both sides:
pnpm --filter @entangle/cli dev host status --summarypnpm --filter @entangle/cli dev host graph get --summarypnpm --filter @entangle/cli dev host sessions list --summarypnpm --filter @entangle/cli dev host events list --runtime-trace-only --summaryWhen you want a clean profile, stop the stack and remove volumes:
docker compose -f deploy/federated-dev/compose/docker-compose.federated-dev.yml down --volumesOnly use a destructive reset when you intentionally want to wipe Host, relay, Gitea, runner, and artifact state.