Đến nội dung chính
Phạm Nam

Tìm kiếm

Nhập từ khoá để tìm trong các bài viết.

Quay lại

ThinkRail JetBrains: IDE agentic chạy pi, worktree, SPEC.md

ThinkRail là IDE agentic của JetBrains chạy pi coding agent, cách ly công việc bằng git worktree và lưu bộ nhớ dự án trong SPEC.md. Cách cài đặt và đánh giá.

10 phút đọc—

ThinkRail — IDE agentic của JetBrains chạy pi coding agent: worktree, living specs và trải nghiệm IDE thật

Cách làm việc quen thuộc với AI coding agent là: mở terminal, gõ prompt, để agent sửa code, rồi tự kiểm tra diff trước khi commit. Cách này nhanh, nhưng yếu dần khi dự án kéo dài: agent sửa thẳng lên checkout chính, lịch sử chat biến mất khi đóng phiên, và hai agent trên cùng một thư mục sớm muộn cũng dẫm chân nhau. ThinkRail, sản phẩm incubator mới của JetBrains, giải quyết đúng ba điểm đó — bằng IDE thật, git worktree cách ly từng nhiệm vụ, và tài liệu thiết kế làm bộ nhớ bền.

Lưu ý trung thực: mình chưa cài và chạy ThinkRail; các lệnh và tính năng dưới đây được đối chiếu với tài liệu chính thức của dự án, kiểm tra ngày 30/10/2026.

Vấn đề thật: vì sao agent trong terminal và panel chat chưa đủ cho dự án dài hơi?

Khi agent làm việc trực tiếp trên branch chính, mọi thay đổi — kể cả thay đổi dở dang hay sai hướng — đều nằm chung với code đang chạy tốt. Với task kéo dài nhiều phiên, rủi ro tích lũy theo từng lần agent sửa.

Panel chat trong IDE hay terminal đều có chung một giới hạn: lịch sử trò chuyện là trạng thái tạm thời. Đóng phiên, đổi máy, hay context bị tràn, agent sẽ quên gần như toàn bộ quyết định thiết kế đã thống nhất. Code thì có git giữ, nhưng “vì sao code lại viết như vậy” thì không có nơi nào giữ một cách có cấu trúc.

Muốn giao ba task cho ba agent cùng lúc, bạn cần ba bản sao làm việc độc lập. Trên cùng một checkout, hai agent sửa chung một file sẽ tạo xung đột khó gỡ, và bạn khó biết thay đổi nào thuộc về task nào.

ThinkRail JetBrains là gì? IDE agentic chạy pi coding agent, không phải plugin chat

ThinkRail là IDE agentic do JetBrains phát triển dưới dạng dự án incubator, tách biệt với các IDE trưởng thành như IntelliJ IDEA hay PyCharm. Điểm khác biệt cốt lõi: ThinkRail xây quanh pi, một coding agent chạy dưới dạng tiến trình độc lập, thay vì chatbot gắn vào panel bên cạnh editor.

Nói ngắn gọn, ThinkRail gom ba thứ vào một công cụ: IDE đầy đủ, agent pi chạy song song, và bộ nhớ bền dưới dạng file SPEC.md.

Đối tượng phù hợp nhất, theo mình, là những người đã dùng agent terminal như pi hay Claude Code và muốn thêm IDE, cách ly workspace và spec bền vững mà không phải tự lắp ghép nhiều công cụ rời rạc.

Về trạng thái dự án tại thời điểm kiểm tra 30/10/2026: phiên bản mới nhất là v0.3.0, phát hành ngày 29/10/2026; repository JetBrains/thinkrail có khoảng 6.373 stars và 347 forks, giấy phép Apache-2.0, viết bằng TypeScript. Đây là dự án còn rất sớm.

Kiến trúc ThinkRail: các thành phần chính và luồng hoạt động

Workbench IDE thật

Mặt trước của ThinkRail là workbench IDE đúng nghĩa: editor Monaco nhiều tab, cây file hiển thị trạng thái git, chế độ xem Changed để soi diff, terminal tích hợp, và review comment gắn vào code.

Pi coding agent chạy như một tiến trình độc lập

