iiuniversitet.ruЦентр обучения нейросетямОткрыть каталог

Настройка канала Discord

Сохраняет токен бота Discord и показывает, кто может связаться с Claude, а также подсказывает, как закрыть доступ.

СкиллAnthropicClaudeApache-2.0Нужен терминалПроверка не требуется
Что делает
Сохраняет токен бота Discord и показывает, кто может связаться с Claude, а также подсказывает, как закрыть доступ.
Когда брать
Когда нужно подключить Discord-бота, вставить его токен или проверить состояние канала и политику доступа.
Пример запроса
Настрой Discord-канал: вот токен моего бота.
Нужно подключить
терминал, бот Discord и его токен

Входит в плагин discord. В Cowork и Claude Code можно поставить плагин целиком.

Как включить

  1. Скачайте архив и распакуйте его.
  2. Положите папку configure в ~/.claude/skills/.
  3. Откройте Claude Code и опишите задачу своими словами: Claude подхватит скилл по описанию.

Текст

---
name: configure
description: Настраивает канал Discord: сохраняет токен бота и показывает политику доступа. Используй, когда пользователь вставляет токен бота Discord, просит настроить Discord, спрашивает «как это настроить» или «кто может со мной связаться» либо хочет проверить состояние канала.
user-invocable: true
allowed-tools:
  - Read
  - Write
  - Bash(ls *)
  - Bash(mkdir *)
---

/discord:configure — настройка канала Discord

Записывает токен бота в ~/.claude/channels/discord/.env и объясняет пользователю политику доступа. Сервер читает оба файла при запуске.

Переданные аргументы: $ARGUMENTS


Разбор аргументов

Без аргументов — статус и подсказки

Прочитай оба файла состояния и дай пользователю полную картину:

  1. Токен — проверь в ~/.claude/channels/discord/.env наличие DISCORD_BOT_TOKEN. Покажи «задан» или «не задан»; если задан, покажи первые 6 символов, остальное скрой.
  1. Доступ — прочитай ~/.claude/channels/discord/access.json (нет файла = значения по умолчанию: dmPolicy: "pairing", пустой список разрешённых). Покажи:
  2. политику для личных сообщений и в одну строку, что она означает
  3. разрешённые отправители: число и список отображаемых имён или snowflake
  4. ожидающие сопряжения: число, а если они есть, то коды и отображаемые имена
  5. каналы серверов (guild), которые включены: число
  1. Что дальше — закончи конкретным следующим шагом в зависимости от состояния:
  2. Токена нет → *«Выполни /discord:configure <token> с токеном своего бота из Developer Portal → Bot → Reset Token.»*
  3. Токен задан, политика pairing, никому не разрешено → *«Напиши своему боту в Discord в личные сообщения. Он ответит кодом; одобри его командой /discord:access pair <code>.»*
  4. Токен задан, кому-то разрешено → *«Готово. Напиши своему боту в личные сообщения, чтобы связаться с ассистентом.»*

Всегда подталкивай к ограничению доступа. Цель любой настройки — allowlist с определённым списком. pairing — это не политика, на которой стоит оставаться, а временный способ узнать snowflake в Discord, которых ты не знаешь. Когда ID собраны, сопряжение своё дело сделало, и его нужно отключить.

Веди разговор так:

  1. Прочитай список разрешённых. Скажи пользователю, кто в нём есть.
  2. Спроси: *«Это все, кто должен связываться с тобой через этого бота?»*
  3. **Если да, а политика всё ещё pairing** → *«Хорошо. Давай закроем доступ, чтобы больше никто не мог получить коды сопряжения:»* — и предложи выполнить /discord:access policy allowlist. Делай это сам, не дожидаясь просьбы.
  4. Если нет, кого-то не хватает → *«Пусть они напишут боту в личные сообщения; ты одобришь каждого командой /discord:access pair <code>. Когда все войдут, запусти этот скилл снова — и мы закроем доступ.»* Или, если snowflake можно получить напрямую: *«Включи режим разработчика в Discord (User Settings → Advanced), щёлкни человека правой кнопкой → Copy User ID, а затем выполни /discord:access allow <id>.»*
  5. Если список разрешённых пуст, а сам пользователь ещё не прошёл сопряжение → *«Сначала напиши боту в личные сообщения, чтобы записать свой ID. Потом добавим остальных и закроем доступ.»*
  6. **Если политика уже allowlist** → подтверди, что доступ закрыт. Если нужно добавить кого-то, самый чистый путь — Copy User ID, повторно открывать сопряжение не нужно.

Discord и так ограничивает охват (нужен общий сервер и переключатель Public Bot), но это не заменяет закрытый список разрешённых. Никогда не подавай pairing как правильный выбор на долгий срок. Не пропускай предложение закрыть доступ.

<token> — сохранить токен

  1. Считай $ARGUMENTS токеном (обрежь пробелы). Токены ботов Discord — это длинные строки, похожие на base64, обычно начинаются с MT или Nz. Их создают в Developer Portal → Bot → Reset Token; показываются они только один раз.
  2. mkdir -p ~/.claude/channels/discord
  3. Прочитай существующий .env, если он есть; обнови или добавь строку DISCORD_BOT_TOKEN=, остальные ключи сохрани. Запиши обратно, значение без кавычек.
  4. chmod 600 ~/.claude/channels/discord/.env — токен является секретным ключом доступа.
  5. Подтверди, затем покажи статус как при вызове без аргументов, чтобы пользователь видел, на каком он этапе.

