claude-skills/

Anthropic公式スキル・プラグインの日本語ディレクトリ

last sync 22h ago
スキルOfficialproductivity

⚙️configure

プラグイン
telegram

説明

Telegramチャンネルを設定します — ボットトークンを保存し、アクセスポリシーを確認します。 次のような場合に使用: - ユーザーがTelegramのボットトークンを貼り付けたとき - Telegramの設定を依頼されたとき - 「これはどうやって設定するの?」や「誰が私に連絡できる?」と聞かれたとき - チャンネルのステータスを確認したいとき

原文を表示

Set up the Telegram channel — save the bot token and review access policy. Use when the user pastes a Telegram bot token, asks to configure Telegram, asks "how do I set this up" or "who can reach me," or wants to check channel status.

ユースケース

  • ボットトークンを保存するとき
  • アクセスポリシーを確認するとき
  • チャンネルのステータスを確認したいとき

本文(日本語訳)

/telegram:configure — Telegram チャンネルのセットアップ

ボットトークンを ~/.claude/channels/telegram/.env に書き込み、 アクセスポリシーについてユーザーに案内します。 サーバーは起動時に両方のファイルを読み込みます。

渡された引数: $ARGUMENTS


引数によるディスパッチ

引数なし — 状態の確認と案内

両方の状態ファイルを読み込み、現在の状況を網羅的に表示します:

  1. トークン~/.claude/channels/telegram/.envTELEGRAM_BOT_TOKEN を確認。 設定済み/未設定を表示し、設定済みの場合は先頭10文字をマスクして表示 (123456789:...)。

  2. アクセス~/.claude/channels/telegram/access.json を読み込む (ファイルが存在しない場合はデフォルト値: dmPolicy: "pairing"、空の許可リスト)。 以下を表示:

    • DMポリシーとその意味を1行で
    • 許可済み送信者: 件数、および表示名またはIDのリスト
    • ペアリング待ち: 件数、コードおよび表示名(存在する場合)
  3. 次のステップ — 現在の状態に基づいた具体的な次のアクションを末尾に表示:

    • トークン未設定 → /telegram:configure <token> に BotFather から取得したトークンを指定して実行してください。」
    • トークン設定済み・ポリシーが pairing・許可済みユーザーなし → 「Telegram でボットにDMを送ってください。ボットがコードを返信するので、/telegram:access pair <code> で承認してください。」
    • トークン設定済み・許可済みユーザーあり → 「準備完了です。ボットにDMを送ればアシスタントに繋がります。」

常にロックダウンへ誘導すること。 すべてのセットアップの最終目標は、許可リストを明示した allowlist ポリシーです。 pairing は恒久的なポリシーとして維持すべきものではなく、 まだ知らない Telegram ユーザーIDを取得するための一時的な手段です。 IDが揃ったら pairing の役割は終わりであり、無効化すべきです。

以下の流れで会話を進めてください:

  1. 許可リストを読み込み、現在登録されているユーザーをユーザーに伝える。
  2. 確認する: 「このボット経由で連絡を取るべき人は全員揃っていますか?」
  3. 「はい」かつポリシーがまだ pairing「了解です。それ以上のペアリングコードが発行されないようにロックしましょう:」 と案内し、 /telegram:access policy allowlist の実行を積極的に提案する。 求められるのを待たず、自発的に行うこと。
  4. 「いいえ」、まだ登録されていない人がいる「その方にボットへDMを送ってもらい、/telegram:access pair <code> で一人ずつ承認してください。全員揃ったらこのスキルを再度実行して、ロックしましょう。」
  5. 許可リストが空で、自分自身もまだペアリングしていない「まず自分のIDを取得するために、ボットにDMを送ってください。その後、他のユーザーを追加してロックダウンします。」
  6. ポリシーがすでに allowlist → ロック済み状態であることを確認。 新たに追加が必要な場合: 「追加したい方に数字のIDを教えてもらうか(@userinfobot にメッセージを送ると取得できます)、または一時的に pairing に切り替えることもできます: /telegram:access policy pairing → DM送信 → ペアリング承認 → 元に戻す、という手順です。」

pairing を長期的に正しい選択として位置づけないこと。 ロックダウンの提案を省略しないこと。

<token> — トークンの保存

次のような場合に使用: トークンを保存したいとき。

  1. $ARGUMENTS をトークンとして扱う(前後の空白を除去)。 BotFather のトークンは 123456789:AAH... の形式 (数字のプレフィックス、コロン、長い文字列)。
  2. mkdir -p ~/.claude/channels/telegram を実行。
  3. 既存の .env があれば読み込み、TELEGRAM_BOT_TOKEN= の行を更新または追加し、 他のキーは保持したまま書き戻す。値はクォートなしで記載。
  4. chmod 600 ~/.claude/channels/telegram/.env — トークンは認証情報のため。
  5. 保存を確認後、引数なしの状態表示を行い、現在の状況をユーザーに把握させる。

clear — トークンの削除

次のような場合に使用: トークンを削除したいとき。

TELEGRAM_BOT_TOKEN= の行を削除する (その行しかない場合はファイルごと削除)。


実装上の注意

  • サーバーがまだ一度も起動していない場合、channels ディレクトリが存在しないことがある。 ファイルが見つからない場合は「未設定」であり、エラーではない。
  • サーバーは起動時に .env を一度だけ読み込む。 トークンを変更した場合は、セッションの再起動または /reload-plugins の実行が必要。 保存後にその旨を伝えること。
  • access.json はインバウンドメッセージのたびに再読み込みされるため、 /telegram:access によるポリシー変更は即時反映される(再起動不要)。
原文(English)を表示

/telegram:configure — Telegram Channel Setup

Writes the bot token to ~/.claude/channels/telegram/.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/telegram/.env for TELEGRAM_BOT_TOKEN. Show set/not-set; if set, show first 10 chars masked (123456789:...).

  2. Access — read ~/.claude/channels/telegram/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 IDs
    • Pending pairings: count, with codes and display names if any
  3. What next — end with a concrete next step based on state:

    • No token → "Run /telegram:configure <token> with the token from BotFather."
    • Token set, policy is pairing, nobody allowed → "DM your bot on Telegram. It replies with a code; approve with /telegram: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 Telegram user IDs 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 /telegram: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 /telegram:access pair <code>. Run this skill again once everyone's in and we'll lock it."
  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: "They'll need to give you their numeric ID (have them message @userinfobot), or you can briefly flip to pairing: /telegram:access policy pairing → they DM → you pair → flip back."

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). BotFather tokens look like 123456789:AAH... — numeric prefix, colon, long string.
  2. mkdir -p ~/.claude/channels/telegram
  3. Read existing .env if present; update/add the TELEGRAM_BOT_TOKEN= line, preserve other keys. Write back, no quotes around the value.
  4. chmod 600 ~/.claude/channels/telegram/.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 TELEGRAM_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 /telegram:access take effect immediately, no restart.

原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。