【脱Electron】Go製TUIクライアント「Discordo」が開発環境を最適化する理由


【脱Electron】Go製TUIクライアント「Discordo」が開発環境を最適化する理由

ayn2op/discordo

2025-11-16

Discordoは、Discordのクライアントをターミナル上(TUI Terminal User Interface)で動作させるための軽量かつセキュアなソフトウェアです。

言語・環境
Go言語 (Golang) で書かれており、Linux環境での利用が想定されています。

特徴

軽量性 (Lightweight)
グラフィカルなクライアントに比べてリソース消費が非常に少ないです。

TUI (Terminal User Interface)
キーボード操作を主体とし、CUI(Character User Interface)にグラフィカルな要素を加えた、ターミナル上でリッチな操作感を提供します。

セキュリティ
2要素認証やQRコード認証にも対応しています。

機能
マウス・クリップボードのサポート、添付ファイルの表示、DiscordのMarkdown(装飾)表示など、必要な機能が揃っています。

なぜ、わざわざGUIのDiscordクライアントではなく、このTUIクライアントを使うのか?エンジニアにとっての動機は以下の通りです。

集中力の維持と環境の統一

多くのエンジニアはターミナル(コンソール)を開発の主戦場としています。Discordoを導入すれば、開発中のウィンドウから目を離さずにコミュニケーションが可能です。

GUIアプリに切り替えるわずかな時間や、通知ウィンドウに気を取られることが減り、集中力(フロー)を保ちやすくなります。

リソース効率の向上

ElectronベースのDiscord公式クライアントは、往々にしてメモリやCPUを多く消費しがちです。DiscordoはGo言語製で軽量なため、サーバーや仮想環境、非力なマシンでも軽快に動作し、開発リソースを圧迫しません。

自動化・カスタマイズの可能性

TUIクライアントであるため、シェルスクリプトや外部ツールと連携して、通知のカスタマイズや特定操作の自動化といった、エンジニアらしい高度な連携・カスタマイズの土台として利用できる可能性があります。(直接的なAPIではありませんが、ターミナル操作の一部として組み込めます。)

Go言語で書かれているため、Goの環境があれば比較的簡単に導入できます。

まだGo言語をインストールしていない場合は、先にシステムに導入してください(Linuxではパッケージマネージャ経由が一般的です)。

Goの標準的なインストールコマンドを使います。

# Goの'go install'コマンドでリポジトリから直接ビルド&インストール
go install github.com/ayn2op/discordo@latest

このコマンドを実行すると、Discordoがビルドされ、通常は $GOPATH/bin または $GOBIN に実行ファイルが配置されます。

ターミナルで実行ファイルを起動します。

discordo

初回起動時、認証情報(ユーザーのトークンなど)の入力を求められるか、設定ファイルを作成する流れになります。

Discordo自体はアプリケーションコードではなく、クライアントソフトウェアであるため、ユーザーが直接書く「サンプルコード」というものは基本的にありません。

しかし、エンジニアとして「設定」と「利用」の観点から、関連する具体的な例を挙げます。

Discordoは設定ファイル(通常はTOML形式など)を使って挙動をカスタマイズできます。これは「コード」ではありませんが、エンジニアが最も触れるカスタマイズポイントです。

# ~/.config/discordo/config.toml (設定ファイルの例)
# このようなファイルでUIのテーマやキーバインドを設定できます。

[ui]
theme = "dark" # "light" やカスタムテーマを設定
messages_limit = 50 # 一度に表示するメッセージ数

[keybinds]
# キーバインドをカスタムする例
switch_channel_up = "C-k" # Ctrl + k でチャンネルを上に移動
send_message = "<enter>"

ターミナル環境での利用をより便利にするために、シェルスクリプトに組み込むことが考えられます。これは環境設定の自動化という点で「コード」と言えます。

#!/bin/bash
# dis-start.sh : Discordoを特定のターミナル設定で起動するスクリプト

# 1. 起動前に環境変数でテーマを一時的に変更したい場合
export DISCORDO_THEME="monokai"

# 2. Tmuxの新しいペインで起動し、常に開発作業の横に表示する
# Tmuxを使っていない場合は 'discordo' だけでOKです
tmux split-window -v -p 30 "discordo"
tmux select-pane -t 0 # メインの開発画面に戻る

このように、Discordoはターミナル環境という「現場」に溶け込み、エンジニアの作業効率を向上させる、まさに「開発効率化の相棒」となってくれるでしょう!


ayn2op/discordo




Dockerだけじゃない!Moby Projectで自作コンテナ環境を構築する

Moby Project ってのはな、一言で言うと「コンテナをベースにしたシステムを作るための、オープンソースのツールキット」だ。例えるなら、俺たちが事件現場で使う道具一式、例えば手錠とか懐中電灯とか、そういうのを全部まとめて提供してくれるようなもんだな。


