slack-messaging について
slack-messagingは、slackcliを使ってコマンドラインからSlackのメッセージを読み書きするスキルです。ブラウザーのセッショントークンで認証し、Slackアプリの作成は不要で、複数ワークスペースに対応します。
主な機能
- 01チャンネル、DM、IDの一覧表示
- 02チャンネルやDMへのメッセージ送信
- 03メッセージスレッドへの返信
- 04チャンネルやスレッドのメッセージ取得
- 05複数ワークスペースの認証管理
活用シーン
- 01ターミナルからSlackチャンネルへ送信
- 02チャンネルのメッセージをJSONで取得
- 03既存スレッドへの返信
- 04連携による投稿の成功確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ obra/ superpowers-lab --skill slack-messagingインストール後、Claude Code で/slack-messagingを入力して読み込まれたか確認します。
同梱ファイルscripts/extract-tokens
詳細
slackcli を使った Slack メッセージの送受信
slackcli(shaharia-lab/slackcli)を使って、コマンドラインから Slack メッセージを送受信します。
インストール
バイナリをダウンロードします。
curl -sL -o /usr/local/bin/slackcli \
"https://github.com/shaharia-lab/slackcli/releases/download/v0.1.1/slackcli-linux"
chmod +x /usr/local/bin/slackcli
macOS(Intel):slackcli-linux を slackcli-macos に置き換えます
macOS(Apple Silicon):slackcli-macos-arm64 に置き換えます
認証
slackcli はブラウザーのセッショントークン(xoxc + xoxd)を使用するため、Slack アプリの作成は不要です。
対話型セットアップ
./scripts/extract-tokens <workspace-url>
ブラウザーの DevTools からトークンを抽出する手順を案内します。
手動セットアップ
slackcli auth login-browser \
--xoxd="xoxd-..." \
--xoxc="xoxc-..." \
--workspace-url=https://your-workspace.slack.com
認証の確認
slackcli auth list
チャンネルの検索
slackcli conversations list を使って、チャンネルとその ID を確認します。
# List all channels
slackcli conversations list
# Filter output
slackcli conversations list | grep -i "channel-name"
メッセージの送信
# Send to a channel (use channel ID from conversations list)
slackcli messages send --recipient-id=C0XXXXXXXX --message="Hello from CLI"
# Send to a DM (use user's DM channel ID)
slackcli messages send --recipient-id=D0XXXXXXXX --message="Hey"
# Reply in a thread
slackcli messages send --recipient-id=C0XXXXXXXX --message="Thread reply" --thread-ts=1769756026.624319
--recipient-id は、常にチャンネル ID(C...)または DM チャンネル ID(D...)です。
メッセージの読み取り
# Read last N messages from a channel
slackcli conversations read C0XXXXXXXX --limit=10
# Read as JSON (for parsing)
slackcli conversations read C0XXXXXXXX --limit=10 --json
# Read a thread
slackcli conversations read C0XXXXXXXX --thread-ts=1769756026.624319
チャンネルの一覧表示
slackcli conversations list
すべてのパブリックチャンネル、プライベートチャンネル、DM とその ID が返されます。
Slack インテグレーションのテスト
ボットまたはインテグレーションがメッセージを正しく投稿したことを確認するには、次のようにします。
# Read the channel, check for the expected message
slackcli conversations read CHANNEL_ID --limit=5 --json | jq '.messages[] | select(.text | contains("expected text"))'
テストメッセージを送信して、往復の動作を確認するには、次のようにします。
# Send
slackcli messages send --recipient-id=CHANNEL_ID --message="integration test $(date +%s)"
# Read back
slackcli conversations read CHANNEL_ID --limit=1 --json
複数のワークスペース
slackcli は複数のワークスペースに対応しています。必要なワークスペースごとに認証フローを実行します。
# Add first workspace
./scripts/extract-tokens https://workspace-one.slack.com
# Add second workspace
./scripts/extract-tokens https://workspace-two.slack.com
# List all authenticated workspaces
slackcli auth list
メッセージを送信すると、slackcli はチャンネル ID に基づいて適切なワークスペースに自動的にルーティングします。
トークンに関する注意
- ブラウザーのトークン(xoxc/xoxd)は、ボットではなくログイン中のユーザーとして動作します
- 送信したメッセージは、アプリではなくユーザーのものとして表示されます
- ユーザーがブラウザーのセッションからログアウトすると、トークンは期限切れになります
- 更新するには、ログイン中のブラウザーセッションからトークンを再度抽出します
- すべてのワークスペースの認証情報は
~/.config/slackcli/workspaces.jsonに保存されます