{"slug": "thinkrail-from-jetbrains", "title": "ThinkRail from JetBrains", "summary": "JetBrains released ThinkRail, an Apache-2.0 open-source agentic IDE that runs the pi coding agent in-process and gives each agent session its own git worktree workspace with a separate branch and working directory. ThinkRail runs on macOS, Windows, and Linux, installs via a command-line launcher that opens a browser UI, and pairs the Monaco editor engine with per-workspace file trees, live git diffs, and real PTY terminals, while a spec graph of files beside the code serves as the intent the agent reads and maintains. The release matters because it isolates parallel agents' changes on disposable branches so the main branch stays clean until the user merges.", "body_md": "<!-- README.md -->\n\nJetBrains InnovationHub Apache-2.0 open source\n\n# ThinkRail\n\nThe agentic IDE that gets better every time you use it.\n\nOpen a repo as a project. Cut isolated **git-worktree workspaces**. Pair\n\t\t\t\t\t\twith a real agent across Monaco tabs, terminals, and diffs — while your project's\n\t\t\t\t\t\tintent lives in a **spec graph the agent actually reads**.\n\nThinkRail runs on macOS, Windows, and Linux.\n\nmacOS\n\n## Browser UI via command line\n\nInstall the local launcher; run `thinkrail` to open the browser UI.\n\n`curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | bash`  Windows\n\n## Browser UI via command line\n\nInstall the local launcher; run `thinkrail` to open the browser UI.\n\nPowerShell\n\n`irm https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.ps1 | iex`  Command Prompt (cmd)\n\n`powershell -c \"irm https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.ps1 | iex\"`  WSL\n\n`curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | bash`  Linux\n\n## Browser UI via command line\n\nInstall the local launcher; run `thinkrail` to open the browser UI.\n\n`curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | bash`  <!-- WHY ThinkRail -->\n\n## Why ThinkRail\n\n### Agents deserve worktrees, not your working tree.\n\nEvery workspace is a real `git worktree` — its own branch, its own\n\t\t\t\t\t\t\t\tcwd. Run several agents in parallel; each one's mess stays on its branch, and\n`main` stays clean until you say otherwise.\n\n### Specs are the ground truth.\n\nThinkRail is built spec-first, and so are your projects: a connected graph of spec files lives beside the code, and the agent reads, searches, and maintains it with dedicated tools. Intent survives the session.\n\n### A thin host, a real engine.\n\nThe [`pi` coding agent](https://pi.dev)\nruns in-process and owns models, skills, compaction, and cost. ThinkRail owns\n\t\t\t\t\t\t\t\tthe workspace, the editor, and the wire — it never assembles prompts behind\n\t\t\t\t\t\t\t\tyour back.\n\n<!-- FEATURES / worktrees -->\n\n## Projects → workspaces\n\nA project is any local git repo. A workspace is a `git worktree` cut from\n\t\t\t\t\t\tit — created in one click, listed in the rail, disposable without ceremony.\n\n```\n# one repo, three parallel lines of thought\n~/code/my-repo                        ← project\n└─ ~/.thinkrail/worktrees/\n   ├─ workspace-1   ⎇ feature/auth      agent A building\n   ├─ workspace-2   ⎇ fix/flaky-test    agent B fixing\n   └─ workspace-3   ⎇ spike/ideas       you, exploring\n```\n\n- Own branch + cwd per workspace — files, diffs, terminals, and chats all scope to it.\n- Switch workspaces instantly; nothing reloads, nothing leaks across.\n- Merge the good one, delete the rest. Your repo never noticed the chaos.\n\n<!-- FEATURES / editor -->\n\n## A real IDE around the agent\n\nWatch the agent work — or work beside it — without leaving the page.\n\n### Monaco editor tabs\n\nThe VS Code editor engine: syntax everywhere, rendered markdown with a source toggle, file tabs per workspace.\n\n### Files tree\n\nThe active worktree at a glance — like the rail on the right of this very page.\n\n### Changes\n\nA live git diff of the workspace branch, so you review the agent's work as it lands.\n\n### Terminals\n\nReal PTYs scoped to the worktree — run the tests yourself while the agent keeps typing.\n\n<!-- FEATURES / agent-chat -->\n\n## Chats that stream like the engine thinks\n\nThis transcript is a real `pi` session, captured in ThinkRail while it\n\t\t\t\t\t\tworked on its own repo:\n\n`goal-and-requirements.md` · `architecture.md` \nThinkRail is the agentic IDE built around the `pi` coding agent —\n\t\t\t\t\t\t\t\ta thin host that runs `pi` in-process and bridges it to a rich UI,\n\t\t\t\t\t\t\t\twhile `pi` owns models, skills, compaction, cost, and session state.\n\nThe **three rings**:\n\n1.  **Engine host** (`packages/server` ) —`createServer()` runs an HTTP+WS host plus an`AgentSessionManager` : one in-process`pi` session per tab.\n2.  **The wire** (`packages/contracts` ) — the typed,\n\t\t\t\t\t\t\t\t\tversioned protocol between host and UI. Types only.\n3.  **UI client** (`apps/web` ) — mobile-first React that\n\t\t\t\t\t\t\t\t\tships independently and dials any host over the wire.\n\n- Several sessions per workspace, streaming concurrently.\n- Pick the model per session; tokens and cost tick live in the header.\n- Steer a running turn or queue a follow-up — no waiting for the agent to finish.\n- Interactive tools: the agent can ask structured questions back, right in the chat.\n\n<!-- FEATURES / specs -->\n\n## Specs are first-class\n\nEvery module carries a `SPEC.md` with frontmatter linking it into a graph —\n\t\t\t\t\t\tgoal, architecture, modules, tasks. The bundled `pi-spec-graph` extension\n\t\t\t\t\t\tgives the agent `spec_*` tools to search, navigate, and maintain it, and\n\t\t\t\t\t\tthe Specs tab renders the live graph of your worktree:\n\n**main spec**\n\n**arch**\n\n**module**\n\n**submodule**\n\n**module**\n\n```\n---\nid: module-server\ntype: module-design\nstatus: active\nparent: architecture\n---\n```\n\nPlain markdown, plain frontmatter, versioned with the code — reading the specs is enough to understand an area and formulate the next task. The agent keeps them honest as it builds.\n\n<!-- INSTALL.md -->\n\n## Install\n\nChoose your platform and start working.\n\n**macOS** Apple Silicon\n\n**Windows** Windows x64\n\n**Linux** Ubuntu 24.04+\n\nLinux: extract the archive, run `./installer`, and check the [native library requirements](https://github.com/JetBrains/thinkrail#install).\n\n## Browser UI via command line\n\nInstall the local launcher, then run `thinkrail` to open the browser UI.\n\n`curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | bash`  `irm https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.ps1 | iex`  `powershell -c \"irm https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.ps1 | iex\"`  Requires `git` and an authenticated `pi` provider. See [all releases](https://github.com/JetBrains/thinkrail/releases) and [advanced CLI options](https://github.com/JetBrains/thinkrail#install).", "url": "https://wpnews.pro/news/thinkrail-from-jetbrains", "canonical_source": "https://thinkrail.ai/", "published_at": "2026-10-24 08:08:42+00:00", "updated_at": "2026-10-24 08:43:36.801316+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "artificial-intelligence"], "entities": ["JetBrains", "ThinkRail", "pi", "Monaco", "JetBrains InnovationHub"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/thinkrail-from-jetbrains", "markdown": "https://wpnews.pro/news/thinkrail-from-jetbrains.md", "text": "https://wpnews.pro/news/thinkrail-from-jetbrains.txt", "jsonld": "https://wpnews.pro/news/thinkrail-from-jetbrains.jsonld"}}