用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/jacobm1978/hermes-local-agent --skill discord命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Build a reliable multi-agent automation system under device, software, and API constraints using available tools and strategic resource allocation
Create hand-drawn style diagrams using Excalidraw JSON format. Generate .excalidraw files for architecture diagrams, flowcharts, sequence diagrams, concept maps, and more. Files can be opened at excalidraw.com or uploaded for shareable links.
Generate optimized product listings for eBay, Facebook Marketplace, Mercari, and Poshmark. Use when user provides item details and wants cross-platform listing descriptions with platform-specific optimization.
基于 SOC 职业分类
正在显示 SKILL.md
| title | Discord Configuration |
| category | productivity |
| description | Skills for configuring and managing Discord integrations, webhooks, and automation |
| name | discord |
Required variables in ~/.hermes/.env:
DISCORD_BOT_TOKEN — Token from Discord Developer Portal > Your App > Bot > Copy TokenDISCORD_ALLOWED_USERS — Comma-separated Discord user IDs (or usernames). If empty, all users are allowedDISCORD_FREE_RESPONSE_CHANNELS — Comma-separated channel IDs where bot responds without @mentionExample:
DISCORD_BOT_TOKEN=MTQ4OD...Mr7Q
DISCORD_ALLOWED_USERS=jacobm1978
DISCORD_FREE_RESPONSE_CHANNELS=1488962442460528853,1488962442460528854
In ~/.hermes/config.yaml under discord::
require_mention: true — Bot only responds when @mentioned (in non-free channels)free_response_channels: '' — Channel IDs for mention-free responses (also needs DISCORD_FREE_RESPONSE_CHANNELS env var set — the gateway reads the env var, not just config.yaml)auto_thread: true — Auto-create a thread per conversation on @mentionreactions: true — Bot adds emoji reactions (👀 processing, ✅ success, ❌ failure)The free_response_channels setting in config.yaml is NOT enough. The gateway code at gateway/platforms/discord.py line 2001 reads os.getenv("DISCORD_FREE_RESPONSE_CHANNELS", ""). You must also set the env var.
on_message receives all Discord messagesDISCORD_ALLOWED_USERS — if set and user not in list, message is silently droppedDISCORD_ALLOW_BOTS)DISCORD_IGNORE_NO_MENTION (default true) — if message mentions someone else but not the bot, it's ignoredrequire_mention is true AND channel not in free list AND not a bot thread, @mention is requiredNon-numeric entries in DISCORD_ALLOWED_USERS (like "jacobm1978") are resolved to numeric IDs at bot startup via guild member lookup. This requires:
members intent enabled in Discord Developer Portal[Discord] Resolved 'username' -> ID (user#0000)If resolution fails silently, the user will be rejected. To debug, temporarily set DISCORD_ALLOWED_USERS= (empty) to allow all users.
Systemd may not be available. Use:
hermes gateway run # foreground mode (works everywhere)
For background: run in a background terminal process.
Enable Developer Mode in Discord settings, then right-click users/channels/guilds > Copy ID.
The bot can be authenticated and "connected" (shows in logs as [Discord] Connected as Bot#0000) but still NOT respond to any messages if it is not actually joined to the server/chat where messages are sent.
Signs the bot is not in the server:
approximate_guild_count: 0 when querying the bot's application infoIf you have the DISCORD_BOT_TOKEN, you can look up the bot's Application ID and construct the invite URL yourself:
# Step 1: Look up the Application ID from the bot token
curl -s -H "Authorization: Bot YOUR_BOT_TOKEN" https://discord.com/api/v10/applications/@me | grep '"id"' | head -1
This returns the id field. Use it to build the OAuth2 invite URL:
https://discord.com/oauth2/authorize?client_id=APPLICATION_ID&scope=bot+applications.commands&permissions=3200
Open that URL in a browser, select the server, and click Authorize.
Permissions value 3200 grants: Send Messages, Read Message History, View Channels, Embed Links.
After changing .env or config.yaml:
hermes gateway runtail -f ~/.hermes/logs/gateway.log