プログラミング
Show HN: Mindwalk – コードベースの3Dマップでコーディングエージェントのセッションを再生する
Show HN: Mindwalk – Replay coding-agent sessions on a 3D map of your codebase (github.com)
要約
Mindwalkは、コードベースを3Dマップとして可視化し、コーディングエージェントのセッション再生を可能にするツールです。エージェントがコードベースのどの部分を関連性が高いとみなし、どこを探索し、どのように理解したかを、マップ上の光の動きとして直感的に把握できます。このツールはローカルで動作し、セッションデータは外部に送信されません。
全文翻訳
mindwalk コードベースの3Dマップ上でコーディングエージェントのセッションを再生する可視化ツールです。
問題点
セッションログはエージェントが何をしたかを記録しますが、タスクをどのように理解したかは記録しません。リポジトリのどの部分を関連性が高いとみなし、行動する前にどこを探求したか、そのフットプリントがあなたが意図したスコープと一致していたかなどです。生のJSONLを一行ずつ読んでも、これらのどれにも答えてくれません。
アイデア
リポジトリをナイトマップのように描き、セッションをその中を移動する光として再生します。エージェントが検索、読み取り、編集した場所はマップが光り、それ以外の場所は暗いままで、エージェントのタスク理解は一目でわかる形状になります。
1つのGoバイナリがClaude CodeとCodexのセッションログを読み込み、完全にローカルで動作します。セッションデータはあなたのマシンから離れません。
クイックスタート
curl -fsSL https://raw.githubusercontent.com/cosmtrek/mindwalk/master/scripts/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"
mindwalk
インストーラーは、バイナリをchecksums.txtに対して検証し、~/.local/binにインストールします(INSTALL_DIRで上書き可能、VERSIONでリリースを固定可能)。WindowsアーカイブはGitHub Releasesにあります。
ソースからビルドするには: make setup && make build → bin/mindwalk。
引数なしで実行すると、mindwalkは~/.claude/projectsと~/.codex/sessionsをスキャンし、ランダムなローカルポートでUIを起動し、ブラウザを開きます。
mindwalk serve [--port N] [--no-open] [--claude-dir DIR] [--codex-dir DIR]
mindwalk open [--no-open] <session.jsonl>
特定のセッションを開きます。
mindwalk build <repo> [-o out]
リポジトリのcitymap JSONを書き出します。
mindwalk trace <session> [-o out]
正規化されたトレースJSONを書き出します。
絵を読む
ツリー/地形ビュー — リポジトリを放射状ツリーまたはツリーマップとして表示します。光の強さは、ファイルがどれだけ深く、どれだけ頻繁に触られたかに比例します。
タッチ状態 — 各ファイルは最も深いタッチ状態を保持します: 閲覧済み(モスグリーン)、読み取り(ムーンホワイト)、編集済み(ウォームアンバー)、未訪問(ダーク)。
HUDは、摩擦シグナル(エラー率、変更されたファイル、最後の検証後の編集)をレビュー用ストリップに折りたたみます。
再生デッキ — バケット化された実行ヒストグラム上でセッションをスクラブまたは再生します。バーはクール/ウォームのスペクトル上に配置されます: 観察(検索、読み取り、実行)はクールに留まり、ミューテーション(編集、検証)はウォームに光るため、編集フェーズが一目でわかります。
タイムラインマーク — ◇コンテキスト圧縮、○サブエージェント起動、›ユーザーターン。各マークはクリックしてジャンプできるターゲットです。
インスペクタ — ファイルをクリックするとその訪問履歴がピン留めされ、訪問行をクリックすると再生ヘッドがその瞬間にジャンプします。
キーボード: Space 再生/一時停止 · ←/→ ステップ(⇧ ×10) · Home/End 終了 · S スピード · E 次の編集 · X 次のエラー · M 次のマーク · ⌘B セッションレール。
内部構造
意図的に分離された2つのアーティファクトがあります: トレース — セッションログをファイルタッチイベントの順序付けられたストリームに正規化したもの(内部/アダプター、エージェントフォーマットごとに1つのアダプター); シティマップ — リポジトリの決定論的なレイアウト(内部/シティマップ); 同じツリーは常に同じマップを生成するため、セッション間で再生を比較できます。
ローカルGoサーバー(内部/サーバー)がこれら2つを結合し、React/Three.jsフロントエンド(web)を提供します。
schema/ はエクスポートされたJSON契約をミラーリングします。
貢献
イシューとプルリクエストを歓迎します。
動作する開発環境を取得するには:
make setup # フロントエンド依存関係をインストールします
make serve # 作業ツリーからweb/distを提供して、:8765で開発サーバーを実行します
make test # go test + フロントエンドビルド — PR送信前に実行します
make build # 埋め込みアセットとbin/mindwalkを再生成します
基本原則(完全なアーキテクチャノートについてはAGENTS.mdを参照):
境界を維持する: アダプターはレンダリングを知らず、シティマップ生成は再生に依存せず、サーバーは2つを接続するだけです。
Goコードはgofmtで整形してください。internal/server/staticは決して手編集せず、make buildで再生成してください。
トレースまたはシティマップのJSON形状が変更された場合は、schema/と関連するテストを同じ変更で更新してください。