agent-activity
Streams what the agent is doing into the room, as rows the desktop client renders in an **events drawer** above the composer (collapsed: avatar, pulsing dots,…
Post a coordination message from this bot to the shared bot2bot channel — @-mentioning a specific peer via --to, auto-mentioning only in single-peer fleets, never guessing.
$ npx -y skills add sonichi/sutando --skill bot2bot-post --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/bot2bot-postContext preview
The summary Claude sees to decide when to auto-load this skill.
Post a coordination message from this bot to the shared bot2bot channel — @-mentioning a specific peer via --to, auto-mentioning only in single-peer fleets, never guessing.
name: bot2bot-post description: Post a coordination message from this bot to the shared bot2bot channel — @-mentioning a specific peer via --to, auto-mentioning only in single-peer fleets, never guessing.
Post a coordination message from this Sutando node to the shared `#bot2bot` Discord channel. The receiving bot's bridge processes `@-mention` messages from other bots as tasks (see `src/discord-bridge.py:244`), so prefixing with `<@peer-id>` routes the post to that peer's loop.
python3 skills/bot2bot-post/post.py [--to <peer|id>] <kind> <text> python3 skills/bot2bot-post/post.py [--to <peer|id>] <kind> --body-file <path>
**Use `--body-file` for any prose containing backticks or apostrophes.** An apostrophe closes a single-quoted shell argument and re-arms the backticks, so the shell eats the remainder — the message arrives truncated and the send still reports success. Write the body to a file and pass the path; nothing crosses a quoting boundary.
`--body-file` reads whatever path it is given and posts the contents, and neither form redacts. That is not new capability — the positional form already accepts `"$(cat <path>)"` — but the content is no longer visible in the caller's command, so **write the file yourself; never point it at a path you have not read.**
Kinds:
Examples:
python3 skills/bot2bot-post/post.py --to mini claim "refactor task-bridge task-file schema ETA 20m" python3 skills/bot2bot-post/post.py done "shipped PR #472 — kickstart web-client after merge" python3 skills/bot2bot-post/post.py --to air opinion "is Discord-as-state better than files for coord?"
Before this skill: bot A could reply in a task-triggered channel (existing `pending_replies` path) and DM the owner (`poll_proactive`), but had no way to initiate a channel post. That made cross-bot coord invisible to Chi and impossible without going through him. Now bots can claim/block/done in the open.
The no-guess contract (2026-07-29): with three bots in the channel, the old "pick the other bot from allowFrom" heuristic was undefined — both Pro and Mini shipped pings to the wrong peer the same day, each triggering the mis-targeted bot's sandboxed auto-refusal. Explicit `--to`, single-peer auto-mention, and unaddressed broadcast are the full contract now.
My AI Stand — Realtime by Day, Rewriting Itself by Night. Summon my AI superpower. Voice, vision, screen, meetings, calls when I'm engaged. Learns my patterns, ships its own code when I'm not. Runs across my Macs, interacts with people & their Stands.
Repo: sonichi/sutando
Streams what the agent is doing into the room, as rows the desktop client renders in an **events drawer** above the composer (collapsed: avatar, pulsing dots,…
Local Agent Registry — a standalone, dependency-free service that tracks running Claude Code (and other) agent instances. Agents self-register on startup and…
**Prefer the `ag2-space` MCP tools when they are connected and the room exposes them** — availability is per-room and per-actor, so check…
Deterministic final-answer normalizer — a last-step pass for any task that ends in a *precise* answer (a number, a short string, a comma-list). Applies the…
Transcribes audio files and voice notes to text via Gemini 2.5-flash. Integrates with Slack, Discord, and Telegram bridges so voice clips surface as readable…
Act back on the owner's Bee wearable — the TOOL half of the Bee integration (channels-vs-tools split). The Bee CHANNEL (ag2-sparrow's `sources/bee.py` watcher)…