妹が教える!エンジニアのためのOllama活用術

ねえねえ、最近流行りの「Ollama」って知ってる?お兄ちゃんの好きそうな、めちゃくちゃ便利なツールなんだよ!Ollamaはね、お兄ちゃんのパソコンで、いろんなAIモデルを簡単に動かせるようにしてくれるすごーいツールなんだ!今までだと、AIモデルを使おうと思ったら、いろいろ難しそうな設定をしなきゃいけなかったり、パソコンの性能が足りなかったりしたんだけど、Ollamaを使えば、そんな心配はほとんどいらなくなるんだって!


牛丼一筋の心意気で学ぶ、Go言語とgRPCによる高速RPC通信

一言でいうと、「Go言語でサクッとマイクロサービスを構築するための、うまい、早い、安いRPCフレームワーク」です。RPC(Remote Procedure Call)とは、ネットワーク越しに別々のプログラムの関数を呼び出す仕組みのこと。簡単に言えば、サーバーの機能(関数)を、クライアントからまるで自分のプログラム内の関数のように呼び出せるようにしてくれる技術です。


もう悩まない! Go言語からRedisを使うためのベストパートナー「Redis Goクライアント」

そうですね、彼女がたくさんの水着の中から、どれが一番自分に似合うか、海辺で輝けるかを悩むように、私たちソフトウェアエンジニアも、たくさんのライブラリの中から、どのツールがプロジェクトに最適か、効率的に開発できるかを悩むことがあります。今回は、その悩みを解決してくれる頼もしい相棒の一つ、Redis Go clientについて、彼女の水着選びをサポートする優しい彼氏のように、分かりやすく丁寧に解説していきますね!


【エンジニア向け】Infisicalで秘密情報も体重もスマートに管理!

ダイエット中のエンジニアさん、お疲れ様です!食事制限、運動、そしてコード. .. 毎日やることがいっぱいですよね。でも、ちょっと待ってください!あなたのコードの中にも、ひっそりと隠れている「秘密」はありませんか?そう、APIキーとかデータベースのパスワードとか


Go言語でCLIを楽しく!Bubble Tea入門

やぁ、ソフトウェアエンジニアの皆さん!今日は、Go言語を使ったCLI開発を劇的に楽しくしてくれるフレームワーク「Bubble Tea」について、飲み比べコント風にご紹介しますね。このお酒、見た目は素朴な「ターミナル画面」なんだけど、一口飲むと「わ、これすごい!」ってなるんですよ。


【爆速】autobrr/qui で実現する、qBittorrent 複数管理の極上体験

autobrr/qui を一言で表すなら、まさに「職人が注いだ、雑味のない生ビール」のようなツールです。余計なものを削ぎ落とし、必要な機能だけを最高速で提供してくれます。エンジニア的な視点で見ると、このツールがいかに洗練されているかが分かります。


メディアサーバーの決定版!bluenviron/mediamtxで君のプロジェクトにモジョを注入!

オースティン・パワーズだぜ!今回は君たちソフトウェアエンジニアの悩みを解決する、とびっきりクールなツールを紹介するぜ!その名も「bluenviron/mediamtx」!君たちのプロジェクトに、こう、なんていうか…「映像と音声のセクシーな魔法」をかけることができるんだ!この「mediamtx」は、まるで僕のモジョみたいに、あらゆる種類のメディアストリームを自由自在に操れる、まさに究極のメディアサーバー&プロキシなんだ!


Go言語エンジニアのためのWhatsApp連携術:whatsmeow徹底解説

whatsmeow は、Go言語(Golang)で書かれた、WhatsApp Web のマルチデバイス API を扱うためのライブラリです。「マルチデバイス API」というのがポイントで、スマートフォンがオフラインでも機能する、新しいWhatsAppの仕組みに対応しています。つまり、これを使えば、プログラムからWhatsAppのメッセージを送受信したり、アカウント情報を管理したりといった操作が可能になります。


GOWA参上!WhatsApp自動化で開発効率を爆上げだ!

悪の組織に立ち向かう戦隊ヒーローのように、私たちソフトウェアエンジニアも日夜、様々な課題と戦っています。その中でも「WhatsAppの自動化」は、多くの人が直面する難題の一つでした。しかし、GOWAという強力な味方が現れました!GOWAは、Go言語で開発されたWhatsApp REST APIです。簡単に言うと、あなたのプログラムからWhatsAppを操作できるようにするツールですね。これまでのWhatsApp自動化は、ブラウザを操作したり、非公式なライブラリを使ったりと、不安定なものが多かったんです。でもGOWAは、公式のWhatsApp Webマルチデバイス機能に対応しているので、安定性が格段に向上しました!