mcpField
T
Torus

Torus

本地服务
github.com金融数据15 天前更新

关于 Torus

Torus 是面向使用 Claude 或 Codex 的股票分析师、投资组合经理和个人投资者的本地优先研究记忆工具。它以带版本的图谱关联有来源的论点、投资论题和公司关系,并追踪文件与新闻对论题的影响。

主要功能

  1. 01保存有来源的论点与投资论题
  2. 02映射公司的供应商、客户和竞争者
  3. 03分析 SEC 文件与新闻对论题的影响
  4. 04追踪提醒、研究历史和评分卡
  5. 05探索本地 SQLite 研究图谱

适用场景

  1. 01基于既有论题继续公司研究
  2. 02评估文件对投资观点的影响
  3. 03审查过时或来源薄弱的论点
  4. 04对照市场回顾论题表现

MCP 相关

其 MCP 服务向 Claude 和 Codex 提供研究记忆与分析工具,包括检索、记录论点、比较申报文件、提醒和评分卡。`torus setup` 可配置受支持的客户端。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sekhar14-torus": {
"command": "uvx",
"args": [
"torus-kg"
],
"env": {
"TORUS_HOME": "<TORUS_HOME>",
"TORUS_TOOLSET": "<TORUS_TOOLSET>",
"TORUS_CAPTURE_MODE": "<TORUS_CAPTURE_MODE>"
}
}
}
}
启动命令uvx torus-kg
需要配置的环境变量
TORUS_HOMEFolder for the research graph and caches (default ~/.torus)
TORUS_TOOLSETWhich tools to expose: analyst hides queue and maintenance tools (default full)
TORUS_CAPTURE_MODEHow eagerly research is recorded

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypitorus-kg0.4.1

工具

45

收录的工具列表 · 更新于 6 天前

参数类型必填说明
textstring否用户的问题或公司名称(仅需摘要时留空)

详细介绍

Torus

为 Claude Code、Claude Desktop 和 Codex 打造的股票研究记忆库。 Torus 让 Claude 记住你的股票研究。作答前,Claude 会看到你对某家公司的已有了解:你的投资论点、支撑论点且注明来源的事实、公司的供应商、客户和竞争对手,以及你排除的想法。新研究会在旧研究的基础上推进,每条新事实都会连同来源一起保存。当新的 SEC 文件或新闻报道可能动摇某个论点时,Torus 会向你发出提醒:事件发生时在桌面上提醒,也可以通过电子邮件、Slack、Discord 或 ntfy 发送每日或每周摘要。

Torus 图谱探索器:半导体价值链中的 NVIDIA、Micron 和 AMD 投资论点、来自 TSMC 文件的提醒,以及时间滑块

询问 Claude “NVIDIA 仍然受供应限制吗?”,它会从你已有的结论出发,而不是从头开始。Torus 会保存:

  • 你关注的公司以及它们之间的关系:供应商、客户、竞争对手
  • 关于这些公司的论断,每条都注明来源(10-K、财报电话会议、文章)
  • 你的投资论点:看涨或看跌、所依据的论断,以及可能推翻论点的因素
  • 你排除的想法,让你不必重复研究

当有 10-K、10-Q、8-K 或新闻出现时,Torus 会判断它影响了哪些投资论点、通过哪些供应商或客户关系产生影响,以及影响有多大。它还会确保研究严谨(哪些信息已经过时、哪些结论仅依据一个来源、怀疑者会怎么说),并追踪你的判断相对于市场的表现。

专为分析师、投资组合经理和严肃的个人投资者打造。

  • 你的模型,你的订阅。 Torus 绝不会自行调用大模型。由 Claude 进行推理,由成本更低的 Haiku 子 Agent 负责记录整理。
  • 本地优先。 你的研究保存在 ~/.torus 下的一个 SQLite 文件中(可通过 TORUS_HOME 覆盖)。
  • 关注时间。 每条事实都会记录它实际成立的时间,以及你相信它成立的时间,因此你可以查询自己在任何过去日期的想法。任何内容都不会被删除:更正会以新版本的形式保存。

Torus 是研究记忆工具,不提供财务建议。 有关各版本的内容,请参阅 CHANGELOG.md。

选择你的应用

Torus 可在三款应用中使用。它们共用你本机上的同一张图谱,因此你可以在一款应用中研究,再在另一款应用中接着进行。

