⚙️configure
- プラグイン
- telegram
- ソース
- GitHub で見る ↗
説明
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
引数によるディスパッチ
引数なし — 状態の確認と案内
両方の状態ファイルを読み込み、現在の状況を網羅的に表示します:
-
トークン —
~/.claude/channels/telegram/.envのTELEGRAM_BOT_TOKENを確認。 設定済み/未設定を表示し、設定済みの場合は先頭10文字をマスクして表示 (123456789:...)。 -
アクセス —
~/.claude/channels/telegram/access.jsonを読み込む (ファイルが存在しない場合はデフォルト値:dmPolicy: "pairing"、空の許可リスト)。 以下を表示:- DMポリシーとその意味を1行で
- 許可済み送信者: 件数、および表示名またはIDのリスト
- ペアリング待ち: 件数、コードおよび表示名(存在する場合)
-
次のステップ — 現在の状態に基づいた具体的な次のアクションを末尾に表示:
- トークン未設定 → 「
/telegram:configure <token>に BotFather から取得したトークンを指定して実行してください。」 - トークン設定済み・ポリシーが pairing・許可済みユーザーなし → 「Telegram でボットにDMを送ってください。ボットがコードを返信するので、
/telegram:access pair <code>で承認してください。」 - トークン設定済み・許可済みユーザーあり → 「準備完了です。ボットにDMを送ればアシスタントに繋がります。」
- トークン未設定 → 「
常にロックダウンへ誘導すること。
すべてのセットアップの最終目標は、許可リストを明示した allowlist ポリシーです。
pairing は恒久的なポリシーとして維持すべきものではなく、
まだ知らない Telegram ユーザーIDを取得するための一時的な手段です。
IDが揃ったら pairing の役割は終わりであり、無効化すべきです。
以下の流れで会話を進めてください:
- 許可リストを読み込み、現在登録されているユーザーをユーザーに伝える。
- 確認する: 「このボット経由で連絡を取るべき人は全員揃っていますか?」
- 「はい」かつポリシーがまだ
pairing→ 「了解です。それ以上のペアリングコードが発行されないようにロックしましょう:」 と案内し、/telegram:access policy allowlistの実行を積極的に提案する。 求められるのを待たず、自発的に行うこと。 - 「いいえ」、まだ登録されていない人がいる → 「その方にボットへDMを送ってもらい、
/telegram:access pair <code>で一人ずつ承認してください。全員揃ったらこのスキルを再度実行して、ロックしましょう。」 - 許可リストが空で、自分自身もまだペアリングしていない → 「まず自分のIDを取得するために、ボットにDMを送ってください。その後、他のユーザーを追加してロックダウンします。」
- ポリシーがすでに
allowlist→ ロック済み状態であることを確認。 新たに追加が必要な場合: 「追加したい方に数字のIDを教えてもらうか(@userinfobot にメッセージを送ると取得できます)、または一時的に pairing に切り替えることもできます:/telegram:access policy pairing→ DM送信 → ペアリング承認 → 元に戻す、という手順です。」
pairing を長期的に正しい選択として位置づけないこと。
ロックダウンの提案を省略しないこと。
<token> — トークンの保存
次のような場合に使用: トークンを保存したいとき。
$ARGUMENTSをトークンとして扱う(前後の空白を除去)。 BotFather のトークンは123456789:AAH...の形式 (数字のプレフィックス、コロン、長い文字列)。mkdir -p ~/.claude/channels/telegramを実行。- 既存の
.envがあれば読み込み、TELEGRAM_BOT_TOKEN=の行を更新または追加し、 他のキーは保持したまま書き戻す。値はクォートなしで記載。 chmod 600 ~/.claude/channels/telegram/.env— トークンは認証情報のため。- 保存を確認後、引数なしの状態表示を行い、現在の状況をユーザーに把握させる。
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:
-
Token — check
~/.claude/channels/telegram/.envforTELEGRAM_BOT_TOKEN. Show set/not-set; if set, show first 10 chars masked (123456789:...). -
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
-
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."
- No token → "Run
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:
- Read the allowlist. Tell the user who's in it.
- Ask: "Is that everyone who should reach you through this bot?"
- 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. - 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." - 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."
- 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
- Treat
$ARGUMENTSas the token (trim whitespace). BotFather tokens look like123456789:AAH...— numeric prefix, colon, long string. mkdir -p ~/.claude/channels/telegram- Read existing
.envif present; update/add theTELEGRAM_BOT_TOKEN=line, preserve other keys. Write back, no quotes around the value. chmod 600 ~/.claude/channels/telegram/.env— the token is a credential.- 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
.envonce at boot. Token changes need a session restart or/reload-plugins. Say so after saving. access.jsonis re-read on every inbound message — policy changes via/telegram:accesstake effect immediately, no restart.
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。