en un clic
discord
Discord ops via the message tool (channel=discord).
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
Discord ops via the message tool (channel=discord).
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Basé sur la classification professionnelle SOC
Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Requires a bash tool that supports pty:true.
Batch-generate images via OpenAI Images API. Random prompt sampler + `index.html` gallery.
Route plain-language requests for Pi, Claude Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either IdleHands ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow).
OpenProse VM skill pack. Activate on any `prose` command, .prose files, or OpenProse mentions; orchestrates multi-agent workflows.
Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks IdleHands to add a note, list notes, search notes, or manage note folders.
| name | discord |
| description | Discord ops via the message tool (channel=discord). |
| metadata | {"idlehands":{"emoji":"🎮","requires":{"config":["channels.discord.token"]}}} |
| allowed-tools | ["message"] |
message)Use the message tool. No provider-specific discord tool exposed to the agent.
channel: "discord".channels.discord.actions.* (some default off: roles, moderation, presence, channels).guildId, channelId, messageId, userId.accountId.<@USER_ID>.components) for rich UI; use legacy embeds only when you must.to: "channel:<id>" or to: "user:<id>".channelId: "<id>" (or to) + messageId: "<id>".Send message:
{
"action": "send",
"channel": "discord",
"to": "channel:123",
"message": "hello",
"silent": true
}
Send with media:
{
"action": "send",
"channel": "discord",
"to": "channel:123",
"message": "see attachment",
"media": "file:///tmp/example.png"
}
silent: true to suppress Discord notifications.Send with components v2 (recommended for rich UI):
{
"action": "send",
"channel": "discord",
"to": "channel:123",
"message": "Status update",
"components": "[Carbon v2 components]"
}
components expects Carbon component instances (Container, TextDisplay, etc.) from JS/TS integrations.components with embeds (Discord rejects v2 + embeds).Legacy embeds (not recommended):
{
"action": "send",
"channel": "discord",
"to": "channel:123",
"message": "Status update",
"embeds": [{ "title": "Legacy", "description": "Embeds are legacy." }]
}
embeds are ignored when components v2 are present.React:
{
"action": "react",
"channel": "discord",
"channelId": "123",
"messageId": "456",
"emoji": "✅"
}
Read:
{
"action": "read",
"channel": "discord",
"to": "channel:123",
"limit": 20
}
Edit / delete:
{
"action": "edit",
"channel": "discord",
"channelId": "123",
"messageId": "456",
"message": "fixed typo"
}
{
"action": "delete",
"channel": "discord",
"channelId": "123",
"messageId": "456"
}
Poll:
{
"action": "poll",
"channel": "discord",
"to": "channel:123",
"pollQuestion": "Lunch?",
"pollOption": ["Pizza", "Sushi", "Salad"],
"pollMulti": false,
"pollDurationHours": 24
}
Pins:
{
"action": "pin",
"channel": "discord",
"channelId": "123",
"messageId": "456"
}
Threads:
{
"action": "thread-create",
"channel": "discord",
"channelId": "123",
"messageId": "456",
"threadName": "bug triage"
}
Search:
{
"action": "search",
"channel": "discord",
"guildId": "999",
"query": "release notes",
"channelIds": ["123", "456"],
"limit": 10
}
Presence (often gated):
{
"action": "set-presence",
"channel": "discord",
"activityType": "playing",
"activityName": "with fire",
"status": "online"
}
<@USER_ID>.