如何将 Discord 迁移到终端,以及你可能想要这么做的原因
有时候你会发现,在 IDE 和那个笨重的 Electron 版 Discord 之间来回切换变得越来越烦人。内存不断被消耗,风扇开始狂转,而你只是想回复聊天中的同事或查看频道里的日志。我偶然发现了 Concord 项目——一个用 Rust 编写的 Discord TUI 客户端。它将熟悉的即时通讯界面转变为一个轻量级的控制台应用程序,占用资源极少,操作方式几乎像 Vim 一样。
它是什么
Concord 不仅仅是一个消息阅读器——它是一个基于 ratatui 库构建的全功能客户端。作者明显借鉴了开发者控制台工具的设计:面板布局、热键支持,甚至直接在终端中渲染图像。
这个项目对于那些整天在控制台工作、想减少上下文切换的人来说很有用。不用 alt-tab 切换到浏览器或桌面应用,只需切换到下一个终端窗口或 tmux 会话即可。

打动我的主要功能
图形渲染
现代 TUI 工具最令人印象深刻的是图像处理能力。Concord 可以显示图片、头像和自定义表情符号。它会自动检测你的终端能力并选择协议:Kitty、iTerm2 或 Sixel。如果你的终端比较老旧,客户端会回退到半块字符渲染,看起来像像素艺术。
Vim 爱好者导航
如果你习惯了 h、j、k、l,你会感到宾至如归。界面被分成四个区域:服务器、频道、消息和成员列表。你可以用 1-4 键或 Tab 在它们之间轻松跳转。还有一个类似 Neovim 的 leader key(默认是空格)用于快速操作。
完整的 Markdown 和代码支持
Discord 以其格式化功能著称,Concord 也能正确处理。粗体、斜体、列表,以及最重要的代码块语法高亮,看起来都很整洁。

语音频道
说实话,我原本以为控制台客户端的语音功能只是个摆设,但实际上它已经完整实现了。你可以加入语音频道、静音自己,甚至能看到谁在说话(当前发言者会高亮显示)。mpv 负责音频输出。
技术细节
项目用 Rust 编写,这解释了它资源占用低的原因。正常模式下,Concord 消耗约 20–40 MB 内存。当然,如果你打开一个充满重图的频道,解码时内存可能会短暂飙升至 100–200 MB,但它仍然远不及 Electron 的胃口。
对于媒体处理(音频和视频),Concord 依赖系统上安装的 mpv。如果你计划直接通过客户端观看 YouTube 视频,请确保已配置好 yt-dlp。
开始使用
安装相当简单。如果你在 macOS 上,一条命令就能搞定:
brew install concord
Linux 用户可以使用 Nix 包或通过 cargo 从源码构建。
首次启动会提示你授权。你有三个选项:登录名/密码、二维码,或令牌。作者建议使用令牌,因为 Discord 经常对第三方客户端触发验证码,而 Concord 无法解决验证码问题。
顺便说一下安全方面:令牌默认存储在系统密钥链中,所以除非你明确选择其他方式,否则它们不会以明文形式出现在配置文件中。
适用人群
Concord 肯定不会取代所有人的官方客户端。例如,如果屏幕共享或复杂的流媒体设置对你很重要,TUI 客户端帮不上忙。但如果你的 Discord 使用场景涉及线程对话、监控频道告警和偶尔的语音通话,这个工具可能会成为你的首选。
Concord 在低端机器或远程服务器上特别有用,在这些地方运行图形界面是一种奢侈。此外,与终端环境的其余部分保持统一风格所带来的美学愉悦是不可否认的。
值得记住的是,使用非官方客户端在技术上违反了 Discord 的服务条款。在实践中,封号很少见(通常如果你开始发垃圾信息或使用自建机器人),但风险虽然很小,仍然由你承担。正如作者所指出的,最好避免通过 Concord 向陌生人发送新私信——那是反欺诈系统的触发条件之一。除此之外,使用体验还是很顺畅的。
相关项目