跳到正文
原文
Hacker News· hmokiguess·· 14 天前精选AI 评分81

ThinkRail智能IDE

JetBrains Thinkrail

AI 摘要

ThinkRail是一款智能IDE,通过活体规范学习项目并构建自身能力,提供独立工作区、实时git更改标记、多并发pi会话、SPEC.md文件图维护等功能,支持完整扩展和MCP服务器连接,具有桌面应用和浏览器版本。

正文 · AI 翻译

JetBrains incubator project GitHub stars

ThinkRail 是一款随着使用而不断进步的智能集成开发环境——它通过当前活的规范学习你的项目,并在未来构建自己的能力。

我们围绕 pi 编码代理构建了一个丰富的界面,将工作隔离到单独的工作区,并通过活的规范和可重用的技能给予代理持久的项目知识。接下来,我们将添加完整的扩展支持,以便 ThinkRail 可以根据你实际的工作方式创建它需要的工具。

网站: thinkrail.ai · 博客: thinkrail.ai/blog

⭐ 如果你觉得 ThinkRail 很有用,给它一个星标——这有助于其他人发现它。

ThinkRail workbench: the Projects pane beside the left tool rail listing worktree workspaces and their Settled shelf, a finished pi conversation with its tool steps in the center, the resulting diff beside it, and the Specs tree above the Changes list on the right with their tools on the edge rail

一个 pi 会话及其带来的改变,范围限定在一个隔离的 git-worktree 工作区。

你将获得

  • 隔离的工作区。 将任何 git 仓库作为项目打开,并将其作为 git worktree 切割出工作区,每个工作区都有自己的分支和工作目录。代理并行工作而不触及你的检出;合并好的分支,删除其余的。你也可以附加现有的 worktrees 或显式地在项目文件夹本身中工作。完成和休眠的工作区会自行移动到它们自己的每个项目架子上——当它们的拉取请求合并或关闭时,或在一周安静之后——当你再次使用它们时就会回来。顶栏显示了活动分支相对于 origin 及其拉取请求的位置,下一步只需一键:发布、推送或打开一个从计划、提交、你的 PR 模板或代理编写的草稿中描述的 PR。一旦 GitHub PR 打开,它就会显示 CI 检查和评审决定,并允许你将其标记为准备就绪,将失败的检查或分支分歧交给代理,使用仓库最后使用的 方法将其合并,重新打开它,或删除远程分支。
  • 围绕代理的真实 IDE。 Monaco 编辑器标签的可分割工作台、带有实时 git 变更标记和更改视图的文件树、终端和文档——所有这些都限定在活动工作区。在文件和差异上留下锚定的评审评论,并将它们作为结构化上下文发送到聊天中,或在已安装的 IDE 中打开 worktree。
  • 像引擎思考一样流动的聊天。 每个工作区有多个并发 pi 会话,每个会话都有自己的模型和实时令牌和成本读数。引导正在进行的回合或排队后续操作,委派给子代理,并协同更新代理编辑的计划——每个完成的步骤都可以单独提交和评审。
  • 规范作为真实依据。 一个连接的 SPEC.md 文件图存在于代码旁边;代理通过专门的 spec_* 工具读取、搜索和维护它,以便意图在会话后仍然存在。只读的 Specs 工具在工作台中将图渲染为树状结构。
  • 技能和工作流程。 你为其他编码代理保留的可移植代理技能将原地读取,并捆绑工作流程指导项目设置、设计头脑风暴和发布拉取请求——通过你自己的 gh 推送工作区分支并打开或更新其 GitHub PR。
  • 超出 shell 的代理工具。 网络研究,以及内联图表、选项比较和文件预览直接在聊天中渲染——当代理提出 UI 变更时,它会显示一个你可以像差异一样评论的 before/after 模拟图。设置 → 扩展列出了代理获得的 ThinkRail 扩展,并允许你关闭每一个。
  • MCP 服务器。 将 MCP 服务器连接到你的 pi mcp.json(或从设置中添加它们和一些预设):ThinkRail 在聊天中询问,在服务器调用之前不会将其标记为只读(或始终允许你在项目中信任的工具),保持服务器作为存储库的定义直到你批准它们,从设置中为你登录 OAuth 服务器,并在每个聊天的旁边显示其背景命令和子代理的服务器。
  • 你的提供商,你的凭证。 使用 JetBrains AI 登录或通过 pi 自身的认证连接任何提供商。ThinkRail 没有自己的账户。
  • 桌面应用程序或浏览器。 一个原生的桌面应用程序,或打开 thinkrail CLI 在你的浏览器中打开相同应用程序。两者都嵌入相同的引擎主机;应用程序状态位于 ~/.thinkrail 下。
  • 你的语言。 设置 → 语言跟随你的系统语言或你选择的语言;英语和简体中文是内置的。通过将翻译后的 en.json 放入 ~/.thinkrail/locales 添加 ThinkRail 尚未提供的语言——当你保存时它就会应用。代理回复和工具输出保持为代理编写的形式。
