ThinkRail:围绕 pi 与 Git worktree 的自适应智能 IDE
给需要并行改代码的开发者用的 pi 智能 IDE,用 worktree 和 SPEC.md 隔离并保存上下文。
GitHub JetBrains/thinkrail 更新 2026-10-26 分支 main 星标 1.7K 分叉 102
TypeScript React 19 Bun pi Git worktree MCP Monaco 桌面端与浏览器

🧭 决策指南

适合,如果你

  • 你要让多个 Agent 并行修改同一 Git 仓库,又不想触碰当前 checkout。
    README「What you get」的「Isolated workspaces」写明每个 workspace 使用 git worktree、独立 branch 和 working directory。
  • 你使用 pi,并希望在一个工作区并发运行多个模型会话。
    README「Chats that stream like the engine thinks」写明每个 workspace 支持 several concurrent pi sessions,且各自有 model、token 和 cost readout。
  • 你的团队用 SPEC.md 维护设计意图,并希望 Agent 跨会话读取和更新它。
    README「Specs as ground truth」和「Under the hood」说明 SPEC.md 图谱及 spec_* 工具会维护项目规格。
  • 你需要把 Monaco 编辑器、GitHub PR、CI checks 和 MCP 工具放进同一工作台。
    README「A real IDE around the agent」「MCP servers」和「Isolated workspaces」分别列出 Monaco、PR/CI 操作与 MCP 集成。

不适合,如果你

  • 你使用 macOS Intel 且不能从源码构建 CLI。
    README「Platform notes」明确写明 macOS Intel 的 CLI 为 not prebuilt,需要 build from source。
  • 你的 Linux 环境要求所有下载的可执行文件具备签名。
    README「Platform notes」明确写明 Linux x64 / ARM64 artifacts are unsigned。
  • 你不能接受安装 ID 关联的启动、聊天创建和 provider 连接分析事件。
    README「Analytics & privacy」说明这些 basic usage events 会与 random installation ID 关联;额外数据可在 Settings → Privacy 关闭。
  • 你的环境无法提供 Bun 1.4.4、Node.js ≥22.19 或 authenticated pi provider。
    README「Developing ThinkRail」将 Bun 1.4.4、Node.js ≥22.19 和 authenticated pi provider 列为开发前置条件。

前置条件

  • 开发需要 Bun 1.4.4(pinned package manager and runtime)。
  • 开发需要 Node.js ≥ 22.19(required by the in-process pi engine)。
  • Agent 工作需要 an authenticated pi provider。
  • 桌面与 CLI 发布物均提供 SHA256SUMS;Linux x64 / ARM64 构建产物未签名。
  • CLI 启动时可使用 thinkrail --no-analytics 或 THINKRAIL_NO_ANALYTICS=1 关闭该次运行的额外分享。

第一步命令(README 原文)

git clone https://github.com/JetBrains/thinkrail.git

要注意

  • macOS CLI 已签名但尚未 notarized,旧 DMG 或本地构建包可能被 Gatekeeper 拦截。
    README「Platform notes」明确说明 macOS CLI is signed but not yet notarized,旧 DMG 和本地包可能 unsigned。
  • 仓库定义的 MCP server 默认关闭,首次使用需要在聊天中批准非只读调用。
    README「MCP servers」说明 repository-defined servers remain off until approved,并会在调用前询问。
  • ThinkRail 不提供自有账号,provider 认证依赖 JetBrains AI 或 pi 自带 auth。
    README「Your providers, your credentials」写明 ThinkRail has no accounts of its own。
  • 额外使用数据开启时,打包版本可能在浏览器打开 ThinkRail blog 建立访问关联。
    README「Analytics & privacy」说明 Share additional usage data 开启时可能打开 ThinkRail blog,关联有效期为 30 天。

材料未说明

  • README 未说明支持哪些具体模型名称,以及不同 provider 的兼容性范围。
  • README 未提供桌面应用和 CLI 的最终运行时资源需求,例如 CPU、内存和磁盘空间。
  • README 未说明 1,744 个 Star、102 个 Fork 和 201 个 Issue 的具体构成或未解决问题。
  • README 未说明 Nightly 0.3.0-nightly.6 与稳定版本之间的功能和兼容性差异。
  • README 未给出 macOS Intel 从源码构建后的具体构建步骤和产物验证流程。
  • README 未说明分析事件的完整字段清单,也未量化关闭分析后的功能差异。

