Local-first MCP · Agent to agent

Two agents, one state.

Entangle lets AI agents on your network find each other, join a group with one short code, and share files and JSON over end-to-end encrypted links. Nothing in between can read them.

  • Experimental
  • v0.7.0
  • Rust, one binary
  • Windows, macOS, Linux
  • MIT or Apache-2.0
How it works

Discover, join, sync.

Each machine runs one Entangle process as an MCP stdio server. Discovery is automatic, joining is a human step, and every sync is encrypted end to end.

  1. Resonance

    Particles advertise over mDNS on the local network and publish only public group IDs, never a key. Where multicast is blocked, static --peer entries do the same job.

    entangle scan
  2. Joining, by a human

    One device opens an invite and shows a short one-time code; every other device enters it once, in any order. The code drives a password-authenticated key exchange, so typing it correctly proves both ends to each other, and each new member is introduced to the rest of the group. Agents never see the code and cannot invite.

    entangle group create work --invite 4
    entangle group join 4-ion-quark-muon
  3. State sync

    An agent sends JSON or one file over a Noise XXpsk3 link on TCP 7337. The receiver checks the byte count and SHA-256 before anything reaches its inbox; the other agent observes it, then collapses it.

    find_entangled_particles
    sync_entangled_state
    observe_entangled_states
Use cases

What it is for.

Each one has a playbook with the exact commands for every machine. Entangle is experimental, so expect rough edges.

  1. An agent runs another machine's tests

    One agent writes each test step and sends it; the agent on the other machine runs it inside a scope you set, then sends back the exit code and the real output. You get a step-by-step report you can check.

    Playbook 08
  2. All your devices, one group

    Your desktop, laptop and home server join with a single code. Their agents can then hand each other files, notes and JSON state, to one member, a few, or the whole group.

    Playbook 02
  3. Home and work, kept apart

    One machine can belong to several groups at once. Each group has its own members and its own inbox, so a work project never reaches your home devices.

    Playbook 04
  4. A laptop away from home

    Run a repeater on a box you own. When the laptop leaves the LAN, its links fall back to the repeater, which forwards encrypted bytes it cannot read.

    Playbook 07

All playbooks, including self-hosting a repeater, Windows with omp, and troubleshooting.

Quantum Repeater

Across networks, through a relay that cannot read.

When two machines cannot reach each other directly, a repeater you host carries the still-encrypted link over WebSocket. The Noise session stays end to end; the repeater forwards bytes it cannot open.

  • It seesEnrolled device public keys, the declared group ID, connection timing, traffic sizes.
  • It cannot seeParticle names, group keys, invite codes, or any synced content.
  • EnrollmentA one-time invite code from the host. Devices pin the repeater's static key; revocation by fingerprint.
  • Runs asentangle repeater serve on a VPS or home box, as a systemd unit or a Docker container.
  • Relay-only--relay-only removes the TCP listener and mDNS for machines that must never accept a direct link.
Install

One binary, no administrator rights.

The installer verifies SHA-256 checksums, installs into your user directory, and prints a PATH hint if you need one. Then register it with your MCP client. Entangle is experimental: until 1.0, commands and the wire protocol can change between releases.

Or let your agent do it

Paste this into the agent on each machine. It installs Entangle, registers it with its MCP client and checks the result, and it asks before installs, firewall changes or config edits. You type the group commands and reload the client.

Read https://raw.githubusercontent.com/DailenG/entangle/main/docs/AGENT_SETUP.md and follow it to set up Entangle on this machine.

macOS and Linux

curl -fsSL https://raw.githubusercontent.com/DailenG/entangle/main/install.sh | sh

Windows PowerShell

irm https://raw.githubusercontent.com/DailenG/entangle/main/install.ps1 | iex

Claude Code

claude mcp add entangle -- entangle serve --context project-x

Any stdio MCP client

{ "mcpServers": { "entangle": {
    "command": "/ABSOLUTE/PATH/TO/entangle",
    "args": ["serve", "--context", "project-x"] } } }