📌 项目地址:JetBrains/thinkrail | ⭐ 1,275 颗星 | 🔧 TypeScript | 📜 未标注

📌 项目地址:JetBrains/thinkrail | ⭐ 1,275 颗星 | 🔧 TypeScript

ThinkRail 是 JetBrains 开源的 agentic IDE,TypeScript 写的,目前 1275 星。它的核心思路:不在编辑器旁边加个聊天框,而是围绕一个叫 pi 的编码代理(npm 包 @earendil-works/pi-coding-agent)搭一整套工作环境。代理在里面干活,人在旁边看、改、合并。

它主要解决两个老问题。

问题一:多个 AI 任务没法并行

让一个 agent 改代码,它动的就是你的工作目录。想同时让另一个 agent 干别的活?两边互相踩。

ThinkRail 的解法是 git worktree:打开任意 git 仓库作为项目,从项目里切出独立工作区,每个工作区有自己的分支和工作目录。多个 pi 会话在里面并行干活,互不干扰。哪个分支干得好就合并哪个,其余删掉。已有的 worktree 可以直接挂进来,你也可以指定就在项目目录里干活。

闲置工作区的处理挺聪明:PR 合并或关闭后,或者安静一周没人碰,工作区自动归档到按项目划分的 shelf 上。你再回去工作时,它自动回来。

问题二:会话失忆

AI 代理的记忆止于当前对话。换个会话,项目背景就得重新解释一遍。

ThinkRail 用 living specs 解决这个问题:一组互相连接的 SPEC.md 文件放在代码旁边,形成一张规格图谱。代理通过专门的 spec_* 工具读取、搜索、维护这份图谱,写代码时留下的设计意图在会话结束后还在。工作台里有个只读的 Specs 工具,把图谱渲染成树状视图,人也能直接翻。

从分支到 PR,全程不用离开 IDE

顶栏显示当前分支相对 origin 和 PR 的状态,下一步操作一键可达:publish、push,或者开 PR。PR 描述有四个来源可选:计划、提交记录、你的 PR 模板、或代理写的草稿。

GitHub PR 打开之后,CI 检查和 review 决策直接显示在 IDE 里。失败的检查、分叉的分支,可以一键交给 agent 处理;合并用仓库上次使用的方式;也可以重开 PR 或删掉远程分支。

编辑器和会话的细节

工作台本身是完整的:可分割的 Monaco 编辑器标签页、带实时 git 变更标记的文件树和 Changed 视图、终端、文档,全部限定在当前活动工作区。在文件和 diff 上留的评论带锚点,可以作为结构化上下文发给聊天。worktree 也能直接在已安装的 IDE 里打开。

会话方面,每个工作区可以开多个并发 pi 会话,各自指定模型,token 用量和成本实时显示。运行中的回合可以中途改指令,后续指令可以排队,也支持委派子代理。共享计划由代理更新、由你编辑,每个完成的步骤可以单独提交、单独审查。

动手前先知道这些

  • README 被截断,没有安装命令和许可证信息。官网在 thinkrail.ai,博客在 thinkrail.ai/blog,具体用法以这两处为准。
  • “Skills and workflows”(可移植的 Agent Skills)那一节在 README 里没写完。
  • Roadmap 说下一步加完整扩展支持,让 ThinkRail 根据你的实际工作方式自己创建需要的工具,这块还没落地。
  • 它绑定 pi 这一个代理。如果你在用别的 agent 生态,得先算算迁移成本。

值不值得试

项目还在早期,但”worktree 隔离 + living specs”这个组合在开源里少见。如果你的痛点确实是“多个 AI 任务没法并行”或者“每次新会话都要重新解释项目”,花半小时试一次不亏。

这篇文章对你有帮助吗?

发表回复