The Specs tool, opened from the right edge rail, listing the project's spec tree while the product goal spec is rendered in the editor

项目规范图作为树形结构,规范本身旁边渲染。

安装

ThinkRail 以两种附加形式提供:一个原生的桌面安装程序和自包含的 thinkrail CLI。两者都与 SHA256SUMS 在 发布页面 上发布。

桌面

下载适用于你平台的 thinkrail-desktop-* 资产:

  • macOS (Apple Silicon) — 打开 DMG。没有 Intel 桌面构建。

  • Windows x64 — 解压完整设置 ZIP,然后在其位置运行其设置可执行文件,与其有效载荷相邻。

  • Linux x64 / ARM64 — 解压设置 tarball 并运行 installer。桌面构建需要 glibc 2.38+ 与 GTK 3、WebKitGTK 4.1、Ayatana AppIndicator 3 和 librsvg 2 — Ubuntu 24.04 或更新版本:

    sudo apt install libgtk-3-0 libwebkit2gtk-4.1-0 libayatana-appindicator3-1 librsvg2-2

打包的稳定和夜间桌面构建在后台检查更新并在 设置 → 更新 中提供它们: 下载 → 准备更新 → 安装 & 重新启动。直到你选择 安装 & 重新启动 之前不会应用任何内容。ThinkRail 然后显示安装的进度和日志,关闭,并在新版本上重新打开。重新启动后,它会告诉你更新是否已安装。如果没有,它会解释原因并提供重试。更新器仅在包包含有效的 HTTPS 源身份时出现;早于该身份的安装需要首先手动安装。

命令行

安装程序下载正确的二进制文件,验证其 SHA-256 校验和,并将 thinkrail 放在你的 PATH 上。

macOS / Linux(在 Git Bash 下 Windows 也适用):

curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | bash

Windows — 相同的命令在 cmd 和 PowerShell 中都有效:

powershell -c "irm https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.ps1 | iex"

然后运行 thinkrail,可选地以 git 仓库作为项目打开:

thinkrail ~/code/my-repo

thinkrail 需要在你的 PATH 上找到 git 和一个模型提供程序 — 从应用程序中用 JetBrains AI 登录或使用你自己的提供商凭证。thinkrail --help 列出了标志;thinkrail --version 打印了构建。

夜间构建、固定版本、更新和卸载

安装程序获取 --channel stable|nightly 和 --version;固定版本必须属于选定的频道:

curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | bash -s -- --channel nightly
curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | bash -s -- --channel stable --version 0.1.2
curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | bash -s -- --channel nightly --version 0.2.0-nightly.10

在 Windows 上选项是环境变量 (THINKRAIL_CHANNEL, THINKRAIL_VERSION, THINKRAIL_PREFIX, THINKRAIL_NO_MODIFY_PATH):

$env:THINKRAIL_CHANNEL='nightly'; irm https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.ps1 | iex   # PowerShell
set "THINKRAIL_CHANNEL=stable" && set "THINKRAIL_VERSION=0.1.2" && powershell -c "irm https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.ps1 | iex"   # cmd

稳定的和夜间CLI主机定期在设置→更新中提供运行更新。它在后台运行主机机器的thinkrail update——即使UI在另一台机器的浏览器中打开也是如此——并且成功的更新会提示你手动重新启动主机。你可以在任何平台上直接运行thinkrail update:它重新运行安装的频道的安装程序并替换<prefix>/bin/thinkrail[.exe];仅传递--channel或--version以进行显式覆盖。

