好好学习,天天向上。——毛泽东

https://github.com/simplex-chat/simplex-chat

SimpleX Chat:那个连“你是谁”都不想知道的聊天工具,正在重新发明隐私

在今天这个几乎所有社交产品都热衷于先问你“你是谁”、再问你“认识谁”、最后顺手记下“你什么时候说了什么”的时代,SimpleX Chat像一个安静但固执的人,站在门口,认真地说:

我不想知道你的手机号。
我不想知道你的邮箱。
我甚至不想给你分配一个用户 ID。
你来聊天就好,别把身份档案留在我这里。

这就是 SimpleX Chat,一个从底层理念就和大多数通讯产品走了完全不同路线的开源聊天平台。它在仓库首页里给自己的定义非常直接:这是第一个完全不依赖任何用户标识符的消息平台,天生以隐私为设计核心。

如果把常见聊天软件比作一座座灯火通明的大楼,大家进门先登记、刷卡、拍照、绑定手机号,再按电梯去找人,那么 SimpleX 更像一条不留名的小巷。你和朋友从巷子两头悄悄走来,确认彼此身份,握手,开始说话。巷子本身不打听你是谁,也不关心你和谁熟,更不会悄悄画出一张你社交关系的地图。

而这,正是它最迷人的地方。


它不是“更私密一点”,它是从根上拒绝暴露

很多聊天工具也会说自己重视隐私,也支持端到端加密。可 SimpleX Chat 盯着的,不只是消息内容,还包括另一个常常被忽略、却非常敏感的东西:元数据。

你说了什么很重要。
但你和谁说、什么时候说、联系有多频繁,同样重要。
有时候,这些“外围信息”比消息正文更容易拼出一个人的生活轮廓。

SimpleX 在 README 里强调,自己不仅保护消息内容,还保护“你和谁联系、什么时候联系”这样的元数据。它的核心思路不是在现有账号体系上多盖一层加密被子,而是干脆从源头上减少平台能知道的东西。

它最与众不同的一点,就是没有任何用户标识符

不是“默认隐藏用户名”。
不是“给你一个随机号码”。
不是“注册时不填真名,但系统背后仍然有个唯一 ID”。
而是更彻底的一种态度:平台不给用户分配可追踪的统一身份标识

这意味着什么?

意味着在 SimpleX 的世界里,平台没有一个总钥匙孔能把你所有关系串起来。
意味着它更难知道“这个人和那个人、那群人之间存在怎样的联系”。
意味着它不是在“尽量少收集”,而是在努力做到“结构上就收集不到”。

这种设计,像极了一个极有分寸感的人:他不是答应你“我不会乱看你的信”,而是干脆从一开始就不拿你的门钥匙。


SimpleX Chat 到底是什么

用一句尽量准确但不失温度的话来说,SimpleX Chat 是一个以隐私为核心、开源、支持移动端、桌面端和终端 CLI 的聊天平台。

它提供:

  • Android 应用
  • iOS 应用
  • 桌面端
  • 终端 CLI
  • 机器人与开发接口
  • 群组、文件传输、音视频能力
  • 支持通过自己的服务器使用网络
  • 面向开发者的聊天机器人和集成能力

它的仓库描述也很鲜明:
SimpleX 是第一个不使用任何用户标识符的消息网络,100% 以隐私为设计原则,并提供 iOS、Android 和桌面应用。

注意这里说的是 messaging network,不只是一个聊天 app。
这说明它想做的,不是一层 UI 漂亮的壳,而是一整套通信方式的重构。

SimpleX 把自己理解为平台,也把未来留给了别人。README 里明确写到,它们的承诺是:SimpleX 协议将保持开放,并处于公共领域,任何人都可以基于这些协议构建未来的客户端和服务器实现。

这个姿态很有意思。
它不像在说“请使用我们的产品”,更像在说“如果你认同这种隐私观,请一起把这条路修下去”。


它为什么看起来这么“倔”

SimpleX 的倔,不是为了显得极客,也不是为了做差异化营销,而是因为它对现实世界里通信风险的理解非常清醒。

README 里有一个很重要的判断:
仅仅使用端到端加密的聊天工具还不够,我们还应该使用那些能保护个人关系网络隐私的通信工具。

这是一个容易被忽视、却值得反复咀嚼的观点。

因为很多时候,内容加密了,但关系图谱没有加密。
消息看不见了,但谁和谁频繁联系、谁属于哪个群体、谁和哪个组织有关联,仍然可能被平台、攻击者或者其他观察方推断出来。

