Getting Started
The shortest useful path is to run the deterministic developer proof. It starts the same architectural pieces used by the federated model while avoiding external LLM credentials.
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-lockfileVerify the repository
Section titled “Verify the repository”pnpm verifyThis runs lint, typecheck, and tests for the runtime repository.
Start the relay
Section titled “Start the relay”docker compose -f deploy/federated-dev/compose/docker-compose.federated-dev.yml up -d strfryThe default relay URL is ws://localhost:7777.
Run the user-node proof
Section titled “Run the user-node proof”pnpm ops:demo-user-node-runtime:fake-opencodeThis exercises the user-node runtime, signed user actions, Host projection, and an agent path backed by deterministic fake OpenCode responses.
Run the process-runner proof
Section titled “Run the process-runner proof”pnpm ops:smoke-federated-process-runner:fake-opencodeThis exercises runner registration, assignment, agent execution through the process-runner path, observation, and artifact flow without requiring real LLM credentials.
Optional Studio inspection
Section titled “Optional Studio inspection”Use the Studio-enabled user-node demo when you want a browser surface left running for inspection:
pnpm ops:demo-user-node-runtime:studioThe operator-facing Studio and the CLI both read Host-owned state. A human node’s participant interface is a separate runtime surface, not the admin control room.
Real provider testing
Section titled “Real provider testing”Real OpenCode/provider credentials and real pull request workflows are manual operator validation steps. The deterministic proof is the public automated baseline; provider failures should be captured and hardened separately.
When you intentionally want to wipe the developer profile, stop the stack and remove volumes:
docker compose -f deploy/federated-dev/compose/docker-compose.federated-dev.yml down --volumes