JetBrains Thinkrail JetBrains has launched ThinkRail, an agentic IDE built around the open-source `pi` coding agent that isolates each agent session in its own `git worktree` workspace with a separate branch and working directory. ThinkRail adds a Monaco-based workbench, concurrent `pi` sessions with per-session model selection and live token and cost readouts, a connected graph of `SPEC.md` files the agent maintains through dedicated `spec_*` tools, and MCP server support with approval prompts for non-read-only calls. JetBrains said full extension support is next, so ThinkRail can create the tools it needs based on how a user works. ThinkRail is the agentic IDE that gets better every time you use it — learning your project through living specs today, and building its own capabilities tomorrow. We built a rich interface around the pi https://www.npmjs.com/package/@earendil-works/pi-coding-agent coding agent, isolated work into separate workspaces, and gave the agent durable project knowledge through living specs and reusable skills. Next, we're adding full extension support, so ThinkRail can create the tools it needs based on how you actually work. Website: thinkrail.ai https://thinkrail.ai/ · Blog: thinkrail.ai/blog https://thinkrail.ai/blog/ ⭐ If you find ThinkRail useful, give it a star — it helps others discover it. A pi session and the change it made, scoped to an isolated git-worktree workspace. - Isolated workspaces. Open any git repo as a project and cut workspaces from it as git worktree s, each with its own branch and working directory. Agents work in parallel without touching your checkout; merge the good branch, delete the rest. You can also attach existing worktrees or explicitly work in the project folder itself. Finished and dormant workspaces settle onto a per-project shelf on their own — when their pull request merges or closes, or after a quiet week — and come back the moment you work in them. The topbar shows where the active branch stands against origin and its pull request, with the next step one click away: publish, push, or open a PR described from the plan, the commits, your PR template, or an agent-written draft. Once a GitHub PR is open it shows the CI checks and review decision, and lets you mark it ready, hand failing checks or a diverged branch to the agent, merge it with the repository's last-used method, reopen it, or delete the remote branch. - A real IDE around the agent. A splittable workbench of Monaco editor tabs, a Files tree with live git change marks and a Changed view, terminals, and documents — all scoped to the active workspace. Leave anchored review comments on files and diffs and send them to a chat as structured context, or open the worktree in your installed IDE. - Chats that stream like the engine thinks. Several concurrent pi sessions per workspace, each with its own model and live token and cost readout. Steer a running turn or queue a follow-up, delegate to subagents, and work a shared plan the agent updates and you edit — each completed step can be committed and reviewed on its own. - Specs as ground truth. A connected graph of SPEC.md files lives beside the code; the agent reads, searches, and maintains it through dedicated spec tools, so intent survives the session. The read-only Specs tool renders the graph as a tree in the workbench. - Skills and workflows. Portable Agent Skills you already keep for other coding agents are read in place, and bundled workflows guide project setup, design brainstorming, and shipping a pull request — pushing the workspace branch and opening or updating its GitHub PR through your own gh . - Agent tools beyond the shell. Web research, and inline diagrams, option comparisons and file previews rendered right in the chat — when the agent proposes a UI change it shows a before/after mockup you can comment on like a diff. Settings → Extensions lists the ThinkRail extensions the agent gets and lets you switch each one off. - MCP servers. Connect the MCP servers in your pi mcp.json or add them, and a few presets, from Settings : ThinkRail asks in the chat before calls the server does not mark read-only or always allows the tools you trust in a project , keeps servers a repository defines off until you approve them, signs you in to OAuth servers from Settings, and shows each chat's servers next to its background commands and subagents. - Your providers, your credentials. Sign in with JetBrains AI https://www.jetbrains.com/ai/ or connect any provider through pi 's own auth. ThinkRail has no accounts of its own. - Desktop app or browser. A native desktop app, or the thinkrail CLI that opens the same app in your browser. Both embed the same engine host; app state lives under ~/.thinkrail . - Your language. Settings → Language follows your system language or a language you pick; English and Simplified Chinese are built in. Add a language ThinkRail doesn't ship yet by dropping a translated en.json into ~/.thinkrail/locales — it applies as you save. Agent replies and tool output stay as the agent wrote them. The project's spec graph as a tree, with the spec itself rendered alongside. ThinkRail ships in two additive forms: a native desktop installer and the self-contained thinkrail CLI. Both are published with SHA256SUMS on the releases page https://github.com/JetBrains/thinkrail/releases . Download the thinkrail-desktop- asset for your platform: - macOS Apple Silicon — open the DMG. There is no Intel desktop build. - Windows x64 — extract the complete setup ZIP, then run its setup executable in place, next to its payload. - Linux x64 / ARM64 — extract the setup tarball and run installer . Desktop builds need glibc 2.38+ with GTK 3, WebKitGTK 4.1, Ayatana AppIndicator 3, and librsvg 2 — Ubuntu 24.04 or newer: sudo apt install libgtk-3-0 libwebkit2gtk-4.1-0 libayatana-appindicator3-1 librsvg2-2 Packaged stable and nightly desktop builds check for updates in the background and offer them in Settings → Updates : Download → Preparing update → Install & Restart . Nothing is applied until you choose Install & Restart . ThinkRail then shows the installation's progress and log, closes, and reopens on the new version. After the restart it tells you whether the update installed. If it didn't, it explains why and offers to retry. The updater appears only when the package carries a valid HTTPS feed identity; installations that predate that identity need one manual installation first. The installer downloads the right binary, verifies its SHA-256 checksum, and puts thinkrail on your PATH. macOS / Linux also Windows under Git Bash : curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | bash Windows — the same command works from cmd and PowerShell: powershell -c "irm https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.ps1 | iex" Then run thinkrail , optionally with a git repo to open as a project: thinkrail ~/code/my-repo thinkrail needs git on your PATH and a model provider — sign in with JetBrains AI from the app or use your own provider credentials. thinkrail --help lists the flags; thinkrail --version prints the build. Nightly builds, pinned versions, updates, and uninstall The installer takes --channel stable|nightly and --version ; a pinned version must belong to the selected channel: 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 On Windows the options are environment variables 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 Installed stable and nightly CLI hosts periodically offer Run Update in Settings → Updates . It runs the host machine's thinkrail update in the background — also when the UI is open in a browser on another machine — and a successful update asks you to restart the host manually. You can run thinkrail update directly on any platform: it re-runs the installer for the installed channel and replaces