💡 深度解析

6
适合,因为它把并行 Agent 任务绑定到隔离的 Git worktree,并连接了提交、CI、审查和 Pull Request 流程。 我们需要同时运行多个 pi 会话,让不同 Agent 在 GitHub 分支上并行实现功能,并在 CI 通过后创建和合并 Pull Request;ThinkRail 是否适合替代直接修改主工作目录的流程?
适合读者: 需要同时推进多个 GitHub 功能分支、并要求每个 AI 任务独立提交和审查的软件团队

适合,因为 ThinkRail 的工作区隔离和 GitHub 交付能力正好覆盖这一约束。

  • 每个工作区可以是独立的 git worktree,拥有自己的分支和工作目录,Agent 不会直接触碰当前 checkout;这适合并行处理多个功能。
  • 一个工作区可运行多个并发 pi 会话,每个会话可使用独立模型,并显示实时 token 与成本。
  • 计划步骤可以分别提交和审查;GitHub PR 打开后可查看 CI 和审查状态,并处理失败检查、分支分叉、合并及删除远程分支。
  • 但项目依赖 Git、分支和 GitHub 权限;没有 Git 工作流或无法使用 gh 的仓库不符合它的设计边界。
  • What you get:"each with its own branch and working directory. Agents work in parallel without touching your checkout"
  • What you get:"Several concurrent `pi` sessions per workspace"
  • What you get:"each completed step can be committed and reviewed on its own"
  • 项目洞察:整合 GitHub Pull Request、CI 与审查状态
bun run dev                          # host + web client together; Ctrl+C stops both
材料未说明:README 未说明多个 Agent 同时修改同一文件或同一模块时的冲突解决策略。;README 未说明企业 GitHub 组织策略是否允许 ThinkRail 自动合并或删除远程分支。
不适合直接按成熟跨平台桌面 IDE 推广,因为平台支持和发布签名仍存在明确限制,尤其是 macOS Intel 和 Linux。 我们需要在 macOS Intel 和 Linux 上使用 ThinkRail,同时企业终端会拦截未签名或未公证应用;我是否可以把它当作成熟的跨平台桌面 IDE 推广?
适合读者: 需要在 macOS Intel、Linux 和浏览器模式部署轻量 IDE,并受企业终端签名、公证和安全拦截政策约束的开发者

不适合直接按成熟跨平台桌面 IDE 推广,因为 README 的平台说明存在企业部署风险。

  • 项目同时提供原生桌面应用和 thinkrail CLI 浏览器模式,二者使用同一引擎;因此浏览器模式可以作为桌面包受限时的替代入口。
  • 项目洞察明确指出 macOS Intel 没有预构建桌面版,Linux 构建产物未签名,macOS CLI 尚未公证,部分系统可能触发安全拦截。
  • 当前最新版本是 v0.3.0-nightly.6,项目数据只有 5 个发布版本,说明它仍处于快速变化阶段,不应按成熟、长期稳定的企业桌面产品假设。
  • README 只说明安装包和 CLI 都发布 SHA256SUMS;校验和能验证文件完整性,但不能替代代码签名、公证或企业审批。
  • What you get:"A native desktop app, or the `thinkrail` CLI that opens the same app in your browser"
  • 项目洞察 user_experience.common_pitfalls:macOS Intel 没有预构建桌面版、Linux 构建产物未签名、macOS CLI 尚未公证
  • 项目数据:latest_release 为 `v0.3.0-nightly.6`,release_count 为 5
  • Install:"Both are published with `SHA256SUMS`"
bun run build:binary
材料未说明:README 未说明企业签名、公证或内部重新打包的官方流程。;README 未说明浏览器模式是否能满足企业网络隔离、代理和本地文件访问策略。;README 未给出 macOS Intel 或 Linux 的正式支持矩阵。
适合,但前提是团队持续维护 SPEC.md;ThinkRail 提供了代理可读取、搜索和更新的规格图谱,而不是自动保证规格永远正确。 我们已经用 SPEC.md 记录架构边界和业务约束,希望多个 pi 会话都能读取并维护这些内容;ThinkRail 能否作为长期项目知识层,而不只是一次性代码生成界面?
适合读者: 维护有架构边界、业务规则和验收条件的规范驱动开发团队,并要求项目意图跨会话保留的技术负责人