Pi không phải khung chat gọi API rồi in câu trả lời: nó chạy được lệnh shell, đọc và sửa file, tạo subagent, và một workspace có thể chạy nhiều phiên song song, mỗi phiên hiển thị trực tiếp số token cùng chi phí.

Vì pi là package npm độc lập chứ không phải model nhúng trong ThinkRail, ThinkRail đổi được provider — nhưng cũng thừa hưởng mọi giới hạn của pi. Đánh giá ThinkRail mà bỏ qua pi thì mới được một nửa bức tranh.

Workspace git worktree: mỗi workspace một branch và thư mục riêng

Đây là quyết định kiến trúc quan trọng nhất của ThinkRail. Mỗi workspace là một git worktree: một thư mục làm việc riêng gắn với một branch riêng. Agent sửa trong worktree của nó, checkout chính của bạn không bị đụng vào. Muốn bỏ một hướng làm sai, bạn xóa workspace đó. Khi task hoàn tất, ThinkRail hỗ trợ luồng publish, push, mở pull request, chạy CI checks và merge.

SPEC.md living specs: đồ thị spec sống cạnh code

Thay vì coi lịch sử chat là bộ nhớ, ThinkRail biến SPEC.md thành trạng thái bền. Các file SPEC.md nằm cạnh code, liên kết với nhau thành một đồ thị, và được agent đọc, tìm kiếm và duy trì qua bộ công cụ spec_* chuyên dụng. Theo mình, đây là ý tưởng đáng chú ý nhất của ThinkRail, và cũng là điểm cần hiểu rõ hệ quả của nó. Khi spec trở thành artifact nằm trong repository, nó được review trong pull request như code, merge được như code — và cũng xung đột được như code. Chạy nhiều phiên pi song song chỉ an toàn nếu các workspace không cùng sửa một nút SPEC.md; nếu không, bạn sẽ gặp xung đột spec, mà xung đột về ngữ nghĩa thiết kế thường khó gỡ hơn xung đột code thuần túy. Team dùng ThinkRail nên có quy ước ownership theo feature cho spec, giống như quy ước ownership cho module code.

Agent Skills, workflow có sẵn và luồng hoạt động

ThinkRail đọc các Agent Skills di động ngay tại chỗ, thay vì bắt bạn import vào một định dạng riêng. Kèm theo đó là các workflow đóng gói sẵn: setup dự án, brainstorm thiết kế, và ship pull request bằng chính công cụ gh của bạn. Trên blog này, Impeccable và Hallmark bàn về thiết kế skill; ThinkRail là tầng công cụ chạy các skill đó trong một IDE, chứ không phải một skill khác.

Luồng tổng thể: bạn đưa yêu cầu vào một workspace; các phiên pi chạy độc lập trong worktree, đọc SPEC.md và skill tại chỗ; khi xong, bạn review diff và spec kèm theo, rồi đi qua luồng PR và CI checks. Trạng thái bền của dự án là code, branch và SPEC.md — còn phiên chat chỉ là phương tiện tạm thời. Chính sự đảo ngược này, từ “chat là bộ nhớ” sang “spec và branch là bộ nhớ”, là khác biệt kiến trúc cốt lõi giữa ThinkRail và IDE chat-panel thông thường.

Hai phụ thuộc không thể thiếu: git trên PATH, và một model provider — JetBrains AI hoặc credentials riêng. Không có provider thì agent không chạy được, và chi phí token nằm ngoài tầm kiểm soát của ThinkRail. Vì đây là dự án incubator ở v0.3.0, workflow, công cụ spec_* và định dạng SPEC.md đều có thể đổi nhanh. Mình không có số liệu hiệu năng độc lập nào về ThinkRail, nên bài này không đưa ra các con số đó.

Hướng dẫn cài đặt ThinkRail và chạy dự án đầu tiên

Điều kiện tiên quyết và yêu cầu môi trường

Trước khi cài, kiểm tra: git trên PATH, tài khoản JetBrains AI hoặc credentials của một provider mà pi hỗ trợ, và hệ điều hành được hỗ trợ. ThinkRail hỗ trợ macOS 14 trở lên, Windows x64, và Linux x64/ARM64. Riêng Linux yêu cầu glibc 2.38 trở lên cùng GTK 3, WebKitGTK 4.1, Ayatana AppIndicator 3 và librsvg 2 (Ubuntu 24.04 trở lên).