SimpleX 不满足于“把信封封好”,它连寄件簿、通讯录索引、门牌登记册都想尽量少留。

所以它做了很多看起来不那么“方便”、但更偏向隐私本质的选择。
比如,建立连接需要分享链接或扫描二维码。这个过程不像“搜手机号一键添加好友”那么顺滑,却更像真实世界里两个人真正确认彼此后再建立联系。

它有点像一位谨慎的守门人,宁愿多走两步,也不愿意为了快捷把门敞太大。


它怎么连接别人

在 SimpleX Chat 里,建立私人连接的方式很特别。

你需要和朋友分享一个链接,或者扫描对方手机上的二维码,可以当面扫,也可以在视频通话中完成。README 还特别说明,共享这个链接的通道本身不一定非得绝对安全,只要你能确认是谁发来的,并确认最终建立的是正确的 SimpleX 连接即可。

这种连接方式很像交换一把只开这一扇门的临时钥匙。
钥匙不是长期通行证,不是你的社会身份证明,也不是可以到处复用的号码牌。它更像一次“只为你我这段关系存在”的桥。

这也是 SimpleX 整体设计哲学的一部分:
尽量让每段关系彼此独立,减少统一标识带来的系统性暴露。

在别的产品里,你像拿着一个全球通用工牌四处走动;
在 SimpleX 里,你更像给不同的人分别留下一张只属于这段联系的小纸条。


它不是反社交,它是在反“被建模”

很多人一听“没有用户 ID”“不能随便被搜到”,会下意识觉得这是不是太封闭了。

其实恰恰相反。
SimpleX 不是反对社交,而是反对人在社交过程中被过度结构化、被大规模画像、被长期追踪。

它并不是想把人推回孤岛,而是想把连接的主导权还给用户。
你决定和谁建立关系。
你决定通过什么方式建立关系。
你决定是否使用自己的服务器。
你决定是否通过 Tor 访问服务器。
你决定本地数据如何保护。
你决定消息如何消失、资料如何隔离。

SimpleX 像一个不爱插嘴的技术管家,把更多控制权交回给用户自己,而不是悄悄把一切方便都变成平台可见性。


它的隐私与安全,不只是口号

如果只会喊“我们很安全”,那不过是互联网世界最常见的背景音。
SimpleX 真正令人印象深刻的地方,是它在 README 里列出了大量已经实现的技术机制,而且每一项都很具体。

它已经实现的能力包括:

  • 每条消息队列使用端到端加密
  • 对话中使用双棘轮算法
  • 在双棘轮协议的每一步引入抗量子密钥交换
  • 增加额外一层加密,减少发送与接收轨迹之间的可关联性
  • 多层消息填充,用于削弱基于消息大小的分析
  • 把包括服务器接收时间在内的元数据放进加密信封中传递
  • 客户端与服务器之间只允许 TLS 1.2/1.3
  • 通过 tlsunique channel binding 机制防御重放攻击
  • 从 v6.0 开始,默认使用私有消息路由来保护 IP 地址
  • 对未知文件中继下载进行确认,避免泄露 IP
  • 支持通过 Tor 访问消息服务器
  • 本地数据库支持口令加密
  • 传输隔离,不同用户档案可走不同 TCP 连接和 Tor 电路
  • 支持手动轮换消息队列
  • 通过 XFTP 协议发送端到端加密文件
  • 本地文件加密
  • 可复现服务器构建

这些技术点单独拎出来看,都已经足以说明它不是“聊天软件想顺便讲点隐私故事”,而是“隐私系统顺便长成了聊天软件”。

尤其值得一提的是,它不仅使用双棘轮,还在 README 中明确提到,抗量子密钥交换已经加入双棘轮协议的每一次棘轮步进。这说明它不满足于应付当下,而是在提前应对未来的密码学风险。

你很少会看到一个聊天项目,把“未来别人可能如何破解今天的安全”也当成今天的设计议题。
SimpleX 看起来就像那种在暴雨来临前,不只是带伞,还顺手把窗框、门缝和屋檐全都补了一遍的人。


它对垃圾信息和滥用的防范,也有自己的思路

没有用户标识符,不代表没有秩序。
高度私密,也不等于对骚扰和垃圾信息束手无策。

README 给出的思路很清楚:因为用户没有公开可搜索的标识符,别人无法在未获允许的情况下直接找到并联系你。要联系你,通常需要你分享一次性邀请链接,或者使用可选的临时用户地址。

换句话说,SimpleX 不把“反垃圾”主要押在“我先知道你是谁,如果你乱来我再封你”这种中心化治理逻辑上,而是尽量通过连接建立方式本身来减少被骚扰的面。

