Open Source · MIT License

Slack CLI for
AI Agents & Humans

Slack のメッセージを読み書きするためのシンプルな CLI ツール。
diff コマンドで新着差分だけを取得し、AIエージェントとのワークフローを加速。

GitHub で見る インストール
~ slack-cli diff "#task-seri" --resolve-users
slack-cli diff "#task-seri" --resolve-users --format text
✓ 3 new messages since last check
[serikawa] PGの料金プランどうする?
[okada] 来週MTGしよう。今週中に叩き台作る
[sacco] デザイン案あげてみました!
# Cache updated: next diff returns only newer messages
Features

なぜ slack-cli なのか

AIエージェントによるSlack監視タスクトリアージのために設計された、シンプルで強力なCLI。

diff — 新着差分取得

前回チェック以降の新着メッセージだけを返す。AIエージェントが無駄なAPIコールをせず、効率的にSlackを監視できる。

🤖

AIエージェント最適化

JSON出力標準対応。ts, user_name, reactions など構造化されたデータをAIが直接処理できる。

🔑

セキュアな認証

macOS Keychain・1Password・環境変数の3段階フォールバック。トークンをファイルに平文保存しない設計。

📨

送信もできる

Bot Tokenでメッセージ送信・スレッド返信に対応。AIエージェントがSlackに返信するユースケースをカバー。

🔍

強力な検索

Slack検索構文をそのまま利用可能。from:@user in:#channel keyword のような絞り込みが CLIから直接できる。

📦

シングルバイナリ化

Bunのコンパイル機能でBun不要のバイナリを生成。CIや別マシンへの配布が簡単。

Commands

使えるコマンド一覧

シンプルなサブコマンド構成で、直感的に使える。

diff 新着差分取得(AI連携の中心)
$ slack-cli diff "#task-seri"
$ slack-cli diff "#general" --format text
$ slack-cli diff "#general" --resolve-users
$ slack-cli diff "#general" --reset
$ slack-cli diff "#general" --no-update
send メッセージ送信
$ slack-cli send "#general" -m "Hello!"
$ slack-cli send "#general" \
    -m "スレッド返信" \
    --thread 1708160400.000100
$ slack-cli send "#ch" -m "test" --format json
history メッセージ履歴取得
$ slack-cli history "#general"
$ slack-cli history "#general" --count 50
$ slack-cli history "#general" --channel-info
$ slack-cli history C08XXXXXX --format json
search メッセージ検索
$ slack-cli search "デプロイ"
$ slack-cli search "from:@serikawa バグ"
$ slack-cli search "in:#general 重要" \
    --count 5
$ slack-cli search "keyword" --sort score
channels チャンネル一覧
$ slack-cli channels
$ slack-cli channels --format json
$ slack-cli channels --include-private
token トークン管理
$ slack-cli token set --user xoxp-...
$ slack-cli token set --bot  xoxb-...
$ slack-cli token set-1password \
    --user-ref "op://Vault/Item/User Token"
$ slack-cli token status
How it works

diff の仕組み

AIエージェントが無駄なく動けるよう、状態管理を内蔵している。

1

初回実行 — キャッシュなし

最新100件を取得してすべてを「新着」として出力。キャッシュを ~/.cache/slack-cli/ に保存(XDG準拠)。

2

2回目以降 — 差分のみ取得

前回の最新タイムスタンプ以降のメッセージだけを返す。APIコールを最小化し、処理コストを削減。

3

AIが処理して返信

JSON出力をAIエージェントに渡し、send コマンドで返信。ループ型のSlack AIエージェントが簡単に作れる。

Install

今すぐ始める

Bun がインストール済みなら3ステップで使える。

$ git clone https://github.com/noplan-inc/slack-cli.git
$ cd slack-cli && bun install
$ bun build --compile src/index.ts --outfile slack-cli
$ mv slack-cli ~/.local/bin/

# トークンを設定(macOS Keychain に安全に保存)
$ slack-cli token set --user xoxp-your-user-token
$ slack-cli token set --bot  xoxb-your-bot-token

# 試してみよう
$ slack-cli diff "#general" --resolve-users --format text
GitHub で詳細を見る