Create the mind.
Make or choose the Letta, OpenClaw or Hermes agent that will inhabit the companion. Give it the personality and boundaries you want.
Use this same gentle bridge for the dedicated Connected Nest or Roam Free’s optional Mind. A live agent can notice care, answer interactions and send small heartbeats while the Nest is open.
There is a general method, but not one universal agent login. The included Lochan Relay speaks one safe Nest language, then translates it for Letta, OpenClaw or Hermes.
Sends the interaction and only the care, weather, game or memory details you permit.
Checks the pairing phrase and keeps the provider credential private.
Returns only dialogue, pose, mood, activity, memory and heartbeat timing.
You only do the provider-specific middle part once. After that, pairing inside either edition takes two small fields.
Make or choose the Letta, OpenClaw or Hermes agent that will inhabit the companion. Give it the personality and boundaries you want.
Copy connected-relay/.env.example to connected-relay/.env. Choose a long private pairing phrase and enter the exact web address where your Nest lives.
Use the matching tab below. Provider credentials go in the relay’s private .env file—never into the Nest.
For a phone to reach a relay on your computer, publish only the relay with a named Cloudflare Tunnel. A Quick Tunnel is fine for a short test.
Open Connected → Mind, or Roam Free → Mind → Setup and enable an agent mind. Choose the provider, paste the HTTPS relay address ending in /agent/message, add the same pairing phrase, save, then send a test heartbeat.
Keep local gateways on localhost. Revoke and replace a pairing phrase if it is shared. Check the heartbeat ledger to see exactly when the agent answered.
The tabs change only the agent-facing half. The Nest always receives the same narrow reply.
The smoothest cloud-first route. Create or choose an agent, collect its Agent ID and an API key, then let the relay call Letta’s messages API.
FABLE_PROVIDER=letta FABLE_PAIRING_CODE=your-long-private-phrase NEST_ORIGIN=https://your-fable-nest.pages.dev LETTA_API_KEY=your-letta-api-key LETTA_AGENT_ID=your-agent-id LETTA_BASE_URL=https://api.letta.com
npm run relay
Copy only the text inside each dark box—no quotation marks or formatting symbols.
A strong local-agent route. Enable its OpenAI-compatible chat endpoint, keep the gateway on localhost, and let the relay be the only public doorway.
{
"gateway": {
"http": {
"endpoints": {
"chatCompletions": { "enabled": true }
}
}
}
}FABLE_PROVIDER=openclaw FABLE_PAIRING_CODE=your-long-private-phrase NEST_ORIGIN=https://your-fable-nest.pages.dev OPENCLAW_URL=http://127.0.0.1:18789 OPENCLAW_TOKEN=your-gateway-token OPENCLAW_AGENT=default
npm run relay
For keepers already comfortable running a local agent. Hermes has an OpenAI-compatible API server, so the Lochan Relay can use the same safe pattern without teaching the Nest a new language.
API_SERVER_ENABLED=true API_SERVER_KEY=your-strong-hermes-key
FABLE_PROVIDER=hermes FABLE_PAIRING_CODE=your-long-private-phrase NEST_ORIGIN=https://your-fable-nest.pages.dev HERMES_URL=http://127.0.0.1:8642 HERMES_API_KEY=your-strong-hermes-key HERMES_MODEL=hermes-agent
hermes gateway npm run relay
For a quick test, Cloudflare can create a temporary address. For day-to-day use, make a named tunnel with a fixed hostname and route it to http://127.0.0.1:8788.
cloudflared tunnel --url http://127.0.0.1:8788
Quick Tunnel addresses change when restarted. A named tunnel is the suitable long-term route.
In Roam, first open Setup and enable the agent Mind.
Connection: choose your provider
Secure relay address:
Pairing code: the same private phrase from .env
Save, then open Privacy and send a test heartbeat. The reply should appear in the companion’s dialogue and the activity ledger.