适合,但前提是团队把 SPEC.md 当作工程资产持续维护。

  • README 将多个相互连接的 SPEC.md 文件描述为项目规格图谱,文件与代码并置,Agent 可通过专用 spec_* 工具读取、搜索和维护,因此项目意图能跨聊天会话保留。
  • Specs 工具会在工作台中以树形结构呈现,便于负责人检查模块之间的关系,而不是把规格隐藏在模型上下文里。
  • 项目洞察明确把“规格、计划、独立提交、Diff 审查、CI 和 PR”串成持续流程,适合需要长期沉淀设计决策的仓库。
  • 风险在于 README 没有提供规格迁移、过期检测或冲突校验机制;规格未同步时,Agent 可能依据错误意图工作。
  • What you get:"Specs as ground truth"
  • What you get:"A connected graph of `SPEC.md` files lives beside the code"
  • What you get:"the agent reads, searches, and maintains it through dedicated `spec_*` tools"
  • 项目洞察:规格文件与代码并置,按模块维护,并要求跨边界变化同步更新规格
bun run dev                          # host + web client together; Ctrl+C stops both
材料未说明:README 未说明现有非 SPEC.md 文档能否自动导入规格图谱。;README 未说明多个 Agent 同时编辑同一份 SPEC.md 时是否有锁、合并或版本冲突处理。
适合,因为 ThinkRail 是围绕 pi 的宿主和 IDE,而不是另造一个模型层;但实际可用模型仍取决于已认证的 pi 提供商。 我已经依赖 pi 的模型提供商和认证,想在一个 worktree 中并发运行多个会话,为研究、实现和审查分别选择模型;ThinkRail 是否会替换 pi,还是能保留 pi 的能力?
适合读者: 已经使用 pi coding agent,并需要在同一工作区为不同任务选择不同模型、观察 token 和成本的高级开发者

适合,因为 ThinkRail 保留 pi 作为代理、模型和会话能力的来源。

  • README 明确说它是在 pi coding agent 外围构建富界面;项目洞察也指出 pi 负责模型、技能、上下文压缩、成本和会话状态,ThinkRail 负责工作区、编辑器和通信。
  • 同一工作区支持多个并发 pi 会话,每个会话可以使用自己的模型,并显示实时 token 与成本读数,符合研究、实现、审查分工。
  • 认证方式沿用 pi:可以登录 JetBrains AI,也可以通过 pi 自身认证连接其他提供商;ThinkRail 没有自己的账号体系。
  • 开发环境要求 Bun 1.4.4、Node.js 至少 22.19,以及已认证的 pi provider;README 没有承诺每个 pi provider 都具备相同能力或价格。
  • What you get:"We built a rich interface around the `pi` coding agent"
  • What you get:"Several concurrent `pi` sessions per workspace, each with its own model and live token and cost readout"
  • What you get:"Sign in with JetBrains AI or connect any provider through `pi`'s own auth"
  • Developing ThinkRail:"Bun 1.4.4"、"Node.js ≥ 22.19"、"an authenticated `pi` provider"
bun install
材料未说明:README 未列出已验证的具体模型清单,也未说明不同提供商对并发会话、子代理或上下文大小的限制。;README 未说明 token 与成本读数是否覆盖所有提供商的实际费用,还是仅为 pi 层估算。
视情况,因为 README 明确排除提示词、代码、文件和凭据,但仍会发送基础使用事件与错误报告,且模型和 MCP 的数据流不由此声明完全覆盖。 我的仓库包含敏感代码,组织要求确认 ThinkRail 的数据采集范围,并在命令行运行时关闭额外分享;README 描述的隐私控制是否足够支持这项约束?
适合读者: 处理敏感代码库、要求不上传提示词和代码,并需要通过 CLI 临时关闭额外分析数据的开发者

视情况,因为 ThinkRail 的产品分析范围较明确,但敏感代码是否合规还取决于组织对模型和扩展数据流的要求。

  • README 说明基础事件只包含启动、创建聊天、发送消息和连接提供商,并与随机安装 ID 关联;不会包含 prompts、代码、文件、凭据或账号身份。
  • 错误报告也只包含错误类型、代码及 ThinkRail 自身代码中的位置,不包含错误消息、路径、名称、URL 或项目内容。
  • 额外产品使用数据可在 Settings → Privacy 关闭;命令行运行时可以使用 thinkrail --no-analytics,或设置 THINKRAIL_NO_ANALYTICS=1。
  • 但这些声明不等于模型提供商、MCP 服务器和 Agent 扩展不会接触项目内容;项目洞察要求组织自行制定密钥、代码外传、MCP 权限和第三方模型规范。
  • Analytics & privacy:"Usage analytics never include prompts, code, files, credentials, or account identity"
  • Analytics & privacy:"Error reports are also always sent"
  • Analytics & privacy:"thinkrail --no-analytics" 或 "THINKRAIL_NO_ANALYTICS=1"
  • 项目洞察 user_experience.common_pitfalls:组织需自行制定密钥管理、代码外传、MCP 权限和第三方模型使用规范
