最小のSlackデスクトップクライアント:わずか約2〜4 MBのmsga

公式Slackデスクトップアプリはダウンロードだけで、macOSで約125 MB、Windowsで約167 MB、Linuxで約95 MBあり、インストール後はさらに大きくなります。オープンソースのネイティブSlackクライアントであるmsgaは、macOSで約2 MB、Windowsで約4 MB、Linuxで約4 MB。各プラットフォームとも自己完結した単一ファイルで、インストーラーのフレームワークも、セットアップすべきランタイムもありません。軽量なSlackクライアントがなぜここまで小さくなれるのか、そしてそのサイズがなぜ重要なのかを見ていきます。

Slackデスクトップアプリの容量はどれくらい?

Slackの公式デスクトップクライアントはElectronで作られているため、どのコピーにも専用のChromiumブラウザエンジンとNode.jsランタイムが同梱されています。ダウンロードサイズはmacOSで約125 MB(Universal版は約220 MB)、Windowsで約167 MB、Linuxで約95 MBあり、インストールするとさらに大きくなります。Linuxの.debパッケージだけでも、展開後は約148 MBです。これはまだメッセージを1件も取得していない段階での話です。

ネイティブSlackデスクトップクライアントであるmsgaは、まったく別のサイズ帯にあります。

プラットフォームmsgaのダウンロード中身公式Slack
macOS(Apple Silicon、14以降)約2 MBDMGに入ったアプリ1つ約125 MB(Universal版:約220 MB)
Windows約4 MB.exeファイル1つ約167 MB
Linux(x86_64、ディストリビューション不問)約4 MB完全な静的バイナリ1つ(Wayland・X11対応)約95 MB(.deb)
インストール後のディスク使用量同じ単一ファイルのまま展開・解凍されるものはなし展開後 約148 MB(Linuxの.deb)

公式Slackのサイズは、slack.comで配布されているSlack 4.52.171のダウンロード、後述するslkのサイズはGitHubで公開されているv0.23.0リリースのもので、いずれも2026年10月時点です。

msgaはダウンロードしたファイルそのものがアプリのすべてです。インストーラーのフレームワークも、別途のランタイムも、横に置く共有ライブラリ一式も必要ありません。Linuxではファイルに実行権限を付けて起動するだけ。Windowsでは.exeを実行するだけ。macOSではDMGからアプリをドラッグするだけです。

Electronアプリが大きくなる理由

Electronアプリとは、Webサイトにブラウザを丸ごと1つ同梱してパッケージ化したものです。アプリ本体のコードは数MBのJavaScriptにすぎないかもしれませんが、それだけでは動きません。Chromiumのレイアウトエンジン、JavaScriptエンジン、GPUコンポジター、メディアスタック、ネットワークスタック、フォント処理、さらにその上にNode.jsが必要です。ユーザーのマシンにそれらが入っている保証はないため、すべてをダウンロードに含めるしかありません。

その結果、Electronアプリをインストールするたびにブラウザが1つずつ増え、ディスク上にはElectronアプリの数だけブラウザが並ぶことになります。なぜSlackはこんなにメモリを使うのかも同じアーキテクチャで説明できます。ブラウザエンジンはダウンロードが重いだけでなく、動かし続けるのも同じように重いのです。

msgaのアプローチ

msgaはC++で書かれており、独自の薄いクロスプラットフォーム層を通してOSを直接呼び出します。GUIツールキットも、Electronも、Webビューも使わず、ChromiumやNode.jsも同梱していません。デスクトップアプリに必要なものの大半はOSがすでに備えているので、msgaはそれをそのまま使います。

  • ウィンドウ・入力・デスクトップサービスは各プラットフォームのネイティブ機能を使います。LinuxではWaylandまたはX11、macOSではAppKit、WindowsではWin32です。
  • ネットワークはプラットフォームが提供するものを使います。WindowsではWinHTTP、macOSではNSURLSession、LinuxではMbed TLS上に構築したmsga独自のHTTPクライアントです。
  • テキストはmsga独自のCPUレンダラーで描画し、フォントとシェーピングにはFreeTypeとHarfBuzzを使います。

HTMLもCSSも存在しないので、HTMLやCSSのレイアウトエンジンもありません。インターフェースは直接描画されるため、バイナリに含まれるのはSlackのウィンドウを描画するコードと、SlackのAPIと通信するコードだけです。

macOS版がWindows版やLinux版より小さい理由

3つのサイズの順序は、それぞれのOSにあらかじめ何が入っているかで決まります。

macOSでは、msgaはシステムフレームワークにのみリンクします。AppKitもネットワークもTLSもすべてOSの一部なので、アプリバンドルにはmsga自身のコード以外ほとんど何も入っていません。これがビルドが約2 MBに収まる理由です。

Windowsでは、Win32とWinHTTPはOSに標準で含まれており、.exeが読み込むのはWindows自身のDLLだけです。ただし、インストール不要の単一ファイルにするため、FreeType、HarfBuzz、C++ランタイムを.exeの中に抱えており、約4 MBになります。

Linuxでは、msgaは完全な静的バイナリ1つとして配布されます。そのため新旧を問わずどのx86_64ディストリビューションでも、WaylandでもX11でも、ディストリビューションに入っているライブラリのバージョンに左右されずに動作します。その代わり、TLS(Mbed TLS)、FreeType、HarfBuzzをバイナリ自身が抱える必要があります。macOS版より増えた約2 MBの大半はこれらのライブラリによるもので、それでも結果は約4 MBです。(Linux版についての詳細はLinuxで最も軽いSlackクライアントは?をご覧ください。)

msgaとslkを比べると?