Trên Linux, cài các thư viện phụ thuộc trước:

sudo apt install libgtk-3-0 libwebkit2gtk-4.1-0 libayatana-appindicator3-1 librsvg2-2

Cài đặt trên Linux, macOS và Windows

Lệnh cài đặt chính thức trên Linux và macOS (cũng dùng được trên Windows với Git Bash):

curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | bash

Kênh nightly thay vì bản ổn định:

curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | bash -s -- --channel nightly

Trên Windows, dùng PowerShell:

powershell -c "irm https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.ps1 | iex"

Lưu ý an toàn khi cài bằng pipe script

Chạy script tải trực tiếp từ internet vào shell luôn tiềm ẩn rủi ro: nếu nguồn bị thay đổi, bạn sẽ chạy mã mà mình chưa xem. Tài liệu của dự án cũng cung cấp phương án thay thế: tải binary từ trang releases cùng file SHA256SUMS và tự kiểm tra checksum trước khi chạy. Với máy làm việc chính, nên chọn phương án tải về và kiểm chứng checksum thay vì pipe trực tiếp.

Lệnh kiểm chứng và kết quả mong đợi

Sau khi cài, kiểm tra binary đã vào PATH chưa:

thinkrail --help
thinkrail --version

Rồi mở một repository thử nghiệm — nên dùng repo phụ, không phải repo công việc chính trong lần chạy đầu tiên:

thinkrail ~/code/my-repo

Kết quả mong đợi: cửa sổ IDE mở ra, bạn đăng nhập provider, tạo workspace worktree mới, và bắt đầu phiên pi đầu tiên. Bạn sẽ thấy readout token và chi phí theo thời gian thực cho từng phiên. Trong 10 phút đầu, hãy yêu cầu agent viết SPEC.md đầu tiên cho một tính năng nhỏ, rồi tự đọc lại để xem agent hiểu dự án tới đâu.

Lỗi thường gặp

Thiếu git trên PATH: cài git rồi chạy lại lệnh cài đặt. Lỗi glibc hoặc WebKitGTK trên Linux: thường do distro quá cũ — nâng cấp lên Ubuntu 24.04 trở lên hoặc dùng máy khác. Lỗi đăng nhập provider: kiểm tra lại credentials hoặc thử đăng nhập JetBrains AI từ trong ứng dụng thay vì cấu hình tay. Lỗi quyền thực thi script: kiểm tra quyền file và đường dẫn tải về, không nên tự ý chạy với quyền cao hơn mức cần thiết để “cho qua” lỗi. Những lỗi này tổng hợp từ yêu cầu hệ thống mà tài liệu công bố.

Đánh giá kỹ thuật: ưu điểm, nhược điểm, bảo mật và vận hành

Ưu điểm rõ nhất là cách ly bằng git worktree: checkout chính được bảo vệ, nhiều phiên pi chạy song song mà không dẫm chân nhau, và SPEC.md biến quyết định thiết kế thành artifact bền, review được. Luồng PR và CI checks khép kín từ workspace tới merge cũng là điểm cộng thực tế.

Nhược điểm cũng rõ ràng không kém. Dự án còn ở v0.3.0, tức là bạn đang dùng thử một sản phẩm incubator, không phải công cụ ổn định lâu dài. Bạn phụ thuộc vào model provider trả phí — ThinkRail miễn phí theo giấy phép Apache-2.0 không đồng nghĩa với việc chạy agent miễn phí. Phụ thuộc desktop trên Linux khá nặng.

Về bảo mật, cần phân biệt rõ hai tầng. Worktree bảo vệ checkout chính, nhưng không ngăn agent commit, push hay làm lộ secret nếu bạn cấp quyền shell và git quá rộng. Quy tắc không đổi: luôn review diff và chờ CI trước khi merge, và giới hạn quyền của agent ở mức tối thiểu. ThinkRail không thay thế review code của con người.

