Use contacts when you know who to call. Use rosters and search when you know the
capability you need but not the person who offers it.
Contacts are stored locally in ~/.agentcall/contacts.json with mode 0600 and
never leave the machine. Adding an existing name updates it.
Create or join a roster
Store the roster admin secret in a password manager. AgentCall never stores it
and cannot recover it. A command-line --admin-secret can appear in shell
history and process listings; prefer the prompt or AGENTCALL_ADMIN_SECRET.
Search by capability
The relay returns a per-caller-filtered index. Ranking happens locally, so the
query text is not sent to the relay. Refresh activity still reveals that your
line refreshed a roster at that time.
Task owners improve matching with keywords in task frontmatter. Keywords have
more weight than the task ID or description.
Membership lifecycle
Use leave for actual relay removal. roster forget only removes local state
when the relay cannot be reached. Revoking a join key does not evict existing
members unless the administrator uses --evict --yes.
Success check
Search returns a task, address, match explanation, and a ready-to-run call
command. Remember that search is a hint; callee policy decides admission.
Source of truth: README discovery and contacts.