「ネイティブ」とはどういう意味か
公式SlackデスクトップアプリはElectronで作られています。ElectronはChromiumブラウザエンジン一式をアプリケーションに同梱するフレームワークです。Slackを開くと、チャットアプリではなく、1つのウェブサービスを表示するための専用ブラウザを起動していることになります。これが起動時に400 MB〜1 GBのRAMを消費する理由です。
真のネイティブクライアントは別のアプローチをとります。QtやGTKといったUIツールキットを使ってOSのグラフィックスタックでウィジェットを描画し、SlackのウェブインターフェースをブラウザでレンダリングするのではなくSlackのAPIを直接呼び出します。その結果、メモリ使用量は大幅に少なく、アイドル時のCPU使用率はほぼゼロになります。
その中間にあるのがWebViewラッパーです。ElectronをTauriなどの軽量ランタイムに置き換えますが、Slackのウェブインターフェースを引き続きWebViewで表示します。公式クライアントより軽いですが、真のネイティブとは言えません。
開発が終了したプロジェクト
ScudCloud
ScudCloudはLinux向け Slackクライアントの先駆け的な存在で、QtとWebKitで構築されていました。内部ではSlackのウェブUIをQt WebViewで表示していたため厳密にはネイティブではありませんでしたが、公式アプリより軽量でLinuxデスクトップに馴染む使い心地でした。Slackが依存していたレガシーAPIの制限を開始した2018年頃に開発が停止し、GitHubのリポジトリは現在アーカイブ状態です。
Slacken
SlackenはSlack APIを直接呼び出しネイティブUIを持つQt5クライアントへの本格的な挑戦でした。目標は32 MB未満のメモリ使用量という野心的なものでしたが、機能の完成には至りませんでした。最後の意味のあるコミットは2017年で、それ以降Slackの認証フローが大幅に変更されたため、現在のワークスペースには接続できません。
slaq
slaqも同じネイティブAPIアプローチをとるQt5ベースのクライアントです。Slackenより先まで進み、チャンネル・メッセージ・基本的なDMが動作していました。しかし最後の実質的なアップデートは2019年頃で、同様のAPI互換性の問題を抱えています。事実上、開発放棄の状態です。
現在もアクティブなプロジェクト
CrabChat
CrabChatはRustとTauriで書かれたSlackクライアントです。活発にメンテナンスされており、WebViewラッパーアプローチの良い実装例です。ElectronのChromiumをTauriのシステムWebViewに置き換えることで、400〜600 MBではなく200〜300 MB程度のメモリで動作します。Slackのウェブインターフェースをそのまま表示するため、機能は完全です。
ただし「Electronより軽い」と「ネイティブ」は同じではありません。アイドル時のCPU使用率はゼロに近くなく、WebViewで描画されるためOSネイティブのウィジェットとは見た目が異なります。
slk(ターミナルUI)
slkはGoで書かれたTUI(ターミナルUI)Slackクライアントです。20 MB未満と非常に軽量で、起動はミリ秒単位です。ターミナルで作業し主にテキストメッセージだけ使えれば十分という方には試す価値があります。ただし制限は大きく、画像・ファイルプレビュー・絵文字の表示はほぼなく、設定にはコマンドラインとSlackのAPIトークンの知識が必要です。
msga
msgaはQt6で構築されたネイティブ Slackクライアントです。Qt6はTelegram Desktop、VLC、KDEが採用している同じフレームワークです。Slack APIを直接呼び出し、ネイティブQtウィジェットで描画します。機能の充実度と本物のデスクトップ統合の両方を目指す、このカテゴリで現在もメンテナンスされている唯一のクライアントです。
起動時のメモリ使用量:約60 MB。アイドル時のCPU使用率:約0%。対応機能はメッセージング、チャンネル・DM、スレッド、検索、ファイル共有、絵文字リアクションです。ハドル(音声・ビデオ)はロードマップに含まれています。GPL-3.0のオープンソースで、Linux・macOS・Windowsに対応しています。
| プロジェクト | 状態 | アプローチ | RAM |
|---|---|---|---|
| 公式 Slack | アクティブ | Electron | 400 MB – 2 GB+ |
| CrabChat | アクティブ | Tauri / WebView | ~200–300 MB |
| slk(TUI) | アクティブ | ターミナルUI | <20 MB |
| ScudCloud | 2018年アーカイブ | Qt / WebView | — |
| Slacken | 2017年放棄 | Qt5 ネイティブ | — |
| slaq | 2019年放棄 | Qt5 ネイティブ | — |
| msga | アクティブ | Qt6 ネイティブ | 60–80 MB |
msgaの入手方法
msgaはLinux(x86-64)・macOS(Apple Silicon)・Windowsで利用できます。無料かつオープンソースです。メモリの差が実際にどれほど意味を持つかは、Linuxで最も軽いSlackクライアントをご覧ください。