Về vận hành: dùng kênh stable cho công việc thật, nightly chỉ trên máy thử nghiệm; dọn worktree cũ và branch đã merge; và quản lý branch theo đúng quy ước của team, vì mỗi workspace sinh ra một branch mới.

So sánh ThinkRail với các lựa chọn cùng phạm vi

Tiêu chí so sánh: cách ly workspace, bộ nhớ bền, mức độ đầy đủ của IDE, khóa provider, độ trưởng thành, và khả năng hiển thị chi phí.

So với agent terminal như pi hay Claude Code, ThinkRail đổi sự nhẹ nhàng lấy IDE đầy đủ, worktree cách ly và SPEC.md bền vững. Nếu bạn đã hài lòng với terminal và chỉ cần agent sửa vài file, ThinkRail là thêm trọng lượng không cần thiết.

So với Cursor và Windsurf — các IDE AI tích hợp sẵn — khác biệt nằm ở triết lý. Cursor và Windsurf tích hợp model và agent chặt vào IDE của riêng họ; ThinkRail xây quanh pi như một agent độc lập, cộng thêm mô hình spec và worktree làm trung tâm.

So với VS Code cộng Copilot Chat, ThinkRail thua về chiều rộng hệ sinh thái extension — thứ mà VS Code đã tích lũy nhiều năm. Bù lại, ThinkRail có skill đọc tại chỗ, spec graph và worktree gắn chặt vào luồng làm việc với agent, thay vì là các extension rời rạc bạn phải tự lắp ghép.

Đừng đổi tool chỉ vì một dự án đang trending. Stars tăng nhanh không phải là bằng chứng về độ phù hợp với workflow của bạn. Chạy thử trên repo phụ, đo bằng chính task thật của mình, rồi mới quyết định.

Use case thực tế của ThinkRail

Với team backend, mô hình rõ ràng nhất là tách mỗi task thành một worktree: giao task cho agent trong workspace riêng, review pull request kèm theo SPEC.md, và chỉ merge khi CI xanh. Spec đi kèm PR giúp reviewer hiểu “vì sao” chứ không chỉ “cái gì đã đổi”

Với DevOps và IT admin, ThinkRail hợp với việc thử thay đổi hạ tầng hoặc IaC trong workspace riêng trước khi merge: sửa Terraform hay Ansible trong worktree, chạy kiểm tra, rồi mới đưa lên branch chính. Lưu ý: ThinkRail là ứng dụng desktop chạy trên máy dev, không phải server self-host chạy bằng Docker.

Với người dùng AI coding agent thường xuyên, giá trị nằm ở workflow song song: chạy nhiều phiên pi cùng lúc cho các task độc lập, steering phiên đang chạy thay vì hủy và làm lại.

Ngược lại, ThinkRail không phù hợp với máy yếu, Linux cũ, team cần IDE ổn định lâu dài, hay người chưa có model provider và muốn công cụ hoàn toàn miễn phí.

Kết luận: ai phù hợp với ThinkRail, ai nên chờ, và bước tiếp theo

ThinkRail phù hợp với người đã dùng agent terminal và muốn gom IDE thật, worktree cách ly và SPEC.md bền vững vào một công cụ Nó chưa phù hợp với người cần công cụ ổn định tuyệt đối, muốn miễn phí hoàn toàn, hay chỉ cần chat AI nhanh trong IDE cũ.

Nếu bạn thuộc nhóm đầu, bước tiếp theo trong 10 phút là: cài đặt theo hướng dẫn trên (ưu tiên kiểm chứng checksum), mở một repo thử nghiệm, và tạo workspace worktree đầu tiên. Cách agent viết spec đó sẽ cho bạn câu trả lời thực tế hơn bất kỳ bài đánh giá nào, kể cả bài này.

Một lưu ý cuối về bối cảnh: bài về Headroom trên blog này trình bày một cơ chế khác — nén context — trong khi SPEC.md của ThinkRail chọn hướng lưu trữ thiết kế bền vững.

Tài liệu tham khảo


Bài viết liên quan

Bình luận

Bình luận được duyệt trước khi hiển thị.

Đang tải bình luận…

Để lại bình luận