← All tutorialsSECURITY AND CONTROL

How to make a machine read-only so its agents can't be messaged

Set "enableWrites": false in connector.json, or run peerband connect --read-only. Clients can still list agents and read status and output, but send_agent_message fails with write_disabled, for you and for everyone you shared the machine with.

Two layers of consent

Sending a message needs both:

  • The client's consent. You approve the agents:message scope when you connect an MCP client. Approve only agents:read and that client can't send anything.
  • The machine's consent. Machines accept messages by default. Turn that off on the machine and no client can send, whatever it was granted.

Turn messages off on the machine

Create or edit connector.json in the PeerBand config directory (~/.config/peerband on macOS and Linux, %APPDATA%\peerband on Windows):

{
  "enableWrites": false
}

This also applies to the Relay tab. For a one-off foreground run, use peerband connect --read-only instead. peerband status and the Relay tab show which mode the machine is in.

Limit what's visible

To expose only some agents, list the Herdr workspaces they run in, or their agent IDs as list_agents reports them:

{
  "enableWrites": false,
  "allowedWorkspaces": ["docs-site"]
}

Agents outside these lists don't appear to MCP clients or in status events, and can't be read or messaged.

Questions

What error does a client get?

send_agent_message fails with write_disabled, so the client can tell the user the machine doesn't accept messages.

Does read-only hide output?

No. Read access still includes bounded recent output. Use allowedAgents and allowedWorkspaces to hide agents entirely.