thinkrail uninstall会删除可执行文件、安装程序添加的PATH条目以及安装元数据,并询问是否删除你的~/.thinkrail应用状态(默认保留——--remove-data会删除它,-y会跳过问题)。

更喜欢手动安装?从发布页面下载二进制文件和SHA256SUMS并验证校验和。为了使自更新工作,将其重命名为thinkrail(Windows上的thinkrail.exe)并将其放置在<prefix>/bin/thinkrail[.exe];必须手动替换或使用脚本重新安装保存在其发布文件名或其它地方的二进制文件。

平台注意事项

平台 桌面 CLI
macOS Apple Silicon DMG 签名二进制文件
macOS Intel 没有Electrobun构建 未预构建——从源代码构建
Windows x64 签名安装程序可执行文件和应用程序二进制文件 签名.exe
Linux x64 / ARM64 安装程序tarball,未签名 未签名

JetBrains对Windows CLI、桌面安装程序可执行文件以及桌面应用程序安装的每个可执行文件和DLL进行签名。macOS CLI已签名但尚未进行公证。签名和公证的桌面DMG需要协调JetBrains服务管道;较旧的已发布DMG和本地构建的软件包可能仍然未签名并由Gatekeeper阻止。Linux工件未签名。

分析与隐私

ThinkRail收集基本使用事件——启动、聊天创建、消息发送、提供者连接——这些事件与一个随机安装ID相关联。使用分析永远不会包括提示、代码、文件、凭证或账户身份。错误报告也始终发送,这些报告与相同的安装ID相关联,以便我们可以修复崩溃:错误类型和代码以及它在ThinkRail自己的代码中的位置。它们永远不会包括错误消息、文件路径、名称、URL或来自您的项目或扩展的任何内容。额外的产品使用情况和您是如何找到ThinkRail的仅在共享额外使用数据开启时共享;此开关在首次启动时提供,并位于设置→隐私中。从命令行启动时,thinkrail --no-analytics(或THINKRAIL_NO_ANALYTICS=1)会关闭该次运行的额外共享。在额外共享开启的情况下,打包构建可能会在您的浏览器中打开一次ThinkRail博客,以将您的安装与将您带到这里的网站访问链接起来——仅在您在网站上接受了营销cookie或不需要同意的情况下——并且该链接在30天后过期。

底层结构

ThinkRail是一个薄的主机,它在进程中运行pi并将其桥接到丰富的Web UI。pi拥有模型、技能、压缩、成本和会话状态;应用程序拥有工作区、编辑器和线路——它永远不会在您背后组装提示。三个环:

  • 引擎主机 — packages/server(+ packages/shared):一个Bun.serve HTTP+WS主机,每个聊天一个进程内pi会话,由apps/cli或apps/desktop启动。
  • 线路 — packages/contracts:主机和UI之间的定型、版本化协议。
  • UI客户端 — apps/web:React 19 + Zustand + Tailwind v4,独立分发;它通过线路连接到主机,并且仅依赖于合同。

goal-and-requirements.md 和 architecture.md 是规范的产品和设计规格。ThinkRail 是先定义规范再开发:每个模块旁边都放一个 SPEC.md,移动边界、合同或决策的变更会在同一变更中更新规范。

开发 ThinkRail

您需要 Bun 1.4.4(固定的包管理器和运行时)、Node.js ≥ 22.19(由进程内 pi 引擎要求),以及用于代理工作的经过身份验证的 pi 提供商.

git clone https://github.com/JetBrains/thinkrail.git
cd thinkrail
bun install
bun run dev                          # host + web client together; Ctrl+C stops both
bun run --filter @thinkrail/cli dev  # browser launcher
bun run build:binary                 # standalone CLI artifact
bun run desktop:dev                  # package and open the Electrobun app
bun run desktop:build                # package without opening it

CONTRIBUTING.md 涵盖检查、端到端套件、桌面打包和存储库布局布局。

贡献

欢迎贡献 — 请参阅 CONTRIBUTING.md。此项目和社区由 行为准则 管辖。

许可证

根据 Apache License 2.0 授权。

来源:Hacker News · github.com

00