JetBrains Thinkrail
JetBrains Thinkrail (github.com)
要約
JetBrainsが開発したThinkrailは、AIエージェント「pi」を中心に構築されたエージェンティックIDEです。プロジェクトの仕様を学習し、独立したワークスペースで作業を行い、永続的なプロジェクト知識を蓄積することで、ユーザーの作業スタイルに合わせて進化します。拡張機能サポートも追加され、ユーザーが必要とするツールを自身で作成できるようになります。
全文翻訳
ThinkRail
[画像: JetBrains incubator project] [画像: GitHub stars]
ThinkRailは、使用するたびに改善されるエージェンティックIDEです。今日ではライブな仕様を通じてプロジェクトを学習し、明日には独自の能力を構築します。
piコーディングエージェントを中心にリッチなインターフェースを構築し、作業を個別のワークスペースに分離し、ライブな仕様と再利用可能なスキルを通じてエージェントに永続的なプロジェクト知識を与えました。次に、完全な拡張機能サポートを追加し、ThinkRailが実際の作業方法に基づいて必要なツールを作成できるようにします。
ウェブサイト: thinkrail.ai · ブログ: thinkrail.ai/blog
⭐ ThinkRailが役立つと思ったら、スターを付けてください — 他の人が見つけやすくなります。
[画像: ThinkRail workbench: Projectsペインの横にworktreeワークスペースとそのSettledシェルフのリスト、中央に完了したpi会話とそのツールステップ、その横に結果のdiff、右側にChangesリストの上にSpecsツリー、エッジレールにツール]
piセッションとそれが作成した変更。git-worktreeワークスペースにスコープされています。
特長
- 独立したワークスペース。 任意のgitリポジトリをプロジェクトとして開き、
git worktreeとしてワークスペースを切り出します。各ワークスペースは独自のブランチとワーキングディレクトリを持ちます。エージェントはチェックアウトに影響を与えることなく並列で作業します。良好なブランチをマージし、残りを削除します。既存のworktreeをアタッチしたり、プロジェクトフォルダ自体で明示的に作業することもできます。完了した、または休止中のワークスペースは、プロジェクトごとのシェルフに自動的に格納されます(プルリクエストがマージまたはクローズされた後、または1週間何も操作がない場合)。作業を再開するとすぐに復帰します。トップバーには、アクティブなブランチがoriginおよびそのプルリクエストに対してどの位置にあるかが表示され、次のステップはワンクリックで実行できます:公開、プッシュ、またはプラン、コミット、PRテンプレート、またはエージェントが記述したドラフトから記述されたPRを開く。GitHub PRが開かれると、CIチェックとレビューの決定が表示され、準備完了とマークしたり、エージェントに失敗したチェックや分岐したブランチを渡したり、リポジトリの最後に使用された方法でマージしたり、再オープンしたり、リモートブランチを削除したりできます。 - エージェントを中心とした実際のIDE。 Monacoエディタタブの分割可能なワークベンチ、ライブなgit変更マークとChangedビューを持つFilesツリー、ターミナル、ドキュメント — すべてアクティブなワークスペースにスコープされています。ファイルやdiffに固定されたレビューコメントを残し、構造化されたコンテキストとしてチャットに送信したり、インストール済みのIDEでworktreeを開いたりできます。
- エンジンが思考するようにストリーミングされるチャット。 ワークスペースごとに複数の同時
piセッションがあり、それぞれが独自のモデルとライブなトークンおよびコストの表示を持ちます。実行中のターンを制御したり、フォローアップをキューに入れたり、サブエージェントに委任したり、エージェントが更新し、あなたが編集する共有プランで作業したりできます — 各完了したステップは、それ自体でコミットおよびレビューできます。 - 仕様(Specs)を真実の基準として。
SPEC.mdファイルの接続されたグラフがコードの横に配置されます。エージェントは、専用のspec_*ツールを通じてそれを読み取り、検索し、維持するため、意図はセッションを超えて存続します。読み取り専用のSpecsツールは、ワークベンチでグラフをツリーとしてレンダリングします。 - スキルとワークフロー。 他のコーディングエージェントのために既に保持しているポータブルエージェントスキルがその場で読み込まれ、バンドルされたワークフローがプロジェクトセットアップ、デザインブレインストーミング、プルリクエストの出荷をガイドします — ワークスペースブランチをプッシュし、独自の
ghを通じてGitHub PRを開くか更新します。 - シェルを超えるエージェントツール。 ウェブ検索、インライン図、オプション比較、チャット内で直接レンダリングされるファイルプレビュー — エージェントがUIの変更を提案すると、diffのようにコメントできる変更前後のモックアップが表示されます。Settings → Extensionsには、エージェントが取得するThinkRail拡張機能のリストが表示され、各拡張機能をオフに切り替えることができます。
- MCPサーバー。
piのmcp.jsonでMCPサーバーを接続します(または設定からプリセットを追加します)。ThinkRailは、サーバーが読み取り専用としてマークしない(またはプロジェクト内で信頼するツールを常に許可する)前にチャットで尋ねます。サーバーは、承認するまでリポジトリでオフとしてマークされ、設定からOAuthサーバーにサインインし、各チャットのサーバーをバックグラウンドコマンドとサブエージェントの横に表示します。 - あなたのプロバイダー、あなたの認証情報。 JetBrains AIでサインインするか、
pi独自の認証を通じて任意のプロバイダーを接続します。ThinkRailは独自のカウントを持ちません。 - デスクトップアプリまたはブラウザ。 ネイティブデスクトップアプリ、または同じアプリをブラウザで開く
thinkrailCLI。どちらも同じエンジンホストを埋め込みます。アプリの状態は~/.thinkrailの下に保存されます。 - あなたの言語。 Settings → Languageは、システム言語または選択した言語に従います。英語と簡体字中国語が組み込まれています。ThinkRailがまだ提供していない言語を追加するには、翻訳された
en.jsonを~/.thinkrail/localesにドロップします — 保存すると適用されます。エージェントの応答とツールの出力は、エージェントが記述したとおりに保持されます。
[画像: 右エッジレールから開かれたSpecsツール。プロジェクトのspecツリーをリストし、製品目標specがエディタにレンダリングされている]
プロジェクトのspecグラフをツリーとして、spec自体を並べてレンダリング。
インストール
ThinkRailは2つの追加形式で提供されます:ネイティブデスクトップインストーラーと自己完結型thinkrail CLI。どちらもリリースページでSHA256SUMSと共に公開されています。
デスクトップ
お使いのプラットフォーム用のthinkrail-desktop-*アセットをダウンロードしてください:
-
macOS (Apple Silicon) — DMGを開きます。Intelデスクトップビルドはありません。
-
Windows x64 — 完全なセットアップZIPを解凍し、ペイロードの隣にセットアップ実行可能ファイルを実行します。
-
Linux x64 / ARM64 — セットアップtarballを解凍し、
installerを実行します。デスクトップビルドにはglibc 2.38+、GTK 3、WebKitGTK 4.1、Ayatana AppIndicator 3、librsvg 2が必要です — Ubuntu 24.04以降:
sudo apt install libgtk-3-0 libwebkit2gtk-4.1-0 libayatana-appindicator3-1 librsvg2-2
パッケージ化された安定版およびナイトリー版デスクトップビルドは、バックグラウンドでアップデートをチェックし、Settings → Updatesで提供します:Download → Preparing update → Install & Restart。選択するまで何も適用されません。ThinkRailはインストールの進行状況とログを表示し、閉じ、新しいバージョンで再起動します。再起動後、アップデートがインストールされたかどうかを通知します。インストールされなかった場合は、理由を説明し、再試行を提案します。アップデーターは、パッケージが有効なHTTPSフィードIDを運ぶ場合にのみ表示されます。そのIDより前のインストールには、最初のマニュアルインストールが必要です。
コマンドライン
インストーラーは適切なバイナリをダウンロードし、SHA-256チェックサムを検証し、thinkrailをPATHに配置します。
macOS / Linux(WindowsでもGit Bash下で使用可能):
curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | bash
Windows — 同じコマンドがcmdとPowerShellで機能します:
powershell -c "irm https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.ps1 | iex"
その後、thinkrailを実行します。オプションでプロジェクトとして開くgitリポジトリを指定します:
thinkrail ~/code/my-repo
thinkrailはPATHにgitとモデルプロバイダーが必要です — アプリからJetBrains AIでサインインするか、独自のプロバイダー認証情報を使用します。thinkrail --helpはフラグをリストし、thinkrail --versionはビルドを表示します。
ナイトリービルド、ピン留めバージョン、アップデート、アンインストール
インストーラーは--channel stable|nightlyと--versionを取ります。ピン留めされたバージョンは選択されたチャネルに属する必要があります:
curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | bash -s -- --channel nightly
curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | bash -s -- --channel stable --version 0.1.2
curl -fsSL https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.sh | bash -s -- --channel nightly --version 0.2.0-nightly.10
Windowsでは、オプションは環境変数です(THINKRAIL_CHANNEL、THINKRAIL_VERSION、THINKRAIL_PREFIX、THINKRAIL_NO_MODIFY_PATH):
$env:THINKRAIL_CHANNEL='nightly'; irm https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.ps1 | iex # PowerShell
set "THINKRAIL_CHANNEL=stable" && set "THINKRAIL_VERSION=0.1.2" && powershell -c "irm https://raw.githubusercontent.com/JetBrains/thinkrail/main/install.ps1 | iex" # cmd
インストールされた安定版およびナイトリー版CLIホストは、Settings → Updatesで定期的にRun Updateを提供します。これはホストマシンのthinkrail updateをバックグラウンドで実行します(ブラウザで開かれたUIが別のマシンで開かれている場合でも)。正常なアップデートは、ホストを手動で再起動するように求めます。どのプラットフォームでもthinkrail updateを直接実行できます。これはインストールされたチャネルのインストーラーを再実行し、<prefix>/bin/thinkrail[.exe]を置き換えます。明示的なオーバーライドのためだけに--channelまたは--versionを渡します。
thinkrail uninstallは、実行可能ファイル、インストーラーが追加したPATHエントリ、およびインストールメタデータを削除し、~/.thinkrailアプリの状態を削除するかどうかを尋ねます(デフォルトで保持されます — --remove-dataは削除し、-yは質問をスキップします)。
手動インストールを希望しますか? リリースページからバイナリとSHA256SUMSをダウンロードし、チェックサムを検証してください。セルフアップデートを機能させるには、thinkrail(Windowsではthinkrail.exe)に名前を変更し、<prefix>/bin/thinkrail[.exe]に配置します。リリースファイル名の下や他の場所に保持されているバイナリは、手動で置き換えるか、スクリプトで再インストールする必要があります。
プラットフォームノート
| プラットフォーム | デスクトップ | CLI |
|---|---|---|
| macOS Apple Silicon | DMG | 署名済みバイナリ |
| macOS Intel | Electrobunビルドなし | 事前ビルドなし — ソースからビルド |
| Windows x64 | 署名済みセットアップ実行可能ファイルとアプリバイナリ | 署名済み.exe |
| Linux x64 / ARM64 | セットアップtarball、未署名 | 未署名 |
JetBrainsはWindows CLI、デスクトップセットアップ実行可能ファイル、およびデスクトップアプリがインストールするすべての実行可能ファイルとDLLに署名します。macOS CLIは署名されていますが、まだ公証されていません。署名および公証されたデスクトップDMGには、調整されたJetBrainsサービスパイプラインが必要です。古い公開DMGおよびローカルでビルドされたパッケージは、まだ署名されておらず、Gatekeeperによってブロックされる可能性があります。Linuxアーティファクトは未署名です。
分析とプライバシー
ThinkRailは、ランダムなインストールIDに関連付けられた基本的な使用イベント(起動、チャット作成、メッセージ送信、プロバイダー接続)を収集します。使用状況の分析には、プロンプト、コード、ファイル、認証情報、アカウントIDは含まれません。エラーレポートも常に同じインストールIDに関連付けられて送信されるため、クラッシュを修正できます。エラーレポートには、エラータイプとコード、およびThinkRail自体のコード内の発生場所が含まれます。エラーメッセージ、ファイルパス、名前、URL、またはプロジェクトや拡張機能からのものは一切含まれません。追加の製品使用状況とThinkRailの発見方法は、Share additional usage dataがオンの場合にのみ共有されます。このスイッチは初回起動時に提供され、Settings → Privacyにあります。コマンドラインから起動する場合、thinkrail --no-analytics(またはTHINKRAIL_NO_ANALYTICS=1)は、その実行での追加共有をオフにします。追加共有がオンの場合、パッケージ化されたビルドは、ThinkRailブログをブラウザで一度開き、インストールをそこに来たウェブサイト訪問にリンクする場合があります(マーケティングCookieを受け入れた場合、または同意が不要な場合のみ)。そのリンクは30日後に期限切れになります。
内部構造
ThinkRailは、piをインプロセスで実行し、リッチなWeb UIにブリッジする薄いホストです。piはモデル、スキル、コンパクション、コスト、セッション状態を所有します。アプリはワークスペース、エディタ、ワイヤーを所有します — バックグラウンドでプロンプトを組み立てることはありません。3つのリング:
- エンジンホスト —
packages/server(+packages/shared):1つのインプロセスpiセッションをチャットごとに持つBun.serveHTTP+WSホスト。apps/cliまたはapps/desktopによって起動されます。 - ワイヤー —
packages/contracts:ホストとUI間の型付けされたバージョン管理されたプロトコル。 - UIクライアント —
apps/web:React 19 + Zustand + Tailwind v4。独立して出荷され、ワイヤー経由でホストに接続し、契約のみに依存します。
goal-and-requirements.mdとarchitecture.mdが正規の製品および設計仕様です。ThinkRailは仕様優先で開発されています:SPEC.mdは各モジュールの横に配置され、境界、契約、または決定を移動する変更は同じ変更で仕様を更新します。
ThinkRailの開発
エージェント作業には、Bun 1.4.4(ピン留めされたパッケージマネージャーおよびランタイム)、Node.js ≥ 22.19(インプロセスpiエンジンに必要)、および認証済みpiプロバイダーが必要です。
git clone https://github.com/JetBrains/thinkrail.git
cd thinkrail
bun install
bun run dev # ホスト + Webクライアントを同時に実行; Ctrl+Cで両方を停止
bun run --filter @thinkrail/cli dev # ブラウザランチャー
bun run build:binary # スタンドアロンCLIアーティファクト
bun run desktop:dev # パッケージ化してElectrobunアプリを開く
bun run desktop:build # パッケージ化のみ(開かない)
CONTRIBUTING.mdには、チェック、エンドツーエンドスイート、デスクトップパッケージング、リポジトリレイアウトが含まれています。
貢献
貢献を歓迎します — CONTRIBUTING.mdを参照してください。このプロジェクトとコミュニティは、行動規範によって管理されています。
ライセンス
Apache License 2.0の下でライセンスされています。