thinkrail --no-analytics
材料未说明:README 未说明通过 JetBrains AI 或其他 pi provider 发送的提示词和代码会经过哪些地域、保留多久。;README 未说明 MCP 服务器和 Agent Skills 的数据处理、日志保留和合规认证。;README 未说明基础错误报告是否可以完全关闭。
视情况,因为 ThinkRail 提供了调用确认、仓库服务器默认关闭和 OAuth 登录控制,但 README 没有替组织完成权限审计。 我的项目需要使用 MCP 和 OAuth 服务,但组织要求非只读调用必须确认、仓库声明的服务器默认关闭;ThinkRail 是否提供足够明确的权限控制?
适合读者: 需要接入 MCP、仓库声明的工具和 OAuth 服务,但组织要求写操作逐次确认、并限制第三方访问权限的高级开发者

视情况,因为它有清晰的 MCP 控制点,但不能替代组织的权限审查。

  • 对未标记为只读的 MCP 调用,ThinkRail 会在聊天中先询问;可信项目中的工具可以设置为始终允许,这能区分低风险读取和写入操作。
  • 仓库声明的 MCP 服务器默认关闭,用户批准后才启用;OAuth 服务器可从 Settings 登录,聊天界面还会显示当前会话使用的服务器。
  • Settings → Extensions 可以关闭 ThinkRail 扩展,项目洞察还提到扩展开关和权限确认机制,适合需要显式控制工具面的环境。
  • 但 MCP 服务本身的代码、网络访问、凭据范围和数据驻留仍需单独核查;README 只说明产品如何请求确认,没有给出企业级 allowlist、审计日志或沙箱保证。
  • What you get:"asks in the chat before calls the server does not mark read-only"
  • What you get:"keeps servers a repository defines off until you approve them"
  • What you get:"signs you in to OAuth servers from Settings"
  • What you get:"Settings → Extensions lists the ThinkRail extensions the agent gets and lets you switch each one off"
材料未说明:README 未说明 MCP 调用是否提供组织可导出的完整审计日志。;README 未说明 MCP 服务器是否运行在隔离沙箱中,以及凭据是否能限制到单个 worktree 或会话。;README 未说明仓库级 MCP 配置能否被组织策略统一禁止。

✨ 核心亮点

  • 用 Git worktree 隔离并行 Agent 工作区
  • Monaco、终端与实时 Git 状态合一
  • 多个 pi 会话显示实时 token 与成本
  • SPEC.md 图谱让项目知识跨会话保留
  • macOS Intel CLI 未提供预编译版本

🔧 工程化

  • 以 git worktree 创建独立分支和工作目录,支持并行 Agent。
  • React 19、Zustand 与 Tailwind v4 构成可拆分 IDE 工作台。
  • 每个工作区可运行多个 pi 会话,并显示 token 与成本。
  • SPEC.md 与 spec_* 工具维护代码旁的规格知识图谱。
  • 可接入 pi 的 mcp.json、OAuth MCP 服务和 GitHub gh 流程。

⚠️ 风险

  • macOS Intel 没有预构建 CLI,需按 Developing ThinkRail 源码构建。
  • Linux x64/ARM64 构建产物未签名,可能触发系统安全拦截。
  • 运行开发环境要求 Bun 1.4.4、Node.js ≥22.19 和认证 pi provider。
  • 默认收集启动、聊天和 provider 连接等安装 ID 关联事件。
  • 仓库定义的 MCP 服务默认关闭,需在聊天中批准工具调用。

👥 适合谁?

  • 需要并行处理 Git 分支与 PR 的 Agent 开发团队。
  • 使用 TypeScript、React 19 或 Bun 项目的工程师。
  • 希望用 SPEC.md 和 Skills 固化项目知识的团队。
  • 需要桌面应用或 thinkrail CLI 浏览器界面的 pi 用户。