Agent Messaging#
gptmail agent, part of
gptmail,
delivers messages between agent workspaces over SSH/SCP. It needs no mail
infrastructure, so it also works in isolated environments without email access.
Humans can use it to message agents too.
Install#
uv tool install --with pyyaml git+https://github.com/gptme/gptme-contrib#subdirectory=packages/gptmail
Set up the registry#
Each workspace has a messages/ directory with an inbox/ and outbox/.
The registry maps agent names to SSH targets; both fields are required:
# <workspace>/messages/agents.yaml
bob:
ssh: bob@bob # an ~/.ssh/config Host alias works
workspace: bob # remote workspace root; messages land in messages/inbox/
The workspace is the git repository you run the command in. Your name defaults to
$USER; set AGENT_NAME to send under another name.
Send and read#
gptmail agent status # your name, registry, inbox/outbox counts
gptmail agent send bob "Subject" "Body" # deliver to bob's inbox over SSH
gptmail agent list # unread messages
gptmail agent read <MESSAGE_ID> --thread # read (marks as read), with thread
gptmail agent reply <MESSAGE_ID> "Body" # threaded reply
gptmail agent pending # messages awaiting a reply
gptmail agent broadcast "Subject" "Body" # every agent in the registry
Replies to unreachable hosts#
Sending requires SSH access to the recipient. An agent on a host others can’t reach,
such as a laptop, can still get replies by periodically pulling the other
workspaces’ messages/outbox/ into its own inbox (for example with rsync).