Claude DesktopCodex(桌面应用和 CLI)Claude Code
Claude 回答前是否会回顾先前的研究是(brief,由服务的指令触发)是(brief,由服务的指令触发)是,每次提示词都会自动回顾(钩子)
研究时是否会记录来源和论点是(实时捕获)是(实时捕获)是(均衡捕获,由整理器补齐缺漏)
每轮对话后是否会显示“已由 Torus 记录……”回执是是是
工作流:入门、查看提醒、质疑、备忘录……“+”菜单中的提示词Torus 技能/torus: 命令
申报和新闻提醒、审计、评分卡、备忘录、探索器是是是
桌面通知和摘要(由监控程序发送,而非应用发送)是是是
后台 Haiku 子 Agent(映射器、整理器、质疑者)否:在聊天中执行相同步骤否:在聊天中执行相同步骤是

Claude Desktop

pip install torus-kg
torus setup

该软件包在 PyPI 上名为 torus-kg;安装后提供的命令是 torus。torus setup 会询问 SEC 要求提供的电子邮件地址,下载 SEC 股票代码列表,将 Torus 添加到 Claude Desktop 的设置中(会保留 .bak 备份,不会修改你的其他服务),并安排申报监控程序。重启 Claude Desktop,然后在“+”菜单中选择 引导公司入门 提示词,并尝试输入几个股票代码。

Codex

同样只需运行两个命令。torus setup 会将 [mcp_servers.torus] 添加到 ~/.codex/config.toml(或 $CODEX_HOME),并将 Torus 技能(torus-research、torus-onboard、torus-review 等)安装到 ~/.codex/skills 下。如果你已经自行添加了 [mcp_servers.torus] 条目,设置程序会保留原样。重启 Codex,然后让它引导你的股票代码入门。

Claude Code

请参阅下方的开始使用(约 5 分钟)。torus setup 还会显示两条 /plugin 命令。

torus setup 会配置检测到的应用;传入 --claude-desktop 或 --codex 可强制配置其中一款应用,传入 --no-codex / --no-claude-desktop 则可跳过其中一款应用。torus doctor 会检查每款应用的配置条目以及服务能否启动;torus doctor --fix 会修复可修复的问题。

只是想看看? torus demo 会在独立文件夹 TORUS_HOME/demo 中创建一个小型示例图谱(包括 NVIDIA、TSMC、Micron 和 AMD 的投资论点、来自 TSMC 申报文件的提醒,以及 semis 入门包),并在探索器中打开。你的图谱不会受到影响,每项示例研究都会标记为 [demo]。

工作原理

Torus 的工作方式:你询问一家公司的情况;Torus 调取此前的研究;Claude 进行研究,并在 Torus 图谱中记录带有来源的主张和论点。你离开期间,Torus 会监控新的 SEC 文件和新闻,针对受影响的论点发出警报,供你查看。

这样做的好处。 在聊天中完成的研究通常会被丢弃:下一次会话又得从头开始,新信息也无法与已有结论联系起来。Torus 会保留研究中有用的部分,而不只是最终报告:

不使用 Torus使用 Torus
每次会话都会重新阅读相同的文件,重新发现相同的事实每次会话都会从之前的论点、主张和已排除的想法开始
新工具一开始一无所有,几周内都派不上用场/torus:onboard 只需几分钟,就能根据公司的 10-K 列出供应商、客户和竞争对手
报告说“TSMC 的产能是瓶颈”,却没有说明依据每项主张都链接到来源,并附有原文引述、置信度以及其成立日期
收到 TSMC 文件后,无人注意到它会削弱你对 NVIDIA 的判断影响分析会沿着供应商和客户关系进行追踪,并针对受影响的论点发出警报
每份例行文件都会触发提醒,让你不再查看警报会权衡事件类型,以及它是否符合你所说的会推翻该论点的条件
150 页的 10-K 中的变更被埋没Torus 会列出自上次提交以来新增、删除和改写的风险因素句子
旧结论被覆盖,错误结论却一直保留每次变更都有版本记录;审计会标记过时或来源单薄的内容;撤销操作会保留历史记录
已走不通的思路会被再次探索已排除的想法会与论点一同调取
无人核查高确信度判断是否正确评分卡会追踪每项论点与对应股票的表现,并衡量你的判断校准情况

开始使用(约 5 分钟)

你需要 Python 3.11+ 和 Claude Code。

1. 安装 torus 命令。 插件的钩子和 MCP 服务会运行此命令,因此这一步是必需的:

pip install torus-kg

2. 进行设置:

torus init --refresh-reference --contact [email protected]   # SEC ticker list (the SEC asks for an email)
torus config set sec_contact [email protected]               # used when reading and watching filings
torus doctor                                               # check that everything is in order

3. 在 Claude Code 中添加插件:

/plugin marketplace add sekhar14/torus
/plugin install torus@torus

系统会询问你选择哪种记录模式:

