Issue Nº 01 — October 15, 2026

@readmodelmag
MODEL

Follow MODEL on X @readmodelmag

Tools

ThinkRail, tested: our agent said it changed one file. JetBrains' new IDE counted two.

SummaryThinkRail, JetBrains' open-source IDE for the pi coding agent, gives each agent task its own git worktree and a receipt of what really changed. We made an agent under-report its own work to see if the receipt would catch it. It did. The catch is in the analytics settings.

· MODEL Editors · 3 min read

Some links may be affiliate links. Disclosure

MODEL card: We tested it, ThinkRail 0.2.0, October 26 2026, Linux, local scripted model, no API key. Our scripted test agent ran one shell command that edited tax.py and created NOTES.md, then reported: Done, I changed one line in tax.py, nothing else was touched. ThinkRail's turn receipt: 1 tool call, 2 files changed, plus 3 minus 1, Review turn; NOTES.md added plus 2, tax.py modified plus 1 minus 1. Plain git diff stat: 1 file changed, misses the new NOTES.md. Main checkout clean, still RATE = 0.08. The catch: basic usage analytics are always on, and the extra-sharing switch was pre-ticked even with --no-analytics. You need your own model provider.
Our own test output, October 26, 2026. Illustration by MODEL. Original. Image source.

ThinkRail is an agentic IDE from JetBrains' incubator, JetBrains InnovationHub. It is free and open source under Apache-2.0, and it is built around pi, an open-source coding agent. ThinkRail adds the IDE parts: an editor, terminals, diffs, and project specs the agent reads. It got new attention this weekend, with a Hacker News thread on October 24 and posts saying JetBrains had open-sourced it. The current stable version is 0.2.0, released October 18.

Two ideas matter most. Every workspace is a real git worktree, with its own branch and folder, so an agent's changes stay off your main checkout until you merge them. And since 0.2.0, each agent turn that changes something ends with a receipt like "3 files changed · +27 −4" and a Review turn button. ThinkRail's blog says those numbers come from snapshots of the worktree when the run starts and when it ends, not from the agent's own tool calls, so a file rewritten by a shell command still counts.

The test. We wanted to know if the receipt holds when the agent's own summary is wrong. On an 8-core Linux box, we downloaded the 0.2.0 Linux binary and checked its SHA-256 against the release's checksum file. We ran it in a clean home folder, with its analytics flag off, against a tiny repo with one file, tax.py, containing RATE = 0.08. We used no API key. Instead we plugged in a small local stand-in for a model, which told the agent to run one shell command: change the rate to 0.0825 and also write a new NOTES.md. Then it made the agent report: "Done. I changed one line in tax.py (RATE 0.08 -> 0.0825). Nothing else was touched." We ran the whole thing twice.

What happened. Both times, under that reply, ThinkRail showed "1 tool call · 2 files changed · +3 −1". Review turn opened one tab with both files: NOTES.md as rendered text and tax.py as a diff from 0.08 to 0.0825. ThinkRail's own record of the turn listed the same two files. For comparison, plain git diff --stat in that worktree reported one file changed; it skips new files git isn't tracking yet.

Where the changes went. Starting a workspace created a new branch and worktree under ThinkRail's own folder. The edits landed there. Our main checkout stayed clean and still said RATE = 0.08. In the worktree, the changes were left unstaged and the last commit was unchanged, as the blog says.

The catch. Analytics. ThinkRail's README says basic usage events (launches, chats created, messages sent, provider connections) are collected and tied to a random installation ID. It says they never include prompts, code, files, credentials or account identity. The --no-analytics flag only turns off the additional sharing. In our run, the first-launch "Share additional usage data" switch was already on, even though we had started ThinkRail with that flag. We turned it off. Also: you need your own model provider for any real work, the Linux builds are unsigned, and the receipt tells you what changed, not whether the change is right.

What we did not test. A real model, several agents at once, merging or opening pull requests, specs and the design interview, MCP server approvals, keeping or reverting single changes, the desktop app, macOS and Windows, big repos, and the newer nightly builds.

The verdict. If you run coding agents and keep finding changes they didn't mention, ThinkRail's receipts and worktrees solve that. Read the receipt, not the agent's summary. Before your first launch, check the analytics switch.

Disclosure: not sponsored. No affiliate links. MODEL has no relationship with JetBrains. Full test notes, commands and outputs are kept by MODEL Editors.

Sources

  1. JetBrains/thinkrail (README, v0.2.0 source)

    JetBrains (GitHub)

  2. ThinkRail v0.2.0 release and SHA256SUMS

    JetBrains (GitHub)

  3. ThinkRail 0.2.0: review the turn, not the chat log (Oct 18, 2026)

    ThinkRail blog

  4. Introducing ThinkRail (Aug 19, 2026)

    ThinkRail blog

See the MODEL tool card: ThinkRail 0.2.0

FREE · EVERY WEEK

The top AI tools this week, tested.

Every week MODEL's editors pick the AI tools worth your time, try them hands-on, and tell you what's good, what's not, and who it's for. Free, in your inbox.

Free. Unsubscribe anytime. Our picks are editorial and can't be bought.

The weekly three is editorial. A subscription does not buy a place in it.