slack について
Slack ワークスペースをコマンドラインから検索・操作するスキルです。メッセージ、チャンネル、スレッド、ユーザーを扱い、ラッパースクリプトで API コマンドへのトークンの直接記載を避けます。
主な機能
- 01Slack の条件指定によるメッセージ検索
- 02メッセージ送信とチャンネル参加
- 03チャンネル履歴とスレッドの閲覧
- 04チャンネル一覧とユーザー表示
- 05追加の Slack API エンドポイントを安全に呼び出し
活用シーン
- 01チャンネル、送信者、日付でメッセージを検索
- 02チャンネルやユーザーに更新を投稿
- 03チャンネル履歴やスレッドの返信を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ letta-ai/ skills --skill slackインストール後、Claude Code で/slackを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
manifest.yamlreferences/api.mdscripts/slackslack-apislack-setup詳細
Slack
コマンドラインから Slack ワークスペースを検索し、操作します。
重要:トークンのセキュリティ
$SLACK_TOKEN を curl コマンドに直接含めないでください。 トークンがログに記録され、漏えいするおそれがあります。
トークンを内部で環境変数から読み込むラッパースクリプトを必ず使用してください。
slack sendを使用してください。curl ... -H "Authorization: Bearer $SLACK_TOKEN"は使用しないでください- 高度な API 呼び出しには
slack-api POST ...を使用してください
クイックセットアップ(新規ユーザー向け)
# Add scripts to PATH
export PATH="$PATH:$HOME/.letta/skills/slack/scripts"
# Create Slack app with one click (opens browser)
slack-setup
Slack のアプリ作成ページが開き、すべての権限があらかじめ設定されます。次に、以下を行います。
- Create をクリックしてアプリを作成します
- OAuth & Permissions → Install to Workspace に移動します
- User OAuth Token(
xoxp-...)をコピーします。ボットトークンではありません - シェルで設定します。
export SLACK_TOKEN="xoxp-..."
ユーザートークンを使う理由: ボットトークン(xoxb-)ではメッセージを検索できません(Slack の制限です)。ユーザートークンでは、ボットができることに加えて検索もできます。
クイックセットアップ(既存のトークン向け)
export SLACK_TOKEN="xoxp-..." # User token (recommended) or xoxb- bot token
export PATH="$PATH:$HOME/.letta/skills/slack/scripts"
コマンド
メッセージを検索する
slack search "deployment failed"
slack search "from:@caren database"
slack search "in:#engineering api"
slack search "in:#engineering after:2024-01-01 bug"
検索では Slack の修飾子(from:、in:、to:、has:link、has:reaction、before:、after:、on:)を使用できます。
メッセージを送信する
slack send "#general" "Hello team!"
slack send "#alerts" ":rocket: Deployment complete"
slack send "@caren" "Quick question..."
チャンネルに参加する
履歴を読み取るには、ボットがチャンネルのメンバーである必要があります。公開チャンネルには次のコマンドで参加できます。
slack join "#engineering"
プライベートチャンネルでは、Slack 上で誰かに手動でボットを招待してもらう必要があります。
チャンネルを一覧表示する
slack channels
チャンネルの履歴を読む
slack history "#engineering"
slack history "#engineering" 50 # Last 50 messages
スレッドの返信を読む
slack thread "C1234567890" "1234567890.123456"
slack thread "C1234567890" "1234567890.123456" --json # Raw JSON output
スレッドのタイムスタンプ(ts)は、検索結果またはチャンネルの履歴から取得できます。
ユーザーを一覧表示して確認する
slack users
slack user "U1234567890"
高度な操作:API に直接アクセスする
slack で対応していない操作には、トークンを安全に扱う slack-api を使用してください。
# Post with rich formatting (blocks)
slack-api POST chat.postMessage '{"channel": "#general", "blocks": [{"type": "section", "text": {"type": "mrkdwn", "text": "*Bold* and _italic_"}}]}'
# Add reaction
slack-api POST reactions.add '{"channel": "C1234", "timestamp": "1234.5678", "name": "thumbsup"}'
# Get user info
slack-api GET "users.info?user=U1234567890"
# Reply to thread
slack-api POST chat.postMessage '{"channel": "C1234", "thread_ts": "1234.5678", "text": "Thread reply"}'
その他の API の使用例については、references/api.md を参照してください。
含まれる権限
マニフェスト(slack-setup)には、以下のボットスコープが含まれています。
| カテゴリ | スコープ |
|---|---|
| 検索 | search:read |
| メッセージ | chat:write, chat:write.public, reactions:read, reactions:write |
| 公開チャンネル | channels:read, channels:history, channels:join |
| プライベートチャンネル | groups:read, groups:history |
| ダイレクトメッセージ | im:read, im:write, im:history |
| ユーザー | users:read, users:read.email |
| ファイル | files:read, files:write |
| その他 | emoji:read, links:read |