模式Claude 研究时记录的内容整理器(Haiku)之后记录的内容
balanced(默认)论点、带来源的关键主张、已排除的想法补充主张、额外来源、链接
live所有内容遗漏的内容
curator论点和已排除的想法其他所有内容

4. 告诉 Torus 你关注哪些领域(推荐)。在 Claude Code 中:

/torus:onboard NVDA AMD TSM AVGO

也可以通过投资组合或关注列表导出文件进行设置:torus onboard --file portfolio.csv(任意包含 ticker 或 symbol 列的 CSV),然后运行 /torus:onboard 完成关系映射。Torus 会添加这些公司、监控其 SEC 文件、推荐匹配的入门包,并由 Haiku 子 Agent 根据每家公司的最新年度报告绘制其供应商、客户、竞争对手和客户集中度图谱,同时引用对应文件。

5. 保持监控程序运行:

torus schedule install    # checks filings, news and prices every hour

此操作在 Windows 上使用任务计划程序,在 macOS 上使用 launchd,在 Linux 上使用 cron。

6. 照常开展研究,例如 “NVIDIA 仍受供应限制吗?查看 TSMC 的 CoWoS 计划。” 下次你提到 NVIDIA 时,Claude 会先查看之前的论点、主张和已排除的想法,再开始研究。每轮对话结束后,Torus 会告诉你它记录了什么(“Torus 本轮记录了 1 项论点、3 项主张和 2 个来源”),你也可以使用 /torus:undo 撤销不想保留的内容。

你可以询问的内容

你不需要记住命令;只需用日常语言提问,Claude 就会使用合适的 Torus 工具。

你说会发生什么
“NVIDIA 仍然受供应限制吗?”Claude 会从你之前关于 NVIDIA 的研究开始,然后记录新的论断、来源和更新后的论点
“TSMC 最新的 20-F 风险因素有哪些变化?”Torus 会列出相较于去年申报文件新增、删除和改写的句子
“把这份财报电话会议记录添加到 Torus”记录会转化为有来源依据的论断,并关联到与之相关的论点
“有什么新闻会影响我的论点吗?”显示未处理的提醒,每条提醒都附有解释原因的路径,并逐条论点评估
“这周发生了什么?”查看摘要:按论点列出的新提醒、状态和信心度变化、即将到期的论点,以及评分卡变动
“如果 TSMC 的亚利桑那晶圆厂延期一年,我的论点会怎样?”查看事件可能影响的所有论点、影响所经由的关联,以及可能的影响方向
“找出我对 Micron 论点中的漏洞”怀疑论子 Agent 会研究反方观点;它提出的任何风险都由你审批
“我的研究还及时有效吗?”查看审计结果:已过期的假设、超过期限的论点、仅有单一来源的论断和冲突
“我的判断表现如何?”查看各论点方向下相对于 SPY 的回报、结果,以及你的信心度校准情况
“整理一份 NVIDIA 论点供分享”生成一份备忘录,其中每项论断都可追溯至其来源
“撤销你刚才记录的有关 AMD 的内容”这些记录会被撤回或归档;历史记录会保留

Claude Code 中的命令

命令功能
/torus:onboard开始跟踪公司:关注它们、创建入门资料包,并根据 10-K 梳理关联
/torus:status查看有风险的论点、未处理的提醒、近期变动和图谱健康状况
/torus:review评估未处理的提醒:事件是支持、削弱还是推翻了论点?
/torus:ingest将申报文件、记录稿、PDF 或网页读入为有来源依据的论断;也可查看自上次申报以来的变化
/torus:whatif查看假设事件会影响哪些论点,以及如何影响。不会记录任何内容
/torus:challenge由唱反调子 Agent 对论点进行压力测试,并提出风险和触发条件
/torus:audit查找已过期、来源不足或存在冲突的研究,以及超过期限的论点
/torus:scorecard查看你的论点相对于基准的表现,以及你的信心度是否经过校准
/torus:memo将论点整理成有来源依据的备忘录(Markdown 和 HTML)
/torus:undo查看近期会话记录的内容,并撤销其中任何内容
/torus:distill让 Haiku 策展器将过往会话的发现添加到图谱中
/torus:explore打开可视化图谱浏览器

在这些命令背后,MCP 服务为 Claude 提供 45 个工具,从 brief、recall 和 record_claim 到 filing_diff、whatif、digest 和 scorecard。Claude Desktop 和 Codex 默认可见其中 33 个 (analyst 工具集);队列和底层图谱工具处于隐藏状态。在服务的 env 中设置 TORUS_TOOLSET=full 即可显示所有工具。

