コンテンツにスキップ

AI エージェントと働く

konoma はひとつのレイアウトのために作られました: 左に konoma、右に AI コーディングエージェント(Claude Code など)。エージェントが編集し、あなたは キーボードから手を離さずに、眺め・レビューし・舵を取ります。

どの画面でも F を押すと ON。以降、ディスク上でファイルが変わるたびに konoma が F を押した時点からの変更の diff を自動表示します(git スイートと同じ 全画面 diff・ハンク単位の before/after)。フォロー開始前からあった未コミットの 変更はベースラインに畳まれて隠れるので、見えるのはエージェントがこれから 加える変更だけです。エージェントが保存する → その新しい変更だけが目の前に 出る、手放しのレビューです。

フォローモード — 元から未コミットの変更があるファイルでも、F 以降はエージェントが足した行だけが強調され、f でフル git diff に切り替わる

src/main.rs には元から自分の未コミット変更(// TODO: handle retries)があり、 素の git diff にはそれが出ています。F のあとエージェントが関数を追記すると konoma が自らそのファイルを開きますが、強調されるのは新しい関数だけ—— さきほどの自分の変更は文脈行に退きます。f を押すとフル git diff に切り替わり、 両方が強調されます。続けて docs/guide.md を編集すると konoma はそちらへ追従します。

使い心地のための工夫:

  • フォローは粘着的です。 diff を読む操作(スクロール・n/N(変更ファイル 回遊)・f(後述))では解除されません。解除されるのは q(diff を出る)・ テキスト入力/確認モーダルに入る・F を再度押す、の3つだけです。
  • フォロー diff の中で f を押すと、開始以降の diff(既定)とフル git diff を切替えられます(タイトルに · since follow start / · full diff と表示)。
  • 未追跡(新規)ファイルは全行追加の diff として表示。diff が無いファイルと メディア(画像・PDF 等)は通常プレビューで開き、最初の変更位置へスクロールします。
  • 複数ファイルの連続編集は約1秒に1回へレート制限(最新の変更が勝つ)されるので、 画面がバタつきません。
  • diff 表示中の n / Nこの追尾セッション中に変わったファイルだけを 巡回します(タイトルに (2/5) と位置表示)。F を押す前から汚れていたファイルは 混ざりません。
  • .git 内部・gitignore 対象・隠しファイルは追尾しません。
  • ui.follow_view = "file" にすると、diff でなく通常プレビュー(変更ガター付き・ 最初の変更ハンクへスクロール)で開きます。

C でツリーが「未コミット変更のあるファイルだけのフラット一覧」になります (相対パス・ステータスマーカー・ライブ更新)。エージェントの作業を上から順に レビューできます:

  • Enter でプレビュー、d で diff。
  • n / N は通常ツリーでも動作 — 折りたたまれたディレクトリを展開しながら 次/前の変更ファイルへジャンプします。
  • Ch で通常ツリーへ。変更が無くなれば(コミット後など)自動で解除されます。

エージェントに場所を伝える — @ 参照

Section titled “エージェントに場所を伝える — @ 参照”

コーディングエージェントは @path 参照を受け付けます。konoma は貼るだけの形で コピーします:

  • ツリー: y@ で選択エントリの @相対パス
  • テキストプレビュー: Y でキャレット行の @path#L12v/V 選択があれば @path#L12-34

会話に貼れば、どの行の話かが正確に伝わります。

ワークツリー — エージェントごとに作業場を分ける — o w

Section titled “ワークツリー — エージェントごとに作業場を分ける — o w”

エージェントは自分専用のチェックアウトがあると動かしやすく、複数を並行させる手段として git worktree が定着しています。konoma はそれを一覧できます — o のあと w

ワークツリー — 一覧を開き、エージェントのワークツリーが base ブランチから積んだ差分を見て、そこへ移動すると WT チップが元の repo 名を示す

自分のチェックアウトには自分の未コミット変更がある。o w で一覧を開くと、エージェントは 自分専用のワークツリーを持っている。d はそのワークツリーが base ブランチから積んだもの — すでにコミットした分と、まだ書きかけの行の両方 — を見せる。Enter で中に入ると、 WT demoadd-retry の元のリポジトリを示す。

  • d はコミット済みと未コミットの両方を出します。 エージェントは作業中にコミットしてしまうので、 未コミット差分だけを見せると成果が出た瞬間に空になります。konoma は merge-base からの差分を取り、 未追跡ファイルも含めるので、エージェントが今作ったファイルも見えます。
  • base は「一番近いブランチ」が選ばれます。 graph_base_branches に挙げたブランチと、 メインワークツリーがチェックアウトしているブランチのうち、共通祖先が最も新しいものを採ります。 そのワークツリーが実際に分岐した枝が選ばれるので、他の枝の無関係な作業が差分に混ざりません。
  • Enter はこのタブを移し、Ctrl-t は別タブで開きます。 切り替えると @ 参照の基準も 移動先のワークツリーになるので、チャットに貼るパスがそのまま正しいファイルを指します。
  • WT チップは常に出ています。 ワークツリーのディレクトリ名はブランチ名であってプロジェクト名ではないため、 これが無いと「どのリポジトリにいるか」が画面のどこにも出ません。通常のチェックアウトでは何も出ません。
  • git が入れないワークツリー(bare リポジトリ、ディレクトリが消えたもの)は、黙って失敗せず理由を伝えます。 ロックされたものには入れます — ロックは移動と削除を守るもので、読むことは妨げないからです。
  1. F — フォロー ON。エージェントに変更を依頼。
  2. 作業に合わせて diff が流れてくる。n/N でファイル間を行き来。
  3. 気になる箇所があれば Y で行参照をコピーし、コメントを添えてチャットへ。
  4. OK なら o → stage → c コミット。すべて konoma の中で完結。