这有点像住宅设计里的“玄关”。
不是先让所有人都进客厅再决定要不要请出去,
而是在门口就把陌生接触面控制得更合理。


数据归谁,它说得很直白

现在很多产品会说“你的数据属于你”,但实现上往往是“属于你,也属于我们的服务器,也属于我们的分析系统,也属于未来可能的推荐模型”。

SimpleX 的说法更干脆:
用户数据存储在客户端设备上;消息只会在中继服务器上临时保留,直到被接收。

这背后的含义并不抽象:

  • 服务器不是你的永久聊天档案馆
  • 平台尽量不成为你完整社交生活的中央仓库
  • 用户设备掌握更多实际数据控制权

它像一个快递中转员:
东西到了,我转交;
你收走了,我不把副本留在仓库慢慢翻。

当然,README 也很诚实,它说 SimpleX Chat 仍然是一个持续演进中的项目,用户需要自己判断当前状态是否适合自己的使用场景。
这种不神化自己的表达,反而更有可信度。它没有装成“万无一失的终极答案”,而是像一个认真做事的人,告诉你:

我已经做到了很多,
还有一些仍在路上,
你应该了解它,而不是盲信它。


用户可以拥有自己的网络

SimpleX 还有一个很打动技术用户的点:
你可以使用自己的服务器,同时仍然和使用默认服务器或其他服务器的人通信。

这意味着它不是那种“开源只是代码公开,真实世界里还是只能围着官方基础设施转”的模式。

它允许用户更深度地参与网络本身。
这是一种非常有生命力的设计。因为真正长久的隐私网络,不能只靠一个中心团队替全世界守门,它需要更多用户和运营者一起构成网络。

README 里还有一句特别有气质的话:
Users own SimpleX network.

这句话不是装饰语,它是架构态度。
网络不是高墙内院,用户不是被动住户。
在这里,用户更像共同修桥的人。


它已经长成什么样了

如果你担心这只是一个概念很美、功能很远的项目,那仓库里的路线图会让你放心很多。

SimpleX 已经完成了大量能力,包括:

  • 终端客户端与群组、文件支持
  • Android 和 iOS 移动应用
  • 桌面客户端
  • 双棘轮端到端加密与额外加密层
  • 音视频通话
  • 群组聊天
  • 数据库导入导出
  • Tor 访问
  • 隐身模式
  • 多用户配置档案
  • 数据库加密
  • 自动清理聊天记录
  • 语音消息
  • 文件与大文件传输
  • 本地文件加密
  • 私密笔记
  • 消息反应
  • 编辑历史
  • 桌面与移动档案联动
  • 私有消息路由
  • 多网络运营商支持

同时,它还在继续推进:

  • 大型群组、社区和公开频道
  • 更短的连接和入群链接
  • 稳定性与电量优化
  • 新用户体验改进
  • 隐私与安全滑杆式统一设置
  • 队列冗余与自动轮换
  • 会话导航与搜索增强
  • 广播与 feeds
  • 位置共享
  • 可编程聊天自动化
  • 可选的、保护隐私的身份服务器
  • 高容量多节点 SMP 中继

如果把这个路线图人格化,SimpleX 像一个已经会走、会跑、会游泳的人,还在计划学滑雪、攀岩和远航。它不是纸上谈兵,而是已经具备成熟能力,同时仍然保持演进野心。


它还有桌面端和命令行,这一点很迷人

README 里专门写了一个“Quick installation of a terminal app”章节。
这意味着 SimpleX 不只是给普通用户准备了图形界面,也给终端用户留了一扇非常自然的门。

快速安装命令如下:

1
curl -o- https://raw.githubusercontent.com/simplex-chat/simplex-chat/stable/install.sh | bash

安装完成后,直接运行:

1
simplex-chat

这两行命令非常有那种老派互联网的浪漫感:
不喧哗,不花哨,不求你先注册十几个流程。
像一个经验老到的工具人轻轻拍了拍你的肩膀,说:来,开聊。

如果你习惯命令行,这种体验会特别顺手。
CLI 不只是能聊天,还能作为开发接口使用,可以执行单独的聊天命令,甚至嵌入脚本场景。

例如,你完全可以把它想象成一个既能与人对话、也能被程序调度的通信引擎。


一个更有极客气质的开始方式

如果你更喜欢从终端感受一个项目的呼吸,可以这样把 SimpleX 请进你的机器:

