JetBrains has released ThinkRail, a free, open-source agentic IDE built around the open-source pi coding agent. Its central idea is simple but useful: every task gets its own git worktree and branch, so you can run several AI coding agents in parallel without any of them touching your main checkout. This guide explains what ThinkRail does, how to set it up, and how to fit it into a safe day-to-day workflow.
What ThinkRail Is
ThinkRail comes out of JetBrains' InnovationHub incubator and is licensed under Apache 2.0. It is a thin host around pi: the agent owns models, skills, context compaction, cost tracking and session state, while ThinkRail supplies the interface, workspace management and diff views.
Key features include:
- Worktree workspaces, each with its own branch, files, terminal and chat sessions
- Multiple concurrent pi chats per workspace, each with its own model and live token and cost readout
- A graph of SPEC.md files that acts as durable project memory the agent can search and update
- Support for MCP servers and portable Agent Skills
- A Monaco-based editor, file tree, terminal and an integrated pull request workflow
It is deliberately lightweight. There is no IntelliJ platform or JetBrains language server underneath, so you will not get deep Java or Kotlin code intelligence.
Step 1: Install and Connect a Model Provider
ThinkRail ships as a desktop app for macOS 14 or later, Windows x64 and Linux x64 or ARM64, and as a CLI installed through a script published in the GitHub repository. The script verifies a checksum and adds the thinkrail command to your PATH. You will need Git on your PATH.
ThinkRail has no account of its own. You sign in with JetBrains AI or use any provider already configured through pi, which covers Anthropic, OpenAI and local models. If you already use pi, ThinkRail reads your existing pi configuration, including skills and permissions.
Two setup notes worth knowing: the macOS CLI is signed but not yet notarised, and Linux builds are unsigned. Usage analytics are on by default, and error reports are always sent; you can turn additional sharing off under Settings, Privacy, or launch with the no-analytics flag.
Step 2: Open a Project and Create Workspaces
Point ThinkRail at an existing repository, or choose "Start a new project" to create an empty git repo. On first launch it walks you through connecting a provider.
From the project, create a workspace for each task. Each one becomes a separate worktree with its own branch. A practical pattern looks like this:
- One workspace per ticket or feature, named after the task
- One agent chat per workspace, with a model chosen for the job, such as a cheaper model for tests and a stronger one for refactoring
- Finished or idle workspaces moved to the per-project shelf to keep the sidebar clean
Step 3: Review, Then Merge or Discard
The value of isolation shows up at review time. When an agent finishes, inspect the diff in ThinkRail's review view and leave anchored comments that are sent back into the chat. If the work is good, publish the branch and open a PR from the top bar; once a GitHub PR exists, ThinkRail shows CI checks and review status and can merge through your own GitHub CLI. If the agent went off the rails, discard the worktree. Your main branch never changes.
Step 4: Use SPEC.md and MCP Carefully
ThinkRail encourages a spec-first workflow. A connected graph of SPEC.md files sits beside the code and describes modules and design decisions, and the agent maintains them through dedicated spec tools. Treat these files like code: review the agent's edits to specs as carefully as its edits to source, because stale specs can mislead future sessions. Some developers on Hacker News doubt that agents use such specs reliably, so measure whether they help on your codebase.
For MCP, ThinkRail uses the servers in your pi configuration. The agent asks before calling servers not marked read-only, and servers defined inside a repository stay off until you approve them, a sensible default given the risk of prompt injection through untrusted repos.
Who Should Try It
ThinkRail is early software, with stable releases in the 0.1 range and full extension support still on the roadmap. It suits developers who:
- Already run coding agents on multi-file tasks and want them isolated by default
- Prefer open-source, provider-agnostic tooling with visible per-session costs
- Work mainly in languages where a full IDE's static analysis matters less
Teams that depend on a polished, extension-rich IDE or deep JVM tooling should keep their main editor and treat ThinkRail as an experiment for agent-heavy work.
Why It Matters
The hardest part of using AI coding agents safely is not generating code but containing it. ThinkRail makes worktree isolation, cost visibility and explicit review the default rather than a discipline developers must remember. Even if you never adopt it, the workflow it encodes, one task, one branch, one agent and a human review before merge, is worth copying in whatever tools you use.