Claude Desktop 和 Codex 详解

这两个应用都不会加载 Claude Code 插件,因此 MCP 服务本身会承载工作流。当 TORUS_HARNESS 为 claude-desktop 或 codex 时(torus setup 会设置该值):

  • 指令。 服务会告知模型:在研究公司之前,先用用户的问题调用 brief;研究过程中记录来源和主张(捕获模式为 live,因为之后没有策展人员会阅读聊天记录);并在每轮结束时给出“已由 Torus 记录……”的回执。措辞与模型无关,因为 Codex 运行的是 OpenAI 模型。
  • 工作流。 每个 /torus: 命令同时也是一个 MCP 提示词(Claude Desktop 的“+”菜单)和一个 Codex 技能,均由 src/torus/workflows/ 中的同一来源生成。Claude Code 子 Agent 会执行的步骤(例如根据公司的 10-K 梳理公司关系、讨论反方观点)改为在聊天中执行。
  • 保存此聊天。 没有策展人员时,将此聊天保存到 Torus 提示词(或询问“将此聊天保存到 Torus”)会记录聊天中找到但尚未记录的内容。
  • 撤销。 记录按聊天分别跟踪,因此“你记录了什么?”和“撤销刚才的记录”都能像在 Claude Code 中一样使用(recent_records、undo_records)。

在网页浏览器中使用的 Claude、ChatGPT 和 Copilot 无法使用 Torus:它们只能连接到公开地址上的 MCP 服务,而 Torus 在你的计算机上运行。

手动配置。 torus setup 会替你写入这些配置。在 Claude Desktop 中(Settings > Developer > Edit Config;Windows 上为 %APPDATA%\Claude\claude_desktop_config.json, macOS 上为 ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "torus": {
      "command": "/full/path/to/torus",
      "args": ["serve"],
      "env": { "TORUS_HARNESS": "claude-desktop" }
    }
  }
}

在 Codex 中(~/.codex/config.toml):

[mcp_servers.torus]
command = "/full/path/to/torus"
args = ["serve"]

[mcp_servers.torus.env]
TORUS_HARNESS = "codex"

请使用完整路径(Windows 上运行 where torus,macOS 和 Linux 上运行 which torus):桌面应用无法读取 shell 的 PATH。如果设置了 TORUS_HOME,请将其添加到 env 下,以便所有应用共用一个图谱。其他 env 设置:TORUS_CAPTURE_MODE(live、balanced、curator)和 TORUS_TOOLSET(analyst、full)。其他 MCP 客户端(Cursor、VS Code 等)或许也能使用相同的配置项,但尚未经过测试。

阅读 SEC 文件

Torus 会从 EDGAR 读取文件,供 Claude 使用,让研究引用一手来源,而非这些文件的摘要:

  • 按章节读取。 10-K、10-Q 或 20-F 会拆分为各个项目,因此 Claude 可以逐页只阅读 business、risk_factors、mdna、legal、market_risk 或 financials(也可以按项目编号读取)。同一表格的任何更早版本也可读取。
  • 查看变更。 Torus 会将某个章节与上一份文件中的同一章节进行比较,并返回新增、删除和改写的句子,改写幅度最大的排在最前面。
  • 附有引用。 文件中的主张会附上该文件的 URL 作为证据(类型为 filing)以及逐字引文,并在审计和质疑中计作一手来源。

文件只会下载一次,并以文本形式缓存在 TORUS_HOME/sources/edgar 中。读取文件需要设置 sec_contact:SEC 要求每个客户端提供联系邮箱。

可视化浏览器

torus explore                 # the whole graph
torus explore NVDA --hops 2   # NVIDIA and everything within two links
torus explore --no-open       # write the file without opening a browser

这会生成一个独立的 HTML 文件(默认为 ~/.torus/explorer.html),并在浏览器中打开。它可离线使用,无需安装任何内容,因此你可以分享这个文件。

在浏览器中选中的一条投资论点:解释该论点的路径及其触发的提醒、该论点所依据的带来源的主张、触发条件和历史记录

