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:messagescope when you connect an MCP client. Approve onlyagents:readand 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.