Gloomberb:开源的键盘驱动金融终端
文章摘要
Gloomberb 是一个开源金融终端,标语是「快速、键盘驱动、可扩展」。它有两套外壳共享同一份内核:桌面应用(macOS 和 Windows,提供打磨过的应用窗口、可弹出的面板、系统快捷键和内置更新)与终端 UI(macOS、Linux、Windows,适合终端里的快速键盘工作流、SSH/开发机、Linux 机器和脚本化场景)。两者共享同一套命令语言、插件系统、行情界面、投资组合、自选列表、提醒、笔记和 AI 工具。项目 MIT 许可,布局引擎用的是 OpenTUI,安装方式包括 Homebrew cask、curl | bash 脚本,或者在装了 Bun 的机器上直接 bun install -g gloomberb。
命名和交互都在刻意致敬 Bloomberg 终端。用 Ctrl+P 打开命令模式,反引号直接打开代码搜索;命令是 Bloomberg 式的助记缩写:DES AAPL 看证券详情,GP NVDA 看价格图,TOP 看排序后的市场新闻,HM 看市场热力图,MOST 看涨跌幅榜,PF 看投资组合与自选,KELLY AAPL 算凯利仓位,HELP 列出全部快捷键。功能覆盖面相当宽:公司研究(报价、图表、财务报表、SEC 备案、持股人、内部人交易、期权、分析师评级、事件、相对估值、13F)、市场跟踪(头条、行业新闻、Substack 订阅、全球指数、外汇、宏观事件、收益率曲线、涨跌幅榜、恐惧贪婪指数、国会议员交易披露、TV 甚至能在终端里放 Bloomberg/CNBC/Yahoo Finance 的直播电视)、以及投资组合、券商连接(含 IBKR 交易面板)、价格提醒、笔记、AI 选股和 Gloom Cloud 聊天。
技术上有几个设计值得一提。图表合成器允许把彼此无关的数据源混在同一条同步时间轴上,例如把苹果的价格、微软的营收和 FRED 的 CPI 数据画在一起;支持蜡烛/OHLC/HLC/线/面积等模式,独立的左右轴、线性或对数刻度,一分钟到月线的周期,以及 SMA、EMA、布林带、RSI、MACD 等指标和比值、价差、滚动相关性等配对公式。混频数据用 as-of 对齐:基本面尽可能使用备案日期,稀疏序列只在可用之后向前填充,缺失发布日期会在图表状态里标出。一切皆插件——从投资组合列表到券商集成都是插件,插件可以添加面板、标签页、列、命令栏命令、CLI 命令、状态栏小组件和数据提供方。CLI 是一等公民:不带参数运行进入 TUI,普通命令走无头 CLI 路径,默认输出人类可读格式,自动化可以用 --json、--csv、--ndjson 切换成结构化输出。界面还做了英语、西班牙语、简中、繁中、日语、韩语六语言支持,并特意说明 BID、ASK、CHG% 这类金融缩写故意保留英文以符合终端惯例和等宽对齐。
需要说明的是,HN 上这条帖子的标题就是干巴巴的一个词「Gloomberb」,作者本人没有在评论区露面,所以下面这些讨论完全是社区自发的——而且它很快就跑到了作者大概没预料到的方向上。
HN 评论精华
这条帖子拿到 439 分和 224 条评论,但讨论的重心几乎完全不在这个软件本身。三条主线依次是:Bloomberg 终端真正的护城河到底是什么、curl | bash 加 JavaScript 运行时的分发方式该不该被容忍、以及这是不是一坨「vibe coded 的 AI 垃圾」。
主线一:Bloomberg 的护城河是聊天,不是界面。
- u8 的开场帖成了全场热度最高的一条:「大家每年掏 31,980 美元给 Bloomberg,买的不是一个 TUI。他们买的是数据源——我不认为你有 Bloomberg 的那些关系。」
- ryukoposting 转述了一位金融业老友的说法,是整条串信息量最大的一条:「① Bloomberg 在前互联网时代领先其他一切太多,所以积累了大量的 UI 熟悉度。② Bloomberg 的聊天之所以重要,是因为作为对冲基金或投行,聊天就是你买卖债券的方式——你在聊天里谈成交易,然后让后台去执行。」 他直接引用了原话:「我敢打赌每年约 400 万亿美元的债券交易额里,90% 发生在 Bloomberg 的私信里。」 第三点是 Bloomberg 是最大也最好的聚合方。他自己的感慨是:「这对我很有启发,因为我一直以为延迟才是关键——毕竟我唯一一次亲眼见到的 Bloomberg 终端接的是自己专属的光纤。看来聊天和数据的广度才是差异所在。」
- 关于「为什么一个聊天软件能构成护城河」,lesam 给出了最简洁的解释:「有一个被两万美元年费门槛挡住的聊天应用是真的有用。当有人要把一个价值百万美元以上的资产卖给你时,这是个特别有用的信号。」 kortilla 换了个比喻:「和乡村俱乐部一个道理。仅凭对方出现在这里,你就已经知道了关于他的很多事。」 zipy124 补了一个法律层面的原因:这基本能保证对方是合格投资者,因而不会触犯公开劝诱的相关规则。
- traceroute66 则坚持数据才是核心,并对「只是聊天」的说法很不客气:「想要固定收益数据,Bloomberg 是街上唯一一家。……说 Bloomberg 就只是聊天的人纯粹是在丢自己的脸。看看 Eikon、Factset、CapIQ 的价目表。世上不存在便宜的『Bloomberg 杀手』。优质数据很贵,数据到达 Bloomberg 所走的专线很贵,数据处理架构也很贵。」 d–b 提供了一个内行细节:很多数据并不包含在标准 Bloomberg 许可里,要额外付费(大部分是转付给数据供应商的);他的结论是 Bloomberg 的统治地位没有单一原因,但唯一真正把人留住的功能是聊天。ovrnightr 补充了另一个常被忽略的角色:Bloomberg 同时是其他数据供应商的分发渠道——比如你从 S&P Global 买的天然气管道流量数据和指数价格,也可以经由 Bloomberg 访问,它把数据源汇到了一处。
- rmah 算了笔账反驳「太贵」:Bloomberg 终端按 240 个工作日算只有每天 133 美元,「相对一个分析师或交易员的年度总成本,3.2 万并不算大。当然他们能省则省,但如果 Bloomberg 一年能在一两笔交易上给你优势,你就已经赚回来了。」jpfromlondon 补了那句经典:「没人会因为选了 Bloomberg 而被开除,即便存在可行的替代品,也没人会去当第一个换的人。」 weinzierl 的角度最独特:「Bloomberg 终端的价值不是 UI,是一致性。你买的不是油门和刹车踏板,你买的是『它们百分之百会出现在超过十万人被训练去找的那个位置』这一保证。」
- hodder 是少数唱反调的:「这套说辞被反复重复,但我向你保证,金融从业者可以也确实很容易迁移到 ICE chat 之类的其他消息平台。这不构成 BBG 的护城河。」dist-epoch 则给出了完全相反的极端观察:「很多人订 Bloomberg 终端只是为了聊天,别的什么都不用。」
- 顺带留下几段趣闻:mattnewton「今天学到 Bloomberg 终端是最早的 iMessage 蓝气泡网络」;pizzalife「想到世界上一些最大的交易是在一个长得像游戏里交易频道的东西里完成的,挺好笑(WTS 债券)」;以及 lq9AJ8yrfs 的一条硬核回忆:「很长一段时间里,固定收益交易是通过 AOL 即时通和后来的雅虎聊天室进行的。我没有编。当时有定制前端会把 CUSIP 之类的东西做富文本增强。」 nose 问「有没有金融圈版的 Hacker News」,RattlesnakeJake 秒回:「显然就是 Bloomberg 聊天。」
主线二:curl | bash 装一个 JS 运行时。
- slowin 那条同样冲到了顶部:「我真希望大家在给出这种 curl 安装脚本时说明自己的技术栈。我宁愿用真正的包管理器……但我 100% 不会装这种 Java/TypeScript 噩梦。它怎么解析依赖?会不会在我机器上装某个版本的 node、bun?和我已有的版本怎么共处?」 他的附加主张是:「拜托别用非编译语言写命令行工具!别把运行时变成用户的问题。」 他后来补充说自己更担心的其实不是安全而是搞坏系统——某些 JS 组件已经在他机器上存在,不是出于他的选择。他提出的具体改进也很合理:在 curl 命令旁边写一句「这会安装一个 Bun 打包的单文件可执行程序,想自己装可以看 GitHub Releases」。
- 反驳同样有力。CharlesW:源码链接就挂在显眼位置;而且大约 40% 的 Linux 命令行工具是用解释型语言写的。cztomsik 补了一刀:「重点是连 bash 本身也是解释型的。」AgentME 给出了另一个角度:「用非编译语言写的命令行工具,仍然远好过用非内存安全语言写的联网工具。」 zeroq 的立场最务实:「TS/JS 不是问题。你可以也应该把依赖 eject 出来、随发布一起打包,我不理解这为什么不是常规做法。……对这类东西我其实更愿意要一份能逐行检查的解释型代码,而不是一坨来源不明的二进制。」
- munksbeer 提出了一个诚实的元问题:「这似乎已经变成了『大家都这么做』的事。我搞不清它是不是真的像感觉上那么糟。为什么我要对一个可能干任何事的东西跑
curl | bash?我们学到的所有教训就这么被扔了,感觉很疯狂。另一方面,我跑brew install someapp就莫名觉得更安全——可为什么呢?那个 app 也可能在干任何事啊。」wett 给了两条他刚学到的具体理由:① 如果连接在传输中途断掉,bash 仍然会执行已收到的部分,于是rm -rf ~/.local/bin/whatever可能变成rm -rf ~(作者可以把一切包进函数来避免,但你如果不先存成文件就没法知道他有没有这么做);② 假如链接指向一个 S3 桶而它被攻破了,没有任何 payload 记录可供事后分析。 - massysett 写了整条串里最温暖的一条,专门写给作者看:「感谢你把你的自由软件给了这个世界。不要觉得有义务为了取悦批评者去做额外的工作。他们没有为你的软件付钱,也没有在付你的账单。如果你的安装程序吃掉巨量内存、或者用了他们不喜欢的编程语言,那是他们的问题。」 而 xerox13ster 的反驳几乎是这条串的情绪顶点:「我不知道啊。如果他们对批评这么敏感,也许该离开这个行业。这种抱团取暖在五年前的零利率时代或许还行,但在两条内存条快要 800 美元的时代……开发者有责任让程序高效,有责任不给每一个应用都塞进一个 500MB 的内存黑洞。这位开发者付我的 RAM 钱吗?我在消费级硬件上跑本地模型,我付不起给一个 CLI 应用的 500MB。」 他还追了一句业务层面的质疑:「更别提解释型语言比编译型慢,而我们讨论的是一个金融终端。这叫连自己在造的东西的功能需求都没搞明白。」
主线三:这是不是 AI 垃圾?
- gymbeaux:「现在看到新软件,我的第一反应就是这是 LLM 写的,于是我就不想用了。我还会默认它有 bug、功能也不够丰富。」phplovesong、sigmonsays、mistercheph 等多人持同样态度,jeffbee 的断言最绝对:「过去几年你见过的任何 TUI,都是 100% vibe coded 的垃圾。」
- dpmartinez 在这里发起了整条串最有价值的一次概念澄清:「我开始觉得『slop』正在变成『这个人可能用了也可能没用 AI 来写软件,而我不喜欢』的同义词。」jeffbee 给出定义:「当作者没有 AI 就做不出来时,它就是 slop。」 dpmartinez 于是拿 Vim 反将一军——Vim 的贡献指南允许 AI 辅助,Claude 的贡献散落在 Vim 的 C 代码库里,那么 Vim 现在是 100% slop 的 TUI 吗?jeffbee 的回答是「当有多个协作者、且其中至少一人知道自己在干什么时,slop 可以被洗白;而完全由 Claude 写成的独著作品永远只是 slop」。MyHonestOpinon 提供了一个更有同理心的视角:「越来越难做到不用 LLM 了……我们想用的是那些被用心打磨过的项目,不管有没有用 LLM,但那很难判断。这让我想起 30 年前,在代码格式化工具流行之前,你光看代码格式有多讲究就能判断出好代码。」
- 网站本身的质量问题给这条主线添了不少柴火。TZubiri 贴图指出首页 hero 区的「Gloomberg」字样渲染得一团糟,「但愿不是故意的」;genewitch 证实在 Windows 上的 Firefox、Edge 和 Brave 里都以完全相同的方式坏掉。KomoD 补充:右上角的下载按钮给 .dmg,hero 里的给 .exe,页脚的又给 .dmg,文档页 404,博客是空的。TZubiri 给出了一句很多人认同的判断:「我们的时间有限,所以在评估产品时,我们会抓住任何可能的借口否掉一家供应商。如果你在 2026 年连一个网页都做不好,你就没有机会做出任何复杂或创新的东西。」 但 dpmartinez 反驳说站点显然还是半成品、而源码才是他更感兴趣的东西,双方随后就「开源到底意味不意味着你该自己去修」吵了很长一段——TZubiri 的观点是:成功的开源项目是靠向开发者提供价值来招募开发者的;如果你在别人还没装上产品之前就已经失败了,那就没有任何理由让人立刻开始贡献。
其余值得记录的声音:
- rdiddly 试图把讨论拉回原点:「就凭它本身也是有用的。所有被这个名字带跑、过不去那道坎的人,那边某处正在形成一条把它和 Bloomberg 比较的串。」 他还给「不值 3.2 万」的批评回了一句:「幸好人家没打算卖你 31,980 美元一年?」
- 但 pverheggen 给出了公允的反面意见:「话虽如此,很多人就是会仅凭名字下结论,这是人性。取名字时这一点绝对要考虑。」 他举了 JSON5 的例子:这个名字让人本能地以为它是 JSON 的「HTML5」,实际上它有自己的用途但完全不取代 JSON,名字本身给它带来了坏名声。「如果你取一个叫 Gloomberb 的名字,最显而易见的解读就是它想做 Bloomberg 的替代品。」nancyminusone:「这名字让人以为它只推送坏消息。」justsid:「我确实以为这是给末日刷屏的人做的 Bloomberg 终端。」
- brendoelfrendo 给了这个产品在实际定位上最合理的评价:「我觉得这里有几个小组件挺不错也挺有用。它不是 Bloomberg 的替代品,但它也许能替代掉几个浏览器标签页?这些信息你在别处也能拿到,只是我更喜欢这个呈现方式。」 他随后补充:看到有 pro 订阅了,虽然理解云服务不免费,但「不确定我愿意为替掉几个标签页付钱」。nemomarx 顺着这条提出了开源的边界问题:除非你付的纯粹是第三方数据源的开关,否则服务端一定有代码在处理这些数据流,那部分服务端代码是不是 MIT 的?一个开源的界面接一个专有的后端,并不是真正完全可审计。
- 数据源方面,crossthestreams 通过翻仓库确认是 Yahoo 和 SEC 的备案数据;ComputerPerson 指出这对历史数据不利,「基本上你需要每月 30 美元的订阅才有历史数据」。bfrink 给出了这条串里关于「为什么自己抓数据不划算」最好的解释:美国的财报在 EDGAR 上免费公开,但接下来你要解析非结构化数据、把它标准化到能拿银行和航空公司和制造商互相比较、还要处理历史上所有的并购、以及公司对既往期间做的每一次修订——到这个份上你已经在谈真金白银了,Cap IQ、Compustat、Factset 的价格开始显得挺有吸引力,尤其是当你的 alpha 并不来自你自己整理财报的独门方法时。
- grahammccain 提出了整条串最有野心的观点:「我不觉得金融领域需要一个更好的 Bloomberg,我觉得整个界面和一切都需要被重新想过。护城河的一部分是数据和数据获取,但我认为我们需要在引入 AI 之后彻底重新想象终端界面和交互方式。金融业大概会适应得很慢,但我真心认为有人可以用一个原创想法颠覆华尔街 99% 的生意。」 springtimesun 的回应给这个想法泼了盆冷水,也点破了整条讨论的底色:「我的观察是,金融、银行和层级足够高的企业职能,运作起来更像一个会所而不是一门你死我活的生意。你以为你只需要做出更好的界面,但如果你不是这个圈子里的人,你根本做不成这门生意,甚至连开一枪的机会都没有。」 cube00 用一句名言收尾:「这是个大俱乐部,而你不在里面。」
- 其他替代品也被翻了出来:seltzered_ 提到 OpenBB 是另一个试图做开放 Bloomberg 替代品的努力;dewey 提到 Godel Terminal(虽不开源),eudamoniac 顺便讲了个八卦——他很久以前面试过 Godel,本来大概能拿到 offer,结果创始人在他面试流程中途被定罪,招聘就停了。
- 最后是一条把整件事拉回人间的评论,bellowsgulch:「我就是个普通人,但金融屏幕在我看来纯属自嗨。如果你在纽约有个交易台,也许是另一回事,就算那样大概也不是。可如果你只是洛杉矶某个手上有点闲钱的无名之辈,这些东西、六块并排的显示器、RGB 机箱,没有任何一样能告诉你什么能带来长期优势。」 他转述了自己听过的最精辟的一句说法:这些东西连同比特币和各种玩意儿,是「给年轻易感男性的星座运势」。