claude-discord-bridge
v0.5.2
Published
Claude Code session monitoring via Discord
Maintainers
Readme
Claude Discord Bridge
Claude Codeのセッションを Discord チャンネル経由でリモート監視するための軽量ブリッジ。
制約事項
重要: このツールは監視・通知専用です。
| 操作 | 可否 | |------|------| | 進捗・通知の受信 | ✅ 可能 | | 許可リクエストへの allow/deny | ✅ 可能(remoteモード) | | 自由なメッセージ送信 | ❌ 不可能 | | 質問への回答入力 | ❌ 不可能 |
Claude Code CLIには外部からメッセージを注入するAPIやhookが存在しないため、Discordから自由なメッセージを送ることはできません。双方向通信が必要な場合は tmux + SSH を推奨します(詳細)。
機能
- タスク完了時にDiscordへ通知
- 許可リクエスト(Permission Request)の内容をDiscordで監視
- プロジェクトごとにDiscordチャンネルを分けて管理
- 機密情報の自動マスク
インストール
npm install -g claude-discord-bridgeセットアップ
Note: このツールを使うには、自分でDiscord Botを作成する必要があります。
- セキュリティ: 自分のBotなので、自分のサーバーにしかアクセスできない
- 管理が簡単: トークンは自分だけが持ち、公開Botの認証フローが不要
- 柔軟性: プロジェクトやチームごとに別のBotを使える
1. Discord Bot作成
- Discord Developer Portal でアプリ作成
- 左メニュー「Bot」→「Add Bot」
- 「Reset Token」でトークンをコピー(一度しか表示されません)
2. Botをサーバーに招待
- 左メニュー「OAuth2」→「URL Generator」
- SCOPES:
botにチェック - BOT PERMISSIONS:
Send Messagesにチェック - 生成されたURLをブラウザで開いてサーバーを選択
3. チャンネルIDを取得
- Discordの設定 → 詳細設定 → 「開発者モード」をON
- 通知を送りたいチャンネルを右クリック → 「IDをコピー」
4. 初期設定
claude-discord-bridge init
# Discord Bot Token: (トークンを入力)
# Default Discord Channel ID: (チャンネルIDを入力)5. Bot起動
# バックグラウンド起動
claude-discord-bridge start --daemon
# 状態確認
claude-discord-bridge status
# 停止
claude-discord-bridge stopコマンド一覧
| コマンド | 説明 |
| -------------------------------------- | ------------------------------ |
| claude-discord-bridge init | 初期設定(hooks + config生成) |
| claude-discord-bridge start | Discord Bot起動 |
| claude-discord-bridge start --daemon | バックグラウンド起動 |
| claude-discord-bridge stop | Bot停止 |
| claude-discord-bridge status | 状態確認 |
| claude-discord-bridge config | 設定ファイルを開く |
設定ファイル
設定ファイルは ~/.claude-discord-bridge/ に保存されます。
config.json
メイン設定ファイル。Discord Botトークンとサーバー設定を管理します。
{
"discord": {
"token": "your-bot-token",
"guildId": null
},
"server": {
"port": 3456,
"host": "127.0.0.1"
},
"log": {
"level": "info",
"maxFiles": 5,
"maxSize": "10m"
}
}| キー | 説明 | デフォルト |
| ----------------- | ---------------------- | ---------- |
| discord.token | Discord Botトークン | 必須 |
| discord.guildId | サーバーID(未使用) | null |
| server.port | HTTPサーバーポート | 3456 |
| server.host | HTTPサーバーホスト | 127.0.0.1 |
| log.level | ログレベル | info |
| log.maxFiles | ログファイル最大数 | 5 |
| log.maxSize | ログファイル最大サイズ | 10m |
projects.json
プロジェクトごとに通知先チャンネルを設定できます。プロジェクト名は作業ディレクトリのフォルダ名で自動判定されます。
{
"my-project": {
"channelId": "1234567890123456789",
"mention": "<@123456789>",
"notifyOnComplete": true,
"notifyOnPermission": true
},
"another-project": {
"channelId": "9876543210987654321",
"notifyOnComplete": true,
"notifyOnPermission": false
},
"_default": {
"channelId": "1111111111111111111",
"notifyOnComplete": true,
"notifyOnPermission": true
}
}| キー | 説明 |
| -------------------- | ---------------------------------------------------------------------------- |
| channelId | 通知先DiscordチャンネルID |
| mention | 通知時にメンションするユーザー/ロール(例: <@123456789>, <@&987654321>) |
| notifyOnComplete | タスク完了時に通知するか |
| notifyOnPermission | 許可リクエスト時に通知するか |
| _default | マッチするプロジェクトがない場合のフォールバック設定 |
環境変数
プロジェクトの .env や .env.example に記載して、チームで共有できます。環境変数は設定ファイルより優先されます。
# .env.example
CLAUDE_DISCORD_TOKEN="your-bot-token"
CLAUDE_DISCORD_DEFAULT_CHANNEL="1234567890123456789"| 環境変数 | 説明 | 対応する設定 |
| -------------------------------- | ---------------------- | --------------------------------------- |
| CLAUDE_DISCORD_TOKEN | Discord Botトークン | config.json の discord.token |
| CLAUDE_DISCORD_DEFAULT_CHANNEL | デフォルトチャンネルID | projects.json の _default.channelId |
DevContainer / プロジェクト統合
方法1: プロジェクトの依存として追加(推奨)
Node.jsプロジェクトなら、devDependenciesに追加してnpm scriptsで起動するのが簡単です。
npm install --save-dev claude-discord-bridge// package.json
{
"scripts": {
"bridge:start": "claude-discord-bridge start --daemon",
"bridge:stop": "claude-discord-bridge stop",
"bridge:status": "claude-discord-bridge status"
}
}# .env
CLAUDE_DISCORD_TOKEN="your-bot-token"
CLAUDE_DISCORD_DEFAULT_CHANNEL="1234567890123456789"# .env.example(チームで共有)
CLAUDE_DISCORD_TOKEN=
CLAUDE_DISCORD_DEFAULT_CHANNEL=DevContainerでは postStartCommand で起動:
// .devcontainer/devcontainer.json
{
"postStartCommand": "npm run bridge:start"
}方法2: グローバルインストール
プロジェクトに依存を追加したくない場合:
// .devcontainer/devcontainer.json
{
"postCreateCommand": "npm install -g claude-discord-bridge",
"postStartCommand": "claude-discord-bridge init && claude-discord-bridge start --daemon",
"remoteEnv": {
"CLAUDE_DISCORD_TOKEN": "${localEnv:CLAUDE_DISCORD_TOKEN}",
"CLAUDE_DISCORD_DEFAULT_CHANNEL": "${localEnv:CLAUDE_DISCORD_DEFAULT_CHANNEL}"
}
}init は環境変数が設定済みかつTTYがない環境では対話なしで実行されます(hooks設定のみ)。
双方向通信が必要な場合
外出先からClaude Codeを操作したい場合は、tmux + SSH の組み合わせを推奨します:
# ホストで起動
tmux new -s claude
claude
# 外出先からSSH接続してアタッチ
ssh your-server
tmux attach -t claude本ツールと併用することで「Discordで進捗を監視し、操作が必要な時だけSSHで接続」という運用が可能です。
ライセンス
MIT
