agent-slack
Slackのメッセージ送受信・検索・チャンネル管理・ファイルダウンロードなど、Slackに関するあらゆる操作を自動化するCLIツールです。「slack message」「read slack」「reply on slack」「search slack」「channel history」「mark as read」「slack unreads」などのキーワードが含まれるタスクで使用します。メッセージの読み取りや返信、スレッド参照、未読確認、ワークフロー実行、チャンネル作成・招待など幅広いSlack操作に対応します。
description の原文を見る
| Slack automation CLI for AI agents. Use when: - Reading a Slack message or thread (given a URL or channel+ts) - Browsing recent channel messages / channel history - Downloading Slack attachments (snippets, images, files) to local paths - Searching Slack messages or files - Sending, editing, or deleting a message; adding/removing reactions - Listing channels/conversations; creating channels and inviting users - Fetching a Slack canvas as markdown - Looking up Slack users - Marking channels/DMs as read - Opening DM or group DM channels - Discovering and running Slack workflows - Managing saved-for-later messages (Later tab) - Viewing all unread messages (inbox/unreads view) Triggers: "slack message", "slack thread", "slack URL", "slack link", "read slack", "reply on slack", "search slack", "channel history", "recent messages", "channel messages", "latest messages", "mark as read", "mark read", "slack later", "saved for later", "save for later", "slack unreads", "slack inbox", "unread slack"
SKILL.md 本文
agent-slack で Slack を自動化
agent-slack は $PATH にある CLI バイナリです。直接実行してください (例: agent-slack user list)。
インストール
agent-slack が $PATH に見つからない場合は、インストールしてください:
curl -fsSL https://raw.githubusercontent.com/stablyai/agent-slack/main/install.sh | sh(推奨)npm i -g agent-slack(Node >= 22.5 が必要)nix run github:stablyai/agent-slack -- <args>(インストール不要、すべてのコマンドにプレフィックス)
重要: Bash コマンドフォーマットルール
Claude Code のパーミッションチェッカーにはセキュリティヒューリスティックがあり、手動承認プロンプトを強制します。これらのパターンを避けることで、コマンドを自動許可のままにできます。参照: https://github.com/anthropics/claude-code/issues/34379
- コマンド文字列内に
#がないこと。 クォート内でも、コメント区切り文字として扱われます。チャネル名は#generalではなくgeneralのように記述します。インラインスクリプトに#コメントは使わず、Bash ツールのdescriptionパラメータを使用します。 ''(連続する単一引用符) または""(連続する二重引用符) がないこと。 「潜在的な難読化」チェックをトリガーします。d.get('key', '')のような Python の空文字列リテラルを避けます —d.get('key')を代わりに使用してください。- フィルタリングには
| jqのみ — python3 や他のコマンドは不可。python3 -cは許可リストに含まれておらず、プロンプトをトリガーします。単一引用符のみの式を使用するjq(内部に"がない) は安全です:- 間違い:
agent-slack search ... | python3 -c "..."(許可されていない) - 間違い:
agent-slack search ... | jq '.a + "x"'(混在したクォート) - 正解:
agent-slack search ... | jq '.a' - 正解:
agent-slack search ... | jq '.messages[] | .ts'
- 間違い:
||または&&チェーンはないこと。 複数の agent-slack コマンドを別々の Bash ツール呼び出しとして実行します。- ファイルリダイレクト (
>,>>) はないこと。 JSON 出力を直接処理し、ファイルに書き込まないでください。
クイックスタート (認証)
認証は macOS と Windows では自動です (Slack Desktop 優先、macOS では Chrome/Firefox へのフォールバック)。
認証情報が利用できない場合は、以下のいずれかを実行してください:
- Slack Desktop インポート (macOS/Windows):
agent-slack auth import-desktop
agent-slack auth test
- Chrome フォールバック:
agent-slack auth import-chrome
agent-slack auth test
- Firefox フォールバック:
agent-slack auth import-firefox
agent-slack auth test
- または環境変数を設定 (ブラウザトークン; チャットログへの貼り付けを避けてください):
export SLACK_TOKEN="xoxc-..."
export SLACK_COOKIE_D="xoxd-..."
agent-slack auth test
- または標準トークンを設定:
export SLACK_TOKEN="xoxb-..." # or xoxp-...
agent-slack auth test
構成されたワークスペースを確認:
agent-slack auth whoami
標準的なワークフロー (Slack メッセージ URL が与えられた場合)
- 単一のメッセージを取得 (スレッド概要がある場合は含む):
agent-slack message get "https://workspace.slack.com/archives/C123/p1700000000000000"
- 完全なスレッドが必要な場合:
agent-slack message list "https://workspace.slack.com/archives/C123/p1700000000000000"
最近のチャネルメッセージを閲覧
チャネルに最近投稿されたものを確認 (チャネル履歴):
agent-slack message list "general" --limit 20
agent-slack message list "C0123ABC" --limit 10
agent-slack message list "general" --with-reaction eyes --oldest "1770165109.000000" --limit 20
agent-slack message list "general" --without-reaction dart --oldest "1770165109.000000" --limit 20
agent-slack message list "general" --resolve-users
これは最近のメッセージを時系列順で返します。--limit を使用して数を制御します (デフォルト 25)。
--with-reaction または --without-reaction を使用する場合は、スキャンをバウンドするために --oldest も渡す必要があります。
添付ファイル (スニペット/画像/ファイル)
message get/list と search は自動的に添付ファイルをダウンロードし、JSON 出力に含めます (通常は message.files[] / files[] 下)。利用可能な場合は name と、ローカルダウンロード用の path を含みます。失敗したメッセージ添付ファイルダウンロードは添付ファイルエントリを保持し、ローカルの .download-error.txt パスを保存し、message get/list の場合は message.files[].error、search messages|all の場合は messages[].files[].error を含めます; search files はダウンロードに失敗したファイルをスキップします。
メッセージをドラフト (ブラウザエディタ)
フォーマットツールバー (太字、イタリック、打消し線、リンク、リスト、引用符、コード、コードブロック) を使用してメッセージを構成するための Slack のようなリッチテキストエディタをブラウザで開きます。送信後、「View in Slack」リンクを表示します。
agent-slack message draft "general"
agent-slack message draft "general" "initial text"
agent-slack message draft "https://workspace.slack.com/archives/C123/p1700000000000000"
送信、編集、削除、またはリアクション
agent-slack message send "https://workspace.slack.com/archives/C123/p1700000000000000" "I can take this."
agent-slack message send "alerts-staging" "here's the report" --attach ./report.md
agent-slack message edit "https://workspace.slack.com/archives/C123/p1700000000000000" "I can take this today."
agent-slack message delete "https://workspace.slack.com/archives/C123/p1700000000000000"
agent-slack message send "general" "Here's the plan:
- Step 1: do the thing
- Step 2: verify it worked
- Sub-step: check logs"
agent-slack message react add "https://workspace.slack.com/archives/C123/p1700000000000000" "eyes"
agent-slack message react remove "https://workspace.slack.com/archives/C123/p1700000000000000" "eyes"
編集/削除にはチャネルモードで --ts が必要:
agent-slack message edit "general" "Updated text" --workspace "myteam" --ts "1770165109.628379"
agent-slack message delete "general" --workspace "myteam" --ts "1770165109.628379"
message send の添付オプション:
--attach <path>ローカルファイルをアップロード (繰り返し可)--blocks <path>JSON ファイル (または stdin の場合は-) から raw Block Kit ブロックを送信します。ヘッダー、区切り線、テーブルブロック、その他の構造化レイアウトを有効にします。--attachと互換性がありません。
message send は channel_id と投稿された ts および permalink を返します (非添付ファイル送信の場合)。thread_ts はスレッドに返信するときにのみ表示されます。
メンション: @U05BRPTKL6A、@here、@channel、@everyone を記述するだけです — CLI はそれらを実際の Slack メンショントークンに変換し、テキスト内のリテラル &/</> をエスケープします。ID を自分でラップする必要はありません。
チャネルリストの表示 + チャネル作成/ユーザー招待
agent-slack channel list
agent-slack channel list --user "@alice" --limit 50
agent-slack channel list --all --limit 100
agent-slack channel new --name "incident-war-room"
agent-slack channel new --name "incident-leads" --private
agent-slack channel invite --channel "incident-war-room" --users "U01AAAA,@alice,bob@example.com"
agent-slack channel invite --channel "incident-war-room" --users "partner@vendor.com" --external
agent-slack channel invite --channel "incident-war-room" --users "partner@vendor.com" --external --allow-external-user-invites
--external の場合、招待先はメールアドレスである必要があります。デフォルトでは、招待者は外部に制限されます;
--allow-external-user-invites を追加して、他のユーザーを招待することを許可します。
検索 (メッセージ + ファイル)
信頼性のためにチャネルスコープ検索を優先:
agent-slack search all "smoke tests failed" --channel "alerts" --after 2026-01-01 --before 2026-02-01
agent-slack search messages "stably test" --user "@alice" --channel general
agent-slack search messages "stably test" --resolve-users
agent-slack search files "testing" --content-type snippet --limit 10
マルチワークスペースガードレール (重要)
複数のワークスペースが構成されていて、チャネル名 (例: general) を使用する場合は、あいまいさを避けるために --workspace を渡してください (または SLACK_WORKSPACE_URL を設定):
agent-slack message get "general" --workspace "https://myteam.slack.com" --ts "1770165109.628379"
agent-slack message get "general" --workspace "myteam" --ts "1770165109.628379"
DM / グループ DM チャネル
DM またはグループ DM のチャネル ID を取得します。ユーザーのグループにメッセージを送信するのに便利です:
agent-slack user dm-open @alice @bob
agent-slack user dm-open U01AAAA U02BBBB U03CCCC
既読にマーク
チャネル、DM、またはグループ DM を特定のメッセージまで既読にマーク:
agent-slack channel mark "https://workspace.slack.com/archives/C123/p1700000000000000"
agent-slack channel mark "general" --workspace "myteam" --ts "1770165109.628379"
agent-slack channel mark "D0A04PB2QBW" --workspace "myteam" --ts "1770165109.628379"
特定のメッセージを未読に見えるようにするには、--ts をその直前に設定します (0.000001 を減算)。これにより、読み取りカーソルが移動し、そのメッセージ以降がすべて新規に表示されます:
agent-slack channel mark "general" --workspace "myteam" --ts "1770165109.628378"
ワークフロー
チャネルにブックマークされている Slack ワークフローを発見して実行:
# チャネル内のワークフローをリスト
agent-slack workflow list "#ops"
# トリガーメタデータをプレビュー (副作用なし)
agent-slack workflow preview "Ft123ABC"
# フォームフィールドとステップを含むワークフロー定義を取得
agent-slack workflow get "Ft123ABC"
agent-slack workflow get "Wf456DEF"
# ワークフロートリガーをトリップ
agent-slack workflow run "Ft123ABC" --channel "#ops"
Later (保存されたメッセージ)
後で見るメッセージを管理:
agent-slack later list
agent-slack later list --counts-only
agent-slack later list --state completed
agent-slack later complete "<message-url>"
agent-slack later archive "<message-url>"
agent-slack later reopen "<message-url>"
agent-slack later save "<message-url>"
agent-slack later remove "<message-url>"
agent-slack later remind "<message-url>" --in 1h
agent-slack later remind "<message-url>" --in tomorrow
Unreads (受信トレイ表示)
チャネル、DM、スレッド全体のすべての未読メッセージを表示:
agent-slack unreads
agent-slack unreads --counts-only
agent-slack unreads --max-messages 5
agent-slack unreads --include-system
Canvas + Users
agent-slack canvas get "https://workspace.slack.com/docs/T123/F456"
agent-slack user list --workspace "https://workspace.slack.com" --limit 100
agent-slack user get "@alice" --workspace "https://workspace.slack.com"
参考資料
references/commands.md: 完全なコマンドマップ + すべてのフラグreferences/targets.md: URL vs#channelターゲットルールreferences/output.md: JSON 出力形状 + ダウンロードパス
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- stablyai
- リポジトリ
- stablyai/agent-slack
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/stablyai/agent-slack / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。