截图使用 semis 入门包和示例性的 [demo] 研究(scripts/seed_demo.py)。上图中选中的是 [demo] NVIDIA 投资论点。一份 TSMC 8-K 文件触发了该论点的提醒,面板展示了原因:该论点的触发条件涉及 TSMC,一条假设主张提到了 TSMC,而 TSMC 为该论点的研究对象 NVIDIA 供货。面板还展示了评分的构成:较强的图谱关联、重要性较低的 8-K 条目(8.01,“其他事件”),以及因文件措辞与该论点的触发条件相符而获得的加分。

  • **节点:**公司显示为蓝色圆形;颜色越深,表示你对该公司做过的研究越多。投资论点显示为方形,颜色表示其状态(绿色为活跃,琥珀色为有风险,红色为失效)。事件显示为菱形,有未处理提醒时显示为红色。
  • **连线:**实线箭头表示供货关系,虚线表示竞争关系,粗红线表示从事件指向投资论点的提醒。淡色连线来自入门包,尚未得到你的研究确认。
  • **点击:**点击任意节点可查看详情。公司节点会显示关联、投资论点、带来源的近期主张,以及已排除的想法。投资论点节点会显示其依据、触发条件、历史记录和提醒,以及解释每条提醒的路径。
  • **移动视图:**拖动节点、滚动缩放、拖动背景平移,按 Fit 重置。双击节点可释放该节点。
  • **搜索:**按名称或股票代码搜索。筛选器可隐藏投资论点、事件、竞争关系或入门包连线。
  • **回到过去:**拖动底部的滑块,查看较早日期的图谱(当时 Torus 掌握的信息,以及每条投资论点当时的状态);也可以按 Replay,观看研究内容逐步增加。此后已停用的关联不会重新出现。
  • **链接到节点或日期:**在文件地址中添加 #select= 和名称或股票代码,例如 explorer.html#select=NVDA,即可打开并选中该节点;也可以添加 #at=2026-09-20,打开该日的图谱。用 & 组合两者:#select=NVDA&at=2026-09-20。

浏览器设置为 9 月 20 日:仅显示截至当日记录的研究,AMD 投资论点仍处于活跃状态(后来才失效),并显示 TSMC 提醒

同一张示例图谱在 9 月 20 日的状态:当时尚未添加入门包,AMD 投资论点仍处于活跃状态(它在 10 月失效),而 TSMC 提醒刚刚出现。

该文件是一个快照。有新研究后,再次运行 torus explore。

入门包和图谱工具

入门包为影响分析提供广泛报道的关联网络,让你从一开始就能使用。每条关联都会标记为入门包关联,直到研究确认它为止;它绝不会覆盖你通过研究记录的关联。

入门包涵盖范围公司数量关联数量
semis芯片设备、晶圆代工和存储器、芯片设计商及其大型买家2352
software超大规模云服务商及其运行的软件;数据库、应用、可观测性、安全1934
banks美国大型银行、卡组织和发卡机构、支付、银行技术1825
energy综合性大型能源公司、美国生产商、油田服务商、炼油商、管道、LNG1926
pharma制药公司和生物技术公司、实验室供应商、批发商、药房福利管理机构2025
torus graph packs                      # the packs above
torus graph seed software              # add one (safe to repeat)
torus graph neighbors TSM --hops 2     # links around a company
torus graph paths ASML AMD             # how two companies connect: ASML -SUPPLIES-> TSMC -SUPPLIES-> AMD

Claude 可通过 MCP 使用相同的工具(neighbors、find_paths、impact、seed_starter_pack)。研究重新记录某条入门包关联后,它就会成为你的关联。

Watchers:将文件和新闻转为提醒

torus watch run 会检查一次:

  • SEC EDGAR:受监控公司提交的新文件(8-K、10-Q、10-K、20-F、6-K 等)。新的 10-K、 10-Q 和 20-F 事件还会说明与上一份文件相比,风险因素有哪些变化 (“风险因素:新增 12 句,改写 8 句,删除 3 句。新增内容:……”)。
  • RSS/Atom feed:提及图谱中已有公司的条目。
  • 价格:记分卡中各投资论点对应的每日收盘价。

每个新条目都会成为一个事件。随后,Torus 会遍历图谱(供应商、客户、竞争对手),并针对可能受影响的投资论点创建提醒。使用 /torus:review 审阅这些提醒。检查结束时,新的强提醒会显示为桌面通知;如果定时摘要到期,也会发送摘要。

torus watch add NVDA                            # optional: onboarded companies and open theses' companies are watched automatically
torus feed add https://example.com/semis.rss --name "Semis wire"
torus watch list                                # what is watched, and why
torus watch run                                 # one pass; exit code 1 if any source failed
torus schedule install                          # run it every hour; --every 6 for every 6 hours
torus schedule status                           # or: torus schedule remove

首次检查某家公司或 feed 时,会回溯 7 天。之后只处理新条目。

有意义的提醒

