SlackスレッドをMarkdownに書き出す方法

多くの会社で、いちばん質の高い思考はSlackのスレッドの中で起きています。障害のポストモーテム、デザインの議論、顧客からのフィードバック、「これ結局どうやるんだっけ」というQ&A。そしてそのまま消えていきます。検索で見つかるのは断片だけで、文脈のほうは時間とともに失われます。

その中身をMarkdownで書き出せば、Slackはチャットログから「問い合わせられるナレッジベース」に変わります。この記事では、実用的な方法をすべて取り上げます。

なぜSlackのスレッドをMarkdownにするのか

  • AIアシスタントに渡せる — 「Xについて何を決めたんだっけ」に、ClaudeやChatGPTは実際のスレッドさえ渡せば答えられます。Slackの検索結果では無理です。
  • ポストモーテムやインシデントレビューを残せる — 障害まわりのスレッドはエンジニアリング文化の原材料です。保持ポリシーで消えてしまうのは悲劇でしかありません。
  • 意思決定のログになる — その決定に至った理由は、最終的なドキュメントよりスレッドのほうにきれいに残っているものです。
  • Slackから移行するとき — Discord、Teams、Mattermost、Zulipはいずれも、Slack独自のエクスポート形式よりMarkdownのほうをうまく取り込めます。
  • 消される前にチャンネルをアーカイブする — 無料プランのSlackは90日を過ぎたメッセージを削除します。先に書き出しておくことだけが唯一の復旧手段です。

方法1:Minibase Chrome拡張機能(スレッド単位)

Minibase は、開いているSlackスレッドをワンクリックできれいなMarkdownとして取り込みます。

Minibaseが取り込むもの:

  • チャンネル名とワークスペースの文脈
  • スレッドの親メッセージ(投稿者、タイムスタンプ、本文)
  • スレッド内のすべての返信を投稿順に
  • 絵文字リアクションをインラインMarkdownとして
  • メンション(@user)とチャンネル参照(#channel)
  • 添付ファイルとSlackのリンク展開プレビュー
  • 言語判定を保ったままのコードブロック

Minibaseが取り除くもの:

  • SlackのUI要素(サイドバー、検索バー、リアクションパネル)
  • 在席インジケーターと入力中の通知
  • Slackの未読バッジ

向いている場面: 気になるスレッドが1本だけのとき、保持期間が切れる前に素早く抜き出したいとき、特定の会話をClaudeやChatGPTに渡したいとき。

方法2:Slack公式のワークスペースエクスポート

Slackのワークスペースオーナーは、パブリックチャンネル(全プラン)、あるいはプライベートチャンネルとDM(Business+プラン)の一括エクスポートを実行できます。

場所: Workspace Settings → Import/Export Data → Export

手に入るもの:

  • チャンネル別・日別のJSONが入った .zip ファイル
  • ユーザープロフィール一覧(users.json
  • チャンネル一覧(channels.json
  • すべてのパブリックメッセージの生JSON

自分でやる必要があること: そのJSONをMarkdownに変換する作業です。コミュニティ製のツールなら:

  • slackdump — ダンプとMarkdown変換に対応し、細かいケースも面倒を見てくれます
  • slack-export-viewer — エクスポートを閲覧可能なHTMLとして表示します
  • 自作スクリプト — JSONの形式はきちんと文書化されています

長所: パブリックチャンネルなら全プラン無料、しかも公式。

短所: 全件ダンプ(選んで書き出せない)、無料プランでは制限あり、JSONを使えるMarkdownにするにはやはり手間がかかります。

方法3:Slack Web API

プログラムから、選択的に、定期的に書き出したいなら Slack Web API が正解です。

典型的な流れ:

  1. channels:historygroups:historyusers:read のスコープを持つSlackアプリを作成する
  2. ワークスペースにインストールする
  3. conversations.history でチャンネルのメッセージを取得する
  4. conversations.replies でスレッドの続きを取得する
  5. users.info でユーザーIDを表示名に解決する
  6. Markdownとして出力する

レート制限: 無料プランではメソッドあたり毎秒1リクエスト。長いチャンネルではページネーションを見込んでおきましょう。

長所: 選択的で、スクリプト化でき、定期ジョブにもできます。

短所: Slackアプリが必要で、管理の厳しいワークスペースでは管理者の承認も要ります。

方法4:Slackの「スレッドへのリンクをコピー」+手動

Slackの Copy link to thread はURLを共有します。そのURLをMinibaseに読ませれば、自分がSlackを開いていなくてもスレッドを抽出できます。

その場かぎりの共有には、これがいちばん速い道です。自分(あるいは同僚)にスレッドのリンクを送り、抽出はMinibaseに任せ、出てきたMarkdownをノートに落とすだけ。

SlackのコンテンツをLLM向けに整える

AIアシスタントに渡す目的で書き出すなら、次の点を意識してください。

  • リアクションは短いインライン表記に潰す。 [:+1: × 4] のほうが、4人を列挙するよりトークンが安く済みます。
  • ユーザーIDは表示名に解決する。 ClaudeやChatGPTには U02GABC123 が誰なのか知りようがありません。
  • タイムスタンプだけでなく経過時間も残す。 LLMには「3時間後」のほうが、ISO形式の時刻2つより読みやすい情報です。
  • ボットの自動メッセージは削る(GitHub / Jira / Linear / Datadogのボットなど)。そのスレッドがボットの出力そのものについての話でないかぎり。

Minibaseの抽出は、このほとんどをすでに済ませています。ポストモーテムの要約、設計ドキュメントの生成、顧客フィードバックの統合のためにスレッドをClaudeへ渡す使い方に合わせて調整されています。

実務的なワークフロー

よくあるケース——「このスレッドをノートかAIの文脈に入れたい」——なら、こうなります。

  1. Slackでスレッドを開く
  2. スレッドの ⋯ メニューから Copy link to thread
  3. そのURLを新しいタブで開く
  4. ChromeのツールバーでMinibaseをクリック
  5. Markdownファイルがダウンロードに届く

15秒です。もう一方の道——管理画面に入り、全件エクスポートし、JSONを解析し、目当てのスレッドを探し、Markdownに描き直す——は、まったく同じ結果のための30分の回り道です。

チャンネルを丸ごと書き出すならSlackのワークスペースエクスポート+slackdump、定期的な抽出ならWeb APIを使いましょう。

Slackはナレッジベースとして設計されていません。Markdownはそう設計されています。その2つを橋渡しするのは、いまやワンクリックで済む問題です。


MinibaseはどんなウェブページもワンクリックできれいなMarkdownに変換し、AIが検索できるローカル保管庫へ直接保存します。拡張機能は保存無制限で無料。Minibase Plus(月5.99ドル/年34.99ドル)でAIテンプレート、履歴、動画の文字起こしが加わります。minibase.md

Continue reading

よりスマートに保存しませんか?

あらゆるウェブページをワンクリックでMarkdownに変換。

Chromeに追加