You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A stable, scriptable way for a third-party app to install a Buzz-managed
agent that carries the app's own tools + a scoped credential — so the agent
does real domain work (not just chat) while Buzz hosts + supervises it. Today a
managed agent (Fizz/Bumble/Honey) is a general assistant with no app tooling, and
the only way to give one app-specific tools + secrets headlessly is blocked.
Concrete use case (what drove this)
Figura is a design tool. We wanted a Buzz-native Figura agent: mention it in a
channel → it builds an on-brand UI mock ("fig") and replies with a link, answers
"what figs do we have?" via our CLI, iterates on a fig in-thread. That needs the
agent's harness to carry:
the figura CLI + /fig skill (its tools),
a scoped team token (which team's brand + where figs land),
a persona/system prompt.
A builtin:fizz-style managed agent can't do this — it has no Figura tooling or
credential. So we ended up shipping a self-hosted daemon (own Nostr key, channels add-member, launchd) as a workaround. That works, but:
It doesn't scale to co-hosts. If two teammates each run the daemon in the
same channels, both fire on @figura → duplicate replies, duplicate figs, each
burning its own model subscription. There's no cross-daemon dedup. A single Buzz-managed agent per community would solve this by construction.
Why the managed path is blocked today
Managed agents can't carry app tools + secrets headlessly. Desktop's
Create-agent → Advanced sets runtime.mcpCommand + env_vars, but the CLI agents draft-create path is a deliberately no-secret owner-review contract
(parseAgentManagementRequest drops any secret-shaped/unknown key). So an app
installer can't hand over a token/tool via the draft. (CLI: expose --mcp-command and --env on buzz agents draft-create/draft-update (GUI Advanced parity) #3115 tried the CLI flag
and ran into exactly this.)
Headless provisioning needs a Desktop-minted attestation.draft-create
requires BUZZ_AUTH_TAG (NIP-OA owner attestation), which only Desktop mints —
there's no CLI to produce it. So the flow can't run from an app's setup.
Net: there's no path for "app X installs its working agent into my community" that
carries X's tools + a scoped secret, with owner approval but without hand-walking
the GUI.
Ask
A stable extension point to register/install a managed-agent bundle:
{ personaId, displayName, systemPrompt,
harness, // e.g. claude-code
tools: { mcpCommand | mcpServers },
credentials: [ vaultRef ], // scoped secret, egress-substituted, never in the
// owner-review draft or the sandbox
defaultChannels }
Owner-approved, not owner-hand-authored. The owner still consents (one
approval), but an app can prefill the whole bundle headlessly.
Summary
A stable, scriptable way for a third-party app to install a Buzz-managed
agent that carries the app's own tools + a scoped credential — so the agent
does real domain work (not just chat) while Buzz hosts + supervises it. Today a
managed agent (Fizz/Bumble/Honey) is a general assistant with no app tooling, and
the only way to give one app-specific tools + secrets headlessly is blocked.
Concrete use case (what drove this)
Figura is a design tool. We wanted a Buzz-native Figura agent: mention it in a
channel → it builds an on-brand UI mock ("fig") and replies with a link, answers
"what figs do we have?" via our CLI, iterates on a fig in-thread. That needs the
agent's harness to carry:
figuraCLI +/figskill (its tools),A
builtin:fizz-style managed agent can't do this — it has no Figura tooling orcredential. So we ended up shipping a self-hosted daemon (own Nostr key,
channels add-member, launchd) as a workaround. That works, but:same channels, both fire on
@figura→ duplicate replies, duplicate figs, eachburning its own model subscription. There's no cross-daemon dedup. A single
Buzz-managed agent per community would solve this by construction.
Why the managed path is blocked today
Create-agent → Advanced sets
runtime.mcpCommand+env_vars, but the CLIagents draft-createpath is a deliberately no-secret owner-review contract(
parseAgentManagementRequestdrops any secret-shaped/unknown key). So an appinstaller can't hand over a token/tool via the draft. (CLI: expose --mcp-command and --env on
buzz agents draft-create/draft-update(GUI Advanced parity) #3115 tried the CLI flagand ran into exactly this.)
draft-createrequires
BUZZ_AUTH_TAG(NIP-OA owner attestation), which only Desktop mints —there's no CLI to produce it. So the flow can't run from an app's
setup.isn't in released builds.
Net: there's no path for "app X installs its working agent into my community" that
carries X's tools + a scoped secret, with owner approval but without hand-walking
the GUI.
Ask
A stable extension point to register/install a managed-agent bundle:
approval), but an app can prefill the whole bundle headlessly.
distinct from the no-secret draft contract (so CLI: expose --mcp-command and --env on
buzz agents draft-create/draft-update(GUI Advanced parity) #3115's boundary stays intact).installs; this defines what a working, tool-carrying installed agent IS.
Relates to
buzz agents draft-create/draft-update(GUI Advanced parity) #3115 — CLI--mcp-command/--env(blocked by the no-secret draft contract)buzz://install-agentdeep-link prefillHappy to share the Figura self-hosted-daemon design as a reference for what a
managed equivalent would need to replace.