供应商例行提交的 10-Q 不应该打扰你;破产文件则应该。每条提醒的评分为 graph score × materiality × (1 + trigger match):

  • 图谱分数:事件涉及的公司与投资论点关联的紧密程度:可能是投资论点的主体、假设中提到的公司,或距离一到两层的供应商、客户或竞争对手。
  • 重要性:事件的类型。8-K 条目会按权重计分(破产为 1.0,业绩为 0.9,重大协议为 0.8,股东投票结果为 0.1),10-Q 为 0.4;新闻措辞会提高或限制分数(“出口管制”为 0.9,“3 只值得买入的股票”为 0.2)。你自行添加的事件按完整权重计算。
  • 触发条件匹配度:事件措辞涵盖了投资论点中某项触发条件的程度,因此 “TSMC 延迟 CoWoS 扩产” 会提升触发条件为 “CoWoS 产能受阻” 的投资论点评分。编写触发条件时,请使用新闻标题常见的措辞。

每条提醒都会显示评分构成,并附上易于理解的标签:强(1.0 及以上,最高可达到与投资论点主体相关的完全重要事件的评分)、中(0.5 及以上)或弱。要调整这些提醒:

torus alerts list                               # open alerts and how each scored
torus alerts stats --days 90                    # share judged related, by source, form, hops, materiality
torus alerts threshold 0.3                      # global minimum score (default 0.2)
torus alerts threshold 0.5 --thesis ID          # per thesis
torus alerts mute ID --entity TSM --form 10-Q   # no alerts on this thesis for TSMC 10-Qs
torus alerts mutes                              # list mutes; torus alerts unmute MUTE_ID

如果某个投资论点反复收到同类无关提醒,/torus:review 会建议将其静音。

及时送达的提醒

Watchers 每小时运行一次,但如果你下次打开聊天时才看到提醒,那就没有用了。Torus 会通过两种方式通知你。

桌面通知

当 torus watch run 触发强提醒时,你会收到通知:

Torus:NVIDIA 数据中心增长受供应限制的强提醒 TSMC 8-K:CoWoS 扩产延迟(另有 1 条)

  • 每个投资论点最多发送一条通知;每次检查最多发送三条。如果涉及更多投资论点,第三条通知会汇总其余内容。
  • 仅显示最近 24 小时内的提醒,因此升级或开启通知时不会重放旧提醒。
  • Windows 会显示 toast,macOS 使用 Notification Center(osascript),Linux 使用 notify-send。无需额外安装。在 Linux 上,cron 作业会自动查找你的桌面会话。
torus notify test                    # check that notifications show up on this machine
torus config set notify moderate     # strong (default), moderate or off
torus watch run --no-notify          # one pass without notifications

torus doctor 会检查相应平台的通知工具是否可用。

摘要

torus digest 会按紧急程度从高到低,汇总某个日期以来发生的情况:

  1. 新提醒:按投资论点分组,包含提醒强度、评分、链接,以及提醒是否经过判定
  2. 投资论点变化:状态变化,以及置信度变动 10 个百分点或以上的情况
  3. 即将到期:已超过期限或将在 30 天内到期的未结投资论点
  4. 研究健康状况:审计计数和重要发现中的最高项
  5. 记分卡:各投资论点方向上自那时以来变动最大的项目
  6. 活动:记录的主张、投资论点和事件
torus digest                         # the last day, as Markdown and HTML in TORUS_HOME/digests
torus digest --since 2w --open       # 12h, 1d, 2w or a date (YYYY-MM-DD); open the HTML
torus digest --json                  # the same data as JSON

在任何应用中,只要询问 “这周发生了什么?”,Claude 就会调用 digest 工具。

发送摘要

设置目的地之前,不会发送任何内容。然后选择一个计划;每小时运行的监视器会在摘要到期时发送它,因此无需再设置第二个定时任务。

torus config set digest daily                # off (default), daily or weekly
torus config set digest_hour 8               # local time (default 8)
torus config set digest_weekday mon          # for weekly (default mon)

Webhook(Slack、Discord、ntfy 或任何接受 JSON 的服务):

torus config set digest_webhook https://hooks.slack.com/services/...
torus config set digest_webhook https://ntfy.sh/your-private-topic   # push to your phone with the ntfy app

