Repository navigation
Description
Problem
The @-mention selector lists agents by display name + avatar only — there's nothing to tell you what each agent is for. In a workspace with several agents (especially a themed set that share a visual style), they're near-indistinguishable at the point of use. You have to already know each agent's role from memory, or scroll back to whenever they introduced themselves.
Concrete case: a hive with three bee agents — Fizz (builder), Honey (writer), Bumble (researcher) — renders as three near-identical rows in the selector. A user hovering the composer can't tell who to call for "debug this" vs "summarize this thread" vs "go research X." Their words: "we have 3 bee agents, but it's so hard to tell which one does what. Whom should I call for when I need to do something?"
Proposed UX
- In the
@-mention autocomplete row, show a one-line role/description under (or beside) each agent's display name — same pattern the slash-command autocomplete in feat(desktop): slash-command autocomplete in composer from ACP available_commands_update (follow-up to #919) #2528 proposes for command descriptions. - Source the line from the agent's public kind:0 profile
aboutfield. Fall back to nothing (name only, as today) whenaboutis empty, so this degrades gracefully. - Keep it to one line, truncated — the selector is a quick picker, not a profile card.
Data-source note
- Agents don't reliably publish an
abouttoday (observed kind:0 profiles carry onlydisplay_name+picture). Surfacing the field is only useful if agent creation seeds a short role string intoabout. Worth pairing this with a default: when an owner drafts an agent, derive a one-lineaboutfrom its purpose/system-prompt. - Related: kind:0 profile republish drops every field outside a 5-key allowlist — silently deletes bot: true, nip05 and website #2534 — kind:0 profile republish drops every field outside a 5-key allowlist. If
aboutisn't in that allowlist, it'll get silently stripped on republish and this feature will show blanks. That allowlist needsaboutpreserved for this to hold.
Non-goals
- Full agent profile cards / hover popovers (a bigger surface; this is just the inline picker line).
- Slash-command discovery — that's feat(desktop): slash-command autocomplete in composer from ACP available_commands_update (follow-up to #919) #2528.
Workaround today
Agents can self-describe in chat, but that's not discoverable at mention time. A cheat-sheet has to be re-asked for.
Reported by a Buzz user (Glomopay hive) via their in-workspace researcher agent. Screenshot is the user's own composer.

Activity
webdevtodayjason commentedon Jul 24, 2026
I'd like to take this one.
Plan, after tracing the data path on current
main:get_users_batch→nostr_convert::users_batch_from_events) already parse kind:0 content but dropabout, and the TS layer omits it as well (RawUserProfileSummary = Omit<RawProfile, "pubkey" | "about">intauriProfiles.ts). Step one is carryingaboutthrough that summary path — Tauri conversion +UserProfileSummary/UserSearchResulttypes. No relay changes needed.useMentionsalready batch-fetches owner profiles to build the "managed by …" label (ownerProfilesQuery); agent candidate pubkeys get the same treatment soaboutresolves even for agents who haven't authored anything in the loaded timeline. The per-pubkey delta cache backinguseUsersBatchQuerykeeps this cheap.MentionAutocompletealready renders a second meta line for agents (bot icon + "agent" + "managed by …"). Whenaboutis non-empty it replaces the literal "agent" text as a single truncated line, keeping the bot icon and the managed-by suffix; emptyaboutrenders exactly today's row, so this degrades gracefully as described in the issue.aboutparse and the suggestion mapping, plus screenshots.Out of scope per the issue's non-goals: profile cards/popovers and #2528. Also not touching the #2534 allowlist here — though once
aboutsurvives republish, this UI lights up with no further changes.webdevtodayjason commentedon Jul 24, 2026
Opened #2706 for this — kind-0
aboutcarried through the desktop profile-summary path and rendered as a one-line role under agent rows in the selector, with the graceful name-only fallback whenaboutis empty. Screenshots on the PR.feat(desktop): show each agent's role in the @-mention selector
feat(desktop): show each agent's role in the @-mention selector