slkはGoで書かれたサードパーティ製のSlackクライアントで、MITライセンスで公開されています。こちらも小さなアプリです。slkはターミナル(TUI)アプリで、独自のデスクトップウィンドウを持つのではなく、ターミナルエミュレーターの中で動き、vim風のキー操作でキーボードから使います。画像のインライン表示は、kittyグラフィックスプロトコルまたはsixelに対応したターミナルでのみ可能です。READMEでは「20MB未満」とうたっており、実際そのとおりです。公式アプリと比べればごく一部のサイズで、ターミナルで暮らすのが好きな人にとっては本当に良いプロジェクトです。

プラットフォームmsga(ダウンロード=ディスク上のサイズ)slkのダウンロード(アーカイブ)slkの展開後
macOS(Apple Silicon)約2 MB約7.4 MB(.tar.gz)約18.7 MB
Windows(x64)約4 MB約9.2 MB(.zip)約24.2 MB
Linux(x86_64)約4 MB約7.9 MB(.tar.gzまたは.deb)約20.0 MB(静的リンク)

この数字を読むうえで注意したいのは、ダウンロードの形式です。slkのダウンロードは約7〜9 MBの圧縮アーカイブで、展開すると約19〜24 MBのプログラムになります。一方、msgaの約2〜4 MBのダウンロードは圧縮されていないプログラムそのもので、ディスク上でも同じサイズです。

Linuxでは両者の作りは同じです。どちらも完全に静的リンクされた単一ファイルのバイナリです。 msgaは独自のTLS、フォントレンダリング、テキストシェーピングを含み、本格的なグラフィカルUIを備えて約4 MB。slkはターミナルUIで約20 MBです。つまりmsgaは約5分の1の大きさで、静的リンクが差の原因ではありません。違いは中に入っているものです。Goのプログラムには、Goランタイムとガベージコレクター、Go標準ライブラリのネットワーク・TLS・暗号のコード、そしてslkの場合はTUIやSQLiteの依存ライブラリが含まれます。一方のmsgaは、必要な部分だけを含む手書きのC++です。

ディスク上では、msgaはslkのおよそ5〜9分の1の大きさでありながら、独自のウィンドウ、画像、絵文字を描画する本格的なグラフィカルデスクトップクライアントです。つまりこれはサイズの比較であって、同じ種類のUIどうしの比較ではありません。ターミナルでキーボード中心に使えるクライアントが好みなら、slkは良い選択肢であり、公式アプリよりはるかに軽量です。デスクトップのウィンドウが欲しいなら、msgaはターミナル版クライアントよりも少ない容量でそれを実現します。

アプリのサイズがいまも重要な理由

ディスクは大容量になり、回線も速くなったので、約100〜200 MBのアプリなど大したことはないように見えるかもしれません。それでも、アプリのサイズが効いてくる場面はいくつもあります。

  • 低速回線や従量制の回線。 ホテルのWi-Fi、スマートフォンのテザリング、容量制限のあるデータプランでは、約4 MBなら数秒で届きますが、約95〜220 MBとなると最後まで届かないこともあります。
  • アップデート。 msgaは自動でアップデートします。LinuxとWindowsでは次回起動時に新しいバージョンへ差し替え、macOSでは新しいDMGをダウンロードします。アプリ全体が数MBなので、アップデートはどれも一瞬で終わり、バグ修正のためにブラウザをもう1つダウンロードさせられることもありません。
  • ディスク容量。 SSDの容量が小さいノートPCや、VMやコンテナでいっぱいのマシンでは、チャットアプリ1つにつき約100 MBを超える負担が積み重なります。
  • コールドスタート。 ディスクから読み込むコードが少なければ、待ち時間も短くなります。msgaは1秒以内に起動し、メモリ使用量は起動時に約40 MB、1時間後でも約60 MB、アイドル時のCPU使用率はほぼ0%です。
  • ページキャッシュ。 小さなバイナリはOSのファイルキャッシュに低コストで常駐できるため、一度閉じたアプリを再び開くのは実質的にタダです。
  • CIマシン、VM、リモートデスクトップ。 単一の静的ファイルなら、テスト用マシンやシンクライアント、使い捨てのVMにも簡単にコピーでき、インストールするものも後に残るものもありません。
  • 監査可能性。 小さなバイナリは小さなコードベースから生まれます。msgaはGPL-3.0でGitHubで公開されており、フレームワークを下敷きにしない素のC++で書かれているので、Slackのセッションを扱うコードを午後のひとときで読み通せます。Chromiumを午後だけで読み切れる人はいません。

正直な制限事項

msgaが小さいのは、ブラウザを同梱していないことに加え、Slackのすべての機能を再現しようとはしていないからでもあります。チャンネル、DM、スレッド、検索、ファイル共有、リアクション、canvas、通知、複数ワークスペースといった、日々のSlack利用の中核はカバーしています。おまけとして、Claude CodeのセッションをDMとして表示することもできます。一方で、一部の機能は部分的な対応にとどまります。ハドルミーティングは検出・表示されますが、参加はブラウザで行います。アプリのインタラクティブなボタンは、Slackがそのコールバックを自社クライアントにしか届けないため、対応が限られています。

ハドルミーティングや、インタラクティブ性の高い連携機能が仕事に欠かせないなら、そういう場面のために公式アプリを残しておきましょう。Slackでやることが主にメッセージを読んで書くことなら、約2〜4 MBのネイティブクライアントで十分に役目を果たせます。各デスクトップでmsgaが何をするかは、macOS・Windows・Linux向けネイティブSlackクライアントの紹介記事で解説しています。

関連記事

macOSで約2 MB。Windowsで約4 MB。Linuxで約4 MB。 msgaをダウンロードすれば、公式インストーラーのダウンロードが終わるより先にネイティブSlackクライアントが動き出します。

msgaをダウンロード — 無料