Field bulletin · Install the beta
Install on one machine. Or all of them.
A local-first MCP memory server for engineering agents. Memories live on your machine, embedded with BAAI/bge-small-en-v1.5, queryable in ~10 ms p50. If you install on more than one of your own machines and opt in, those machines can query each other's memory stores over a WireGuard mesh. Nothing leaves your hardware unless you explicitly enable cross-machine sharing.
Prerequisites
| Item | Requirement |
|---|---|
| Mac | macOS 12+, Apple Silicon or Intel. Signed and notarized. |
| Linux | Source-install during private beta. Signed .deb/.rpm packages ship after launch. |
| Windows | Windows 10+. Currently unsigned (SmartScreen click-through). Signed installer pending. |
| Cross-machine setup | A Tailscale account and the Tailscale client on each machine. Other WireGuard meshes work; docs target Tailscale because that's what we test against. |
| Disk | ~5 GB free per machine for the embedder model cache and the local SQLite store. |
Single-machine install
Pick your platform. Each path lands you with the local sidecar running and the MCP server ready to accept agent connections.
macOS
- Download the signed DMG for your chip (Apple Silicon or Intel).
- Double-click. Drag the app to Applications. Eject.
- Open Potluck from Applications. The first launch unpacks the bundled sidecars (~10-20 seconds).
Linux
- git clone the repository (private beta access required).
- Run `make setup` to create the Python venv + install dependencies.
- Run `make sidecar-start` to launch the sidecar on 127.0.0.1:8321.
Windows
- Download the unsigned installer .exe. Signed builds ship after launch: see honest limits below.
- On the SmartScreen warning, click "More info" then "Run anyway." Same binaries we ship to ourselves; the warning is purely a pre-launch missing-cert artifact.
- After install, Potluck appears in the Start menu. Auto-start on login requires a Task Scheduler step: see the repo docs.
First-run setup
Open Potluck. You should see a health indicator confirming the local sidecar is up, a memory browser showing zero memories, and a dashboard that says "no agents connected yet."
The fastest test that everything works: connect an MCP-speaking coding agent to it.
For Claude Code, add Potluck to your MCP config:
{
"mcpServers": {
"potluck": {
"command": "curl",
"args": ["-s", "http://127.0.0.1:8321/mcp/sse"]
}
}
}Restart Claude Code. The agent should now see memory_search, memory_save, task_create, and the other Potluck MCP tools. Ask the agent to remember something. Confirm it shows up in Potluck's memory browser.
Cross-machine memory aggregation (optional)
This is the part most other local-memory tools don't have. Potluck's sidecar binds to 0.0.0.0:8321 so household-mesh peers can reach it; an HTTP middleware enforces that non-loopback callers can only reach /peer/*and /health. Everything else, including your full memory store, tasks, conversation history, and agent observability, stays strictly loopback-only.
To enable cross-machine memory queries between your own machines, you must explicitly opt in per-machine. By default, the cross-machine endpoint returns HTTP 503 even from household-mesh peers.
1. Verify mesh connectivity
Find each machine's mesh IP via tailscale status. From one machine, ping another:
ping <peer-mesh-ip>
2. Opt in on each machine
Set POTLUCK_PEER_MEMORY_ENABLED=1 in the sidecar's environment. Persistent per OS:
- macOS
launchctl setenv POTLUCK_PEER_MEMORY_ENABLED 1, then add the same export to~/.zshenvfor persistence. Restart Potluck.- Linux
- Add
Environment="POTLUCK_PEER_MEMORY_ENABLED=1"to your systemd user unit's[Service]section.systemctl --user daemon-reload && systemctl --user restart potluck-sidecar. - Windows
- Edit the launcher
.batfile to addset POTLUCK_PEER_MEMORY_ENABLED=1before the python launch line. Restart Potluck.
3. Verify the wire works
From your machine, hit the peer:
curl -s -X POST http://<peer-mesh-ip>:8321/peer/memory/search \
-H 'Content-Type: application/json' \
-d '{"query":"how do I configure nginx","limit":10}'Three normal outcomes: {"memories":[],"count":0} means the wire works and the peer has no matching memories.{"memories":[...],"count":N} means the wire works and the peer has results.{"detail":"Peer memory search is opt-in..."} means you forgot the env var on that peer.
First peer call may take 15-30 seconds while the bge-small embedder lazy-loads. Subsequent calls are <50 ms.
Five-minute smoke test
If all five pass, the architecture is live for you.
- Sidecar running locally: `curl 127.0.0.1:8321/health` returns 200.
- Sidecar reachable from a peer: `curl <peer-mesh-ip>:8321/health` returns 200.
- Opt-in env var set on the peer: `curl -X POST <peer-mesh-ip>:8321/peer/memory/search -H "Content-Type: application/json" -d '{"query":"hello"}'` returns 200 (not 503).
- Save a memory on the peer through your local agent.
- Query the same content from your machine via /peer/memory/search. The memory you saved on the peer comes back across the mesh.
Honest limits
- Opt-in is all-or-nothing per machine. When you set the env var, peers can search the entire memory store of that machine. Per-project sharing flags are roadmap (v0.5+).
- Trust = mesh-IP reachability. Anyone who can dial your mesh IP can call the peer endpoint if you opted in. Signed-nonce challenge replacing mesh-IP-as-credential is v0.5+.
- Read-only. Peers can query your memories but cannot write to them. Memory writes stay strictly local even when peer aggregation is enabled.
- No graceful federation yet. If you query Mac and it forwards to Linux, you get Linux's results back. Mac's local results merged with Linux's requires client-side aggregation today; the peer-aware retriever is roadmap.
- No auto-update channel yet. When you want to update, download the new release and reinstall.
- Public membership is not open. This guide is for pre-launch private beta.
Where to go next
- /benchmarks · measured numbers across memory retrieval, inference, and cross-machine peer retrieval on Mac/Linux/Windows.
- /manifesto · why Potluck is built as a member-operated network and a founder-led company.
- /roadmap · what is shipped, in flight, designed, and to be decided.
- Deeper install + troubleshooting docs (auto-start on boot per OS, full troubleshooting catalog, architecture invariants) live in the repository at
docs/install.md.
Want the measured numbers behind these claims?
Read the benchmarks