<!-- README.md -->
JetBrains InnovationHub Apache-2.0 open source
The agentic IDE that gets improved all period you use it.
Open a repo as a project. Cut secluded git-worktree workspaces. Pair with a genuine delegate throughout Monaco tabs, terminals, and diffs — during your project's intent lives in a spec chart the delegate really reads.
macOS
Browser UI via command rowInstall the local launcher; run thinkrail to open the browser UI.
curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | attack
Windows
Browser UI via command rowInstall the local launcher; run thinkrail to open the browser UI.
PowerShell
irm https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.ps1 | iex
Command Prompt (cmd)
powershell -c "irm https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.ps1 | iex"
WSL
curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | attack
Linux
Browser UI via command rowInstall the local launcher; run thinkrail to open the browser UI.
curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | attack
<!-- WHY ThinkRail -->
Why ThinkRail
Agents deserve worktrees, not your operating tree.
Every workspace is a genuine git worktree — its own branch, its own cwd. Run multiple agents in parallel; all one's disorder stays on its branch, and main stays spotless until you say otherwise.
Specs are the dirt truth.
ThinkRail is built spec-first, and so are your projects: a connected chart of spec records lives beside the code, and the delegate reads, searches, and maintains it alongside dedicated tools. Intent survives the session.
A lean host, a genuine engine.
The pi coding agent runs in-process and owns models, skills, compaction, and cost. ThinkRail owns the workspace, the editor, and the cable — it never assembles prompts behind your back.
<!-- FEATURES / worktrees -->
Projects → workspaces
A project is any local git repo. A workspace is a git worktree cut from it — created in one click, listed in the rail, available without ceremony.
# one repo, three parallel lines of thought ~/code/my-repo ← project └─ ~/.thinkrail/worktrees/ ├─ workspace-1 ⎇ feature/auth agent A building ├─ workspace-2 ⎇ fix/flaky-test agent B fixing └─ workspace-3 ⎇ spike/ideas you, exploring
- Own branch + cwd per workspace — files, diffs, terminals, and chats all range to it.
- Switch workspaces instantly; nothing reloads, nothing leaks across.
- Merge the fine one, delete the rest. Your repo never noticed the chaos.
<!-- FEATURES / publishing company -->
A genuine IDE about the agent
Watch the delegate activity — or activity beside it — without leaving the page.
Monaco publishing company tabs
The VS Code publishing company engine: syntax everywhere, rendered markdown alongside a origin toggle, document tabs per workspace.
Files tree
The energetic worktree at a glance — akin the barrier on the correct of this extremely page.
Changes
A live git diff of the workspace branch, so you assessment the agent's activity as it lands.
Terminals
Real PTYs scoped to the worktree — run the tests yourself during the delegate keeps typing.
<!-- FEATURES / agent-chat -->
Chats that stream akin the motor thinks
This copy is a genuine pi session, captured in ThinkRail during it worked on its own repo:
Quick tour: what is ThinkRail, and what are the three rings of its architecture? Keep it brief.
read goal-and-requirements.md · architecture.md
ThinkRail is the agentic IDE built about the pi coding delegate — a lean presenter that runs pi in-process and bridges it to a affluent UI, while pi owns models, skills, compaction, cost, and meeting state.
The three rings:
- Engine host (packages/server) — createServer() runs an HTTP+WS presenter affirmative an AgentSessionManager: one in-process pi meeting per tab.
- The wire (packages/contracts) — the typed, versioned protocol between presenter and UI. Types only.
- UI client (apps/web) — mobile-first React that ships independently and dials any presenter complete the wire.
Done 5s · 25.9k tok · $0.17
- Several sessions per workspace, streaming concurrently.
- Pick the example per session; tokens and disbursal tick live in the header.
- Steer a operating rotate or queue a follow-up — no waiting for the delegate to finish.
- Interactive tools: the delegate can ask organized questions back, correct in the chat.
<!-- FEATURES / specs -->
Specs are first-class
Every component carries a SPEC.md alongside frontmatter linking it into a chart — goal, architecture, modules, tasks. The bundled pi-spec-graph extension gives the delegate spec_* tools to search, navigate, and keep it, and the Specs tab renders the live chart of your worktree:
ThinkRail — merchandise goal and scope main spec
ThinkRail — top-level architecture arch
Engine presenter (server library) module
agent — in-process pi sessions submodule
--- id: module-server type: module-design status: active parent: architecture ---
Plain markdown, plain frontmatter, versioned alongside the code — study the specs is enough to comprehend an area and formulate the next task. The delegate keeps them honest as it builds.
<!-- INSTALL.md -->
Install
Choose your phase and commencement working.
Linux: extract the archive, run ./installer, and inspect the native archive requirements.
Browser UI via command rowInstall the local launcher, afterward run thinkrail to open the browser UI.
macOS, Linux, WSL
curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | attack
Windows PowerShell
irm https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.ps1 | iex
Command Prompt
powershell -c "irm https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.ps1 | iex"
Requires git and an authenticated pi provider. See all releases and advanced CLI options.
<!-- CONTRIBUTING -->
Open source, spec-first
ThinkRail is a JetBrains InnovationHub project, licensed Apache-2.0. The repo is developed spec-first — the top-level specs are the product's dirt truth, and this website is itself a component alongside a SPEC.md.
GitHub Issues Contributing Code of Conduct Releases