Examples
All examples use fictional identities and an isolated temporary home.
Initialize identities
export SYNOMEM_HOME="$(mktemp -d)/.agents"
synomem init
synomem agent create atlas --name "Atlas"
synomem agent create beacon --name "Beacon"
Four distinct durable operations
synomem kudos give beacon --from atlas --actor-kind agent \
--title "Found the hidden retry race" \
--reason "Produced a minimal reproduction before release." \
--tag reliability --idempotency-key atlas-beacon-kudos-17
synomem memo send beacon --from atlas --actor-kind agent \
--subject "Requirement changed" \
--body "Use the append-only transition described in ADR-17."
synomem note create --as atlas --actor-kind agent \
--title "Repository convention" \
--body "All timestamps retain an explicit offset."
synomem todo create beacon --from atlas --actor-kind agent \
--title "Review ADR-17" --priority 2 --due-date 2026-09-15
The cross-agent todo begins as assigned. Beacon must explicitly accept or reject it:
synomem todo accept <todo-id> --as beacon --actor-kind agent
# or
synomem todo reject <todo-id> --as beacon --actor-kind agent --reason "Wrong owner"
Unified bounded reads
synomem inbox beacon
synomem list --participant beacon --limit 20 --json
synomem changes --after <previous-watermark> --limit 20 --json
Persist the returned change watermark and pass it on the next poll. Use a domain show command when
full content is needed; list and change feeds intentionally return compact summaries.
Idempotent retry
If a mutation response is interrupted, repeat it as the same actor with the same stable idempotency
key. Synomem returns the original result with deduplicated: true instead of creating another item.
Demo script
npm run demo
The demo builds the package, uses a temporary home, records fictional data, and removes that data.