1
2
curl -o- https://raw.githubusercontent.com/simplex-chat/simplex-chat/stable/install.sh | bash
simplex-chat

如果你想进一步查看 CLI 的使用说明,README 也提示可以阅读 CLI 文档。对于喜欢把工具真正装进工作流的人来说,这是一种很舒服的打开方式。

终端里的 SimpleX 像一个穿着风衣的隐私信使,不站在聚光灯下,却能随时听命出发。


对开发者来说,它不只是一款聊天工具,更像一块可编排的积木

SimpleX 在 README 的开发者部分写得很清楚,你可以:

  • 创建聊天机器人和服务
  • 使用终端 CLI 执行聊天命令
  • 把 SimpleX Chat 库集成到移动应用中
  • 用 Haskell 构建机器人和服务
  • 使用 TypeScript 客户端和示例

如果说普通用户看到的是一个能私密聊天的应用,那么开发者看到的,更像是一个可嵌入、可编排、可扩展的通信平台。

它没有把“聊天能力”锁在一扇官方应用的玻璃门后面,而是把接口、示例和机制铺出来,让你可以在其上继续生长自己的产品和服务。

这件事非常重要。
因为真正有生命力的平台,不是只会说“请在我们的界面里使用我们的功能”,而是会说“如果你有新的想法,请把它接上来”。


机器人能力也相当完整

仓库里的 bots/README.md 进一步说明了它的 Bot API 能做什么。

SimpleX bot 本质上是 SimpleX 网络中的一个参与者,理论上它可以做普通用户几乎能做的一切:发送和接收消息、文件、建立连接、加入群组等等。这个定义很重要,因为它意味着机器人不是一个被限制得很死的外围插件,而是网络中的正式角色。

官方文档提到,机器人适合这些场景:

  • 客服支持
  • 检索与问答机器人
  • 集成 LLM 的信息机器人
  • 群组管理与审核机器人
  • 广播机器人
  • 反馈分发机器人
  • 点对点交易机器人

而创建 bot 的方式也相当直接:
SimpleX Chat CLI 可以作为本地 WebSocket 服务器运行。

示例命令如下:

1
simplex-chat -p 5225

查看所有参数:

1
simplex-chat -h

然后你的 bot 进程通过 WebSocket 连接到 CLI,即可用 JSON 消息发送命令、接收响应和聊天事件。

文档中的命令消息格式长这样:

1
2
3
4
{
"corrId": "unique-id-001",
"cmd": "<command string>"
}

CLI 返回的响应格式像这样:

1
2
3
4
5
6
{
"corrId": "unique-id-001",
"resp": {
"type": "<response record tag>"
}
}

而事件消息格式则是:

1
2
3
4
5
{
"resp": {
"type": "<event record tag>"
}
}

这种设计非常务实。
它不像某些平台那样把机器人能力做成一堆华丽但封闭的控制台,而是干净利落地给出本地 WebSocket API,把主动权交给开发者。

如果把整个 SimpleX Chat 拟人化,它在开发者面前的样子很像这样:

我会聊天。
我能收发消息。
我懂群组。
我会传文件。
如果你愿意,也可以让我学会服务、审核、广播、连接业务。
你不用求我开后门,我本来就打算把门设计成接口。


它甚至连 Bot 的“性格设定”都想到了

bots/README.md 里还有一个很有意思的能力:从 v6.4.3 开始,SimpleX Chat 支持机器人配置,让 bot 在界面里被明确区分,并支持命令高亮和命令菜单展示。

也就是说,bot 不只是后台程序,它还可以有更清晰的“身份形象”和交互方式。

例如文档提供了这样的命令菜单配置方式:

1
/set bot commands 'How to use bot':/help,'Show your groups':/list,'Your group settings':{'Set default role':/'role <ID>','Set anti-spam filter':/'filter <ID>'}

这让 bot 像一个真正会把工具摆好、把按钮贴好标签的服务员,而不只是一个“你得先背会指令语法才能用”的冷面接口。

这种细节很能说明 SimpleX 的产品思维:
它既考虑协议和密码学,也考虑人与工具相处时的摩擦感。


它的开源气质,不只是把代码放出来

SimpleX 是 AGPLv3 许可。
这意味着它不仅开放源代码,也把网络服务场景下的开源义务考虑进来了。对于一个聊天平台而言,这种许可选择本身也很有态度。

更重要的是,它不是把开源当作宣传牌,而是把开放延伸到协议层、机器人能力、服务器可复现构建、客户端与服务端生态可能性上。

你会感觉到,这个项目不是希望用户“相信一个品牌”,而是希望用户“理解一种系统”。

这两者之间的区别很大。
前者更像消费,后者更像参与。


它也很诚实地告诉你自己还在成长

成熟项目最难得的,不是永远显得无懈可击,而是敢于公开自己的边界。

README 里明确写到,SimpleX Chat 仍处于相对早期的平台阶段,可能还存在 bug 和缺失功能;默认服务器是尽力而为,并不承诺 SLA;如果传输层安全对你至关重要,应当使用 Tor 或类似网络。

这种表述没有故作完美,反而让人更安心。
因为真正认真做基础设施的人,通常不会说“放心,绝对没问题”;
他们会说“这里已经做了什么,这里还有什么限制,这里你需要自己判断”。

SimpleX 看起来就属于后者。它不像一个只想卖情绪的产品经理,更像一个拿着结构图、认真交底的工程师。


为什么它值得被更多人看见

因为今天的互联网太需要这种项目了。

我们已经习惯了太多默认值:

  • 注册必须绑定身份
  • 沟通必须可被平台建模
  • 便利必须以暴露关系链为代价
  • “免费”默认意味着你在支付可分析的数据
  • 私密常常只剩内容层加密,关系层却仍然透明

SimpleX 的存在价值,不只是“又一个 messenger”,而是它在提醒人们:
聊天工具不必天生依赖账号中心化。
社交网络不必天生吞下用户关系图谱。
隐私不必是加在商业结构外面的补丁。
它可以是起点。

它像一个在热闹广场边上搭起小木屋的人,木牌上写着:

如果你愿意,我们可以重新设计一次相遇。


如果你适合它,你会很喜欢它

你可能会喜欢 SimpleX Chat,如果你正好是这样的人:

  • 你在意的不只是消息内容加密,也在意联系关系和元数据保护
  • 你不想把手机号当成互联网通行证
  • 你偏爱开源、协议公开、可自托管、可扩展的技术路线
  • 你喜欢移动端之外还有桌面端和 CLI
  • 你希望一个聊天工具既能自己用,也能拿来做 bot、自动化和服务
  • 你愿意为了更真实的隐私,多接受一点不同于主流社交产品的连接方式

它不一定适合所有人。
如果你追求的是“像通讯录一样一秒搜到所有人”的极致便利,它可能不会讨好你。
但如果你想要的是一种更克制、更分寸、更结构化保护隐私的通信方式,SimpleX 很可能会让你眼前一亮。


写在最后

SimpleX Chat 最吸引人的,不只是它做了多少功能,而是它始终没有忘记自己为什么存在。

它不是先做一个聊天产品,再补一层隐私叙事。
它更像是先坚定地站在隐私这一边,然后一步一步把聊天、文件、群组、通话、桌面端、CLI、Bot API 全都长了出来。

它像一个沉默但很有原则的人。
不爱炫耀,却把很多关键的事情做得极深。
不急着认识你,不急着给你编号,不急着替你管理社交关系。
它只是认真地为你留出一块地方,让连接这件事,重新变得属于你自己。

如果说很多聊天软件是在问:
怎样让沟通更高效地发生?

那么 SimpleX Chat 追问的是:
怎样让沟通在发生时,尽可能少地暴露你。

而这个问题,值得被更多人认真听见。


参考的仓库信息梳理

项目名称:SimpleX Chat
仓库地址:https://github.com/simplex-chat/simplex-chat
项目描述:SimpleX - the first messaging network operating without user identifiers of any kind - 100% private by design! iOS, Android and desktop apps 📱!
默认分支:stable
官网:https://simplex.chat


文中涉及的命令示例汇总

安装终端版 SimpleX Chat

1
curl -o- https://raw.githubusercontent.com/simplex-chat/simplex-chat/stable/install.sh | bash

启动终端聊天客户端

1
simplex-chat

以 WebSocket 服务器方式运行 CLI

1
simplex-chat -p 5225

查看 CLI 帮助

1
simplex-chat -h

Bot 命令消息示例

1
2
3
4
{
"corrId": "unique-id-001",
"cmd": "<command string>"
}

Bot 响应消息示例

1
2
3
4
5
6
{
"corrId": "unique-id-001",
"resp": {
"type": "<response record tag>"
}
}

Bot 事件消息示例

1
2
3
4
5
{
"resp": {
"type": "<event record tag>"
}
}

配置 Bot 命令菜单示例

1
/set bot commands 'How to use bot':/help,'Show your groups':/list,'Your group settings':{'Set default role':/'role <ID>','Set anti-spam filter':/'filter <ID>'}