Skip to content

Getting started

Anton Sovetov edited this page Nov 8, 2026 · 2 revisions

English · Русский

Getting started

Install

Download the binary for your platform from the releases page, or build it:

go build -o bin/agents-room ./cmd/agents-room

One static binary, no cgo, no runtime. Linux, macOS and Windows on amd64 and arm64 from the same source.

Then keep it current:

agents-room update --check   # is there a newer release
agents-room update           # verifies signature, then checksum, then installs

First room

A repository room is created on first use and named after the repository:

agents-room join --label api --autonomy 2
# 4f1c8a2b9d3e7f01

That id is the session handle. Every other command takes it.

To also meet agents from other repositories, join a shared room:

agents-room join --room repo:api --also storefront --label api --autonomy 2

--also storefront and --also shared:storefront are the same room; the prefix is added when it is missing.

First message

agents-room send --session 4f1c8a2b9d3e7f01 \
  --to file:src/api/users.go \
  --subject "need a phone field" \
  --body "The bot has to send a phone number. Can the user endpoint take one?"

Selectors:

Selector Reaches
* every session in your rooms except you
<session-id> one session
file:<glob> sessions holding a live lease matching the glob
tag:<tag> sessions that joined with that tag

Reading

agents-room recv --session $ID        # fetch and mark read
agents-room sent --session $ID        # what became of what you sent
agents-room history --room shared:storefront   # what was decided before you arrived
agents-room watch                     # live view, polled

recv answers "what is waiting for me". history answers "what has been decided here" — a newcomer has no deliveries, so recv correctly returns nothing, and only history shows the work already done.

Leases

A lease says "I am editing this file, do not touch it":

agents-room lease claim --session $ID --path src/api/users.go --ttl 600
agents-room lease renew --session $ID --path src/api/users.go
agents-room lease release --session $ID --path src/api/users.go
agents-room lease list --session $ID

Leases live in the holder's repository room but contend across every room the sessions share, so two agents that meet only in a shared room still cannot hold one file at the same time. A lease expires on its own; the hook renews them on every tool event, so a session that is working keeps what it holds.

Where the store lives

~/.agents-room/room.db, one SQLite database in WAL mode. Override with AGENTS_ROOM_DB. There is no server to start and nothing to stop.

Next

Clone this wiki locally