格式由地址决定:Slack 接收纯文本,Discord 和 ntfy 接收 Markdown,其他 URL 则以 JSON 格式接收摘要。对于可自托管的 ntfy 服务,请设置 digest_webhook_format ntfy。过长的摘要会在完整章节处截断,并附上指向完整文件的链接。Webhook URL 中包含秘密令牌,因此 Torus 会将其遮蔽显示(https://hooks.slack.com/.../AbCd),且不会将其包含在 torus export 中。

通过电子邮件发送,使用你自己的 SMTP 服务,以下以 Gmail 为例:

torus config set digest_email_to [email protected]
torus config set smtp_host smtp.gmail.com
torus config set smtp_user [email protected]
torus digest email-password                  # asks for the password (for Gmail, an app password)

密码绝不会存储在数据库中。torus digest email-password 会将其保存到 TORUS_HOME/secrets/smtp_password,这是只有你能读取的文件;你也可以改为设置 TORUS_SMTP_PASSWORD。Torus 只会通过加密连接发送邮件:端口 587 上的 STARTTLS(默认),或端口 465 上的 TLS。

torus digest test-send                       # a short test message to each destination
torus digest --send                          # send now: everything since the last digest sent

没有新内容的摘要不会发送(设置 digest_send_empty on 可更改此行为)。torus doctor 会显示发送计划、摘要目的地、上次发送时间和最近的错误。

保持研究严谨

  • 审计(torus audit、/torus:audit):检查已过有效期的假设、已超过期限或 90 天未变更的论点、仅依赖单一非申报来源或无来源观点的假设、关于同一公司的潜在冲突主张、基于已撤回主张的推断,以及警报所依赖但研究从未确认的起始链接。Claude 会与你一起逐项检查发现,并修正你同意修正的问题。在终端中,同一类型的大量低优先级发现(例如,为某个资料包添加种子链接后出现的所有起始链接问题)会在显示前三项后汇总;torus audit --all 会列出全部问题。
  • 期限是日期。 论点的期限(“12m”“18 months”“FY2026”“Q3 2026”“2027-06-30”)会被解析为到期日期,因此审计和评分卡都能知道期限何时到来。
  • 质疑(/torus:challenge):Torus 会列出论点的薄弱之处(依据不足或即将到期的假设、未提及的强供应商或客户关系、无法触发的触发条件、相反的论点和裁决),并由一个唱反调的子 Agent 调查反方论据。对于它提出的任何风险或触发条件,都由你批准;它绝不会更改论点本身。
  • 假设情景(torus whatif "TSMC fab outage halts CoWoS" TSM、/torus:whatif):针对假设事件运行警报逻辑,显示所有可能受影响的论点、影响路径,以及是否会触发警报。不会记录任何内容。
  • 记录与撤销(/torus:undo):每轮对话结束后,Torus 会告知你记录了哪些内容。撤销操作会撤回主张(或恢复被更正内容替换的版本)、归档该会话创建的论点、停用链接(并恢复被其替换的起始链接),以及撤回已排除的想法。历史记录会保留所有内容,因此仍然可以查询“我们在 X 日期的看法是什么”。

评分卡和校准

跟踪某个论点与其对应股票的表现,看看判断是否准确:

torus scorecard track THESIS_ID           # default: the subject's ticker, entry = the close when recorded
torus scorecard --refresh                 # fetch closes, then show returns and calibration
torus scorecard outcome THESIS_ID right   # right, wrong, unclear or clear; your call beats the automatic one
torus scorecard import NVDA prices.csv    # load closes yourself (date,close)

每个已跟踪的论点都会显示其相对于基准(除非另有设置,否则为 SPY)的收益,并按照其立场的方向计算,因此看跌论点会在股票表现落后时获利;同时也会显示最大回撤。将论点标记为已确认或已证伪时,或股票价格达到其期限时,论点就会得到结果。校准会比较你的初始信心与实际判断正确的频率:包括 Brier 分数(0 表示完美;始终给出 50% 的信心,得分为 0.25),以及按信心区间划分的表格,例如“你给出 80% 以上信心的判断中,有 10 次里 6 次正确”。它涵盖所有已有结果的论点,无论是否按价格跟踪;如果已有结果的论点少于 10 个,也会明确说明:低于这个数量时,结果只是轶事,并非衡量指标。

价格来自 Yahoo Finance 的公共图表端点,无需密钥,但并非官方接口,且可能发生变化。如果获取失败,可从 CSV 导入收盘价,或将 price_source 设为 none。评分卡记录的是你自己的判断,不构成建议。

备忘录

torus memo THESIS_ID --open(或 /torus:memo)会将论点整理成 Markdown 和独立的 HTML 页面,并保存到 TORUS_HOME/memos:包括论点的依据、每项主张及其来源和逐字引文、推论所依据的主张、触发条件、后续事件及其判断方式、已排除的想法、评分卡和完整历史记录。在 Claude Code 中,/torus:memo 还会根据备忘录内容撰写一段简短摘要。

自动化

  • 按计划运行监视器: torus schedule install(见上文)。如果已监视公司,但没有任何程序运行监视器,torus doctor 会发出警告。每次运行还会发送通知和定期摘要(通知如何触达你)。
  • 提炼会话内容: 研究会话结束后会进入队列,由 Haiku 策展器补充 Claude 未记录的内容。当 auto_distill 设为 ask(默认值)时,如果有待处理的会话,Claude 会询问是否运行 /torus:distill。设为 on 时,会话结束后将在后台运行策展器(在 Haiku 上运行 claude -p,仅使用 Torus 工具);这会使用你的订阅。一次只运行一个策展器,且不会捕获策展器自身的会话。

设置

torus config set KEY VALUE(省略值可重置;使用 torus config get KEY 读取):

键默认值功能
sec_contact在 User-Agent 中发送给 SEC 的电子邮件地址(提交文件必填)
alert_threshold0.2未单独设置的论点所需的最低提醒分数
auto_distillaskask:会话进入队列时,Claude 会询问是否运行 /torus:distill。on:会话结束时在后台运行 Haiku 策展器。off:两者都不运行
capture_receiptson每轮结束后告知你 Torus 记录了哪些内容
filing_diffson总结新的 10-K/10-Q/20-F 事件中的风险因素变化
benchmarkSPY评分卡用于衡量论点的基准
price_sourceyahooyahoo 或 none
notifystrong新提醒的桌面通知:strong、moderate 或 off
digestoff从监视器运行结果发送摘要:off、daily 或 weekly
digest_hour8发送摘要的时间(0-23,本地时间)
digest_weekdaymon每周摘要的发送日期(mon 至 sun)
digest_send_emptyoff即使没有新内容,也发送摘要
digest_webhookSlack、Discord、ntfy 或 JSON webhook URL(显示时会掩码,不会导出)
digest_webhook_formatautoauto(根据 URL 判断)、slack、discord、ntfy 或 json
digest_email_to摘要收件人地址,多个地址以逗号分隔
digest_email_fromsmtp_user发件人地址
smtp_hostSMTP 服务器
smtp_port587587 配合 STARTTLS,或 465 配合 TLS
smtp_userSMTP 登录名;使用 torus digest email-password 设置密码

会离开你设备的数据

Torus 会将你的研究保留在本地。它会读取以下数据:

  • SEC EDGAR(sec.gov):股票代码列表、已关注公司的文件列表,以及 Claude 读取或监视器比对的文件。按照 SEC 的要求,你的 sec_contact 电子邮件地址会作为 User-Agent 发送。
  • 你的 RSS/Atom 订阅源,如果你添加了订阅源。
  • Yahoo Finance:已跟踪股票代码及其基准的每日收盘价(如果评分卡上有任何投资论点,且 price_source 不是 none)。

它只会在你指定的地方发送研究内容:

  • 你的 webhook(digest_webhook),如果你设置了:发送摘要文本,其中包含投资论点标题、提醒和事件标题、审计结果及评分卡变动。
  • 你的 SMTP 服务(smtp_host),如果你设置了电子邮件:将同一份摘要发送到 digest_email_to。

桌面通知会保留在你的设备上。

Claude 自带的网页研究会像往常一样通过你使用的应用进行。

维护

torus doctor                  # health check (schema, integrity, search index, hooks, watchers, schedule, notifications, digest)
torus doctor --fix            # fix what it flags (see below)
torus doctor --repair         # only rebuild the search index and close duplicate links
torus export                  # back up everything to TORUS_HOME/exports/*.jsonl
torus import backup.jsonl     # restore into a fresh TORUS_HOME
torus status                  # row counts and queue state

torus doctor --fix 会重建损坏的搜索索引、关闭重复链接、保存 SEC 电子邮件地址(会询问你,也可以传入 --contact EMAIL)、在 SEC 股票代码列表缺失或超过 30 天时下载该列表、在已关注公司但没有任何任务运行监视器时安装监视器计划,并重写损坏的 Claude Desktop 或 Codex 配置项(保留备份,不会改动你自行编写的 Codex 配置项)。它会说明执行和跳过了哪些操作,然后再次检查。

升级时,下次任何 torus 命令打开数据库都会自动迁移数据库。Hook 活动会记录到 ~/.torus/logs/hooks.log,后台策展器的输出会记录到 ~/.torus/logs/curator.log。Hook 绝不会阻塞或导致你的会话失败。

开发

python -m venv .venv
.venv/Scripts/python -m pip install -e ".[dev]"   # .venv/bin/python on macOS/Linux
.venv/Scripts/python -m pytest                    # unit + integration (no network)
.venv/Scripts/python -m pytest -m perf tests/perf # performance checks on a 100k-claim graph

许可证

Apache License 2.0。请参阅 LICENSE。

Torus 是研究记忆工具,不构成财务建议。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。