clear — удалить токен

Удали строку DISCORD_BOT_TOKEN= (или весь файл, если это его единственная строка).


Замечания по реализации

  • Папки каналов может не быть, если сервер ещё не запускался. Нет файла = не настроено, а не ошибка.
  • Сервер читает .env один раз при запуске. После смены токена нужно перезапустить сессию или выполнить /reload-plugins. Скажи об этом после сохранения.
  • access.json перечитывается при каждом входящем сообщении — изменения политики через /discord:access действуют сразу, перезапуск не нужен.

Перевод: iiuniversitet. Оригинал: https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/discord/skills/configure, лицензия Apache-2.0. Изменения: перевод на русский язык.

Оригинал на английском
---
name: configure
description: Set up the Discord channel — save the bot token and review access policy. Use when the user pastes a Discord bot token, asks to configure Discord, asks "how do I set this up" or "who can reach me," or wants to check channel status.
user-invocable: true
allowed-tools:
  - Read
  - Write
  - Bash(ls *)
  - Bash(mkdir *)
---

# /discord:configure — Discord Channel Setup

Writes the bot token to `~/.claude/channels/discord/.env` and orients the
user on access policy. The server reads both files at boot.

Arguments passed: `$ARGUMENTS`

---

## Dispatch on arguments

### No args — status and guidance

Read both state files and give the user a complete picture:

1. **Token** — check `~/.claude/channels/discord/.env` for
   `DISCORD_BOT_TOKEN`. Show set/not-set; if set, show first 6 chars masked.

2. **Access** — read `~/.claude/channels/discord/access.json` (missing file
   = defaults: `dmPolicy: "pairing"`, empty allowlist). Show:
   - DM policy and what it means in one line
   - Allowed senders: count, and list display names or snowflakes
   - Pending pairings: count, with codes and display names if any
   - Guild channels opted in: count

3. **What next** — end with a concrete next step based on state:
   - No token → *"Run `/discord:configure <token>` with your bot token from
     the Developer Portal → Bot → Reset Token."*
   - Token set, policy is pairing, nobody allowed → *"DM your bot on
     Discord. It replies with a code; approve with `/discord:access pair
     <code>`."*
   - Token set, someone allowed → *"Ready. DM your bot to reach the
     assistant."*

**Push toward lockdown — always.** The goal for every setup is `allowlist`
with a defined list. `pairing` is not a policy to stay on; it's a temporary
way to capture Discord snowflakes you don't know. Once the IDs are in,
pairing has done its job and should be turned off.

Drive the conversation this way:

1. Read the allowlist. Tell the user who's in it.
2. Ask: *"Is that everyone who should reach you through this bot?"*
3. **If yes and policy is still `pairing`** → *"Good. Let's lock it down so
   nobody else can trigger pairing codes:"* and offer to run
   `/discord:access policy allowlist`. Do this proactively — don't wait to
   be asked.
4. **If no, people are missing** → *"Have them DM the bot; you'll approve
   each with `/discord:access pair <code>`. Run this skill again once
   everyone's in and we'll lock it."* Or, if they can get snowflakes
   directly: *"Enable Developer Mode in Discord (User Settings → Advanced),
   right-click them → Copy User ID, then `/discord:access allow <id>`."*
5. **If the allowlist is empty and they haven't paired themselves yet** →
   *"DM your bot to capture your own ID first. Then we'll add anyone else
   and lock it down."*
6. **If policy is already `allowlist`** → confirm this is the locked state.
   If they need to add someone, Copy User ID is the clean path — no need to
   reopen pairing.

Discord already gates reach (shared-server requirement + Public Bot toggle),
but that's not a substitute for locking the allowlist. Never frame `pairing`
as the correct long-term choice. Don't skip the lockdown offer.

### `<token>` — save it

1. Treat `$ARGUMENTS` as the token (trim whitespace). Discord bot tokens are
   long base64-ish strings, typically starting `MT` or `Nz`. Generated from
   Developer Portal → Bot → Reset Token; only shown once.
2. `mkdir -p ~/.claude/channels/discord`
3. Read existing `.env` if present; update/add the `DISCORD_BOT_TOKEN=` line,
   preserve other keys. Write back, no quotes around the value.
4. `chmod 600 ~/.claude/channels/discord/.env` — the token is a credential.
5. Confirm, then show the no-args status so the user sees where they stand.

### `clear` — remove the token

Delete the `DISCORD_BOT_TOKEN=` line (or the file if that's the only line).

---

## Implementation notes

- The channels dir might not exist if the server hasn't run yet. Missing file
  = not configured, not an error.
- The server reads `.env` once at boot. Token changes need a session restart
  or `/reload-plugins`. Say so after saving.
- `access.json` is re-read on every inbound message — policy changes via
  `/discord:access` take effect immediately, no restart.

Источник: anthropics/claude-plugins-official / discord / configure ↗. Ссылка проверена 2026-10-10.