<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Paneflow Blog</title>
    <link>https://paneflow.dev/ja/blog</link>
    <description>Paneflow で複数のコードエージェントを起動・整理・再開し、連携させるための具体的なガイド集です。</description>
    <language>ja-JP</language>
    <lastBuildDate>Tue, 21 Jul 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://paneflow.dev/ja/feed.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Paneflow 0.8.1: Windows でも libghostty-vt が Alacritty を置き換え</title>
      <link>https://paneflow.dev/ja/blog/libghostty-windows</link>
      <guid isPermaLink="true">https://paneflow.dev/ja/blog/libghostty-windows</guid>
      <pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate>
      <dc:creator>Arthur Jean</dc:creator>
      <category>paneflow</category>
      <category>windows</category>
      <category>terminal</category>
      <category>ghostty</category>
      <description>ネイティブ Windows x64 ビルドは、静的リンクされた libghostty-vt エンジンをデフォルトで使用するようになりました。Paneflow は GPUI レンダラーと ConPTY ホストを維持し、Alacritty へすぐに戻せます。</description>
      <content:encoded><![CDATA[<p><a href="https://github.com/arthjean/paneflow/releases/tag/v0.8.1" rel="noopener noreferrer nofollow ugc" target="_blank">Paneflow 0.8.1</a> では、ネイティブ Windows ビルドに <code>libghostty-vt</code> が導入されました。公式 x64 MSI では、<code>terminal.backend</code> を省略するか <code>auto</code> のままにすると、新しいターミナルセッションで Ghostty が選択されます。</p>
<p>これは Paneflow 0.8.0 で Linux 向けにリリースしたターミナルエンジン移行の続きです。Paneflow は Linux x86_64、Linux ARM64、Windows x64 MSVC で、同じ Ghostty VT コアをデフォルトで使用するようになりました。Alacritty は明示的な復旧用バックエンドとして各プラットフォームに残り、macOS と非対応ターゲットでは引き続きデフォルトです。</p>

  <img src="/images/libghostty-windows.webp" alt="青とラベンダー色の風景に並ぶ Ghostty のアプリアイコンと Windows ロゴ" width="{1920}" height="{1080}" />
<h2>Ghostty エンジンが ConPTY 上で動作</h2>
<p>Paneflow は VT エンジン層で Ghostty を統合しています。<code>libghostty-vt</code> はターミナルシーケンスを解析し、グリッドとカーソル状態を維持し、書記素、折り返し、リフローを処理して、キーボードとマウス入力をエンコードします。ウィンドウ、ペイン、セッション、プロセスのライフサイクル、永続化、GPUI レンダリングは引き続き Paneflow が管理します。</p>
<p>Windows への移植では、このエンジンを動かすネイティブホストを追加しました。Paneflow は Windows で ConPTY を使用する <code>portable-pty</code> を通じて擬似ターミナルを開き、その UTF-8 出力を <code>libghostty-vt</code> に渡します。Ghostty の状態は GPUI が描画する前に、所有権を持つ Rust スナップショットへコピーされます。Ghostty アプリケーション、その UI、レンダラーは Paneflow に組み込まれていません。</p>
<p>Windows では、この境界の分離が重要です。ConPTY はシェルとの接続と OS のプロセス契約を担い、Ghostty はターミナルを解釈します。製品とピクセルは Paneflow が管理します。そのため、同じバックエンド中立なレンダラーで、Windows 専用の描画経路を増やさずに Alacritty と Ghostty のセッションを表示できます。</p>
<h2>必要だったのはライブラリだけでなく Windows のライフサイクル</h2>
<p>Windows で静的ライブラリをコンパイルできるだけでは、実用的なターミナルにはなりません。PowerShell、コマンドプロンプト、TUI、コーディングエージェントを動かすには、起動、リサイズ、出力のドレイン、終了、子孫プロセスのクリーンアップを決定的に扱う必要があります。</p>
<p>Windows の Ghostty ホストは ConPTY のリサイズをまとめ、セッションを閉じる前に最終出力を読み切り、終了前にリーダーの完了を待ち、複数ペインが同時に出力してもバックプレッシャーを制限します。Paneflow 0.8.1 では、不要な描画処理を避けるため Windows の Ghostty 再描画もまとめています。</p>
<p>入力も同じ境界を通ります。この統合は Ghostty のキーボードエンコード、AltGr、デッドキー、IME 確定、ペースト、クリップボード、マウス、フォーカス、リンクを扱います。0.8.1 の最後の 2 つの修正では、ConPTY を通る複数行の <code>Shift+Enter</code> 入力を保持しました。改行の挿入にこのショートカットを使うコーディングエージェントのプロンプトも対象です。</p>
<h2>ピン留めした静的 MSVC アーティファクトを同梱</h2>
<p>公式 Windows x64 ビルドには、ピン留めされた <code>ghostty-vt-static.lib</code> アーカイブが含まれます。ソースコミット、Zig ツールチェーン、ヘッダー、生成済み Rust バインディング、シンボル、ビルドメタデータ、ライセンス、チェックサムをリポジトリで追跡しています。</p>
<p>Ghostty、Zig、DLL、追加のランタイムをユーザーがインストールする必要はありません。標準 MSI は Paneflow のビルド時に検証済みアーカイブを使用し、最終実行ファイルへエンジンを静的リンクします。ネイティブの再ビルドとアーカイブを利用する Windows ビルドを分離し、CI がリリース前にソース、ABI、アーティファクトのずれを検出できるようにしています。</p>
<p>Paneflow は生の C ABI を <code>-sys</code> crate 内に閉じ込め、その上に安全な Rust の所有権を提供します。ネイティブハンドルは対応する Ghostty アロケーターで解放され、コールバックの panic は FFI 境界の内側に留まり、借用した Ghostty の行やセルがターミナルのロック期間やフレーム境界を越えることはありません。</p>
<h2>Ghostty を自動選択し、Alacritty へすぐ戻せる</h2>
<p>Windows の <code>terminal.backend</code> は <code>auto</code>、<code>ghostty</code>、<code>alacritty</code> の 3 つの値を受け付けます。Paneflow 0.8.1 の公式 x64 ビルドでは、<code>auto</code> と <code>ghostty</code> の両方が Ghostty エンジンを選択します。新しく作成するセッションで以前のバックエンドを強制するには、<code>paneflow.json</code> に <code>alacritty</code> を設定します。</p>
<pre><code class="language-json">{
  "terminal": {
    "backend": "alacritty"
  }
}
</code></pre>
<p>この設定は新しいセッションだけに適用されます。シェルプロセスが存在する前に Ghostty が失敗した場合、Paneflow は 1 回だけ Alacritty にフォールバックできます。プロセス起動後にセッションがバックエンドを切り替えたり、裏側で 2 つ目のシェルを起動したりすることはありません。</p>
<p>この復旧経路により、ターミナルの障害は局所的で元に戻せます。Paneflow の再インストールやワークスペースデータの変更なしで Alacritty に戻し、原因が分かったら <code>auto</code> に戻せます。</p>
<h2>Linux と Windows で共通のターミナルコア</h2>
<p>Paneflow 0.8.0 は Linux でエンジン境界を確立しました。0.8.1 では、プラットフォーム固有の詳細をレンダラーやワークスペースモデルへ持ち込まずに、大きく異なる PTY とプロセスモデルをこの境界が越えられることを示しています。</p>
<p>Windows ARM64 は今回のリリース対象外で、引き続き Alacritty を使用します。macOS も Ghostty 対応を別途評価している間は Alacritty のままです。対応する Linux と Windows のビルドでは、<code>auto</code> の意味が共通になりました。ターミナルコアに Ghostty、描画に GPUI、その周囲のマルチエージェントワークスペースに Paneflow を使います。</p>
<p>Paneflow 0.8.1 をインストールして新しいペインを開き、普段使っている PowerShell、WSL シェル、TUI、コーディングエージェントを実行してください。ターミナルの挙動に問題が出た場合は、新しいセッションの <code>terminal.backend</code> を <code>alacritty</code> に設定し、シェル、Windows バージョン、コマンド、最短の再現手順を報告してください。</p>]]></content:encoded>
    </item>
    <item>
      <title>Paneflow 0.8.0: Linux の Alacritty を libghostty-vt に置き換え</title>
      <link>https://paneflow.dev/ja/blog/libghostty-linux</link>
      <guid isPermaLink="true">https://paneflow.dev/ja/blog/libghostty-linux</guid>
      <pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate>
      <dc:creator>Arthur Jean</dc:creator>
      <category>paneflow</category>
      <category>linux</category>
      <category>terminal</category>
      <category>ghostty</category>
      <description>標準 Linux ビルドは、固定された libghostty-vt エンジンを静的リンクするようになりました。GPUI レンダラーは Paneflow が維持し、Alacritty はロールバック用および macOS と Windows で引き続き使用されます。</description>
      <content:encoded><![CDATA[<p><a href="https://github.com/arthjean/paneflow/releases/tag/v0.8.0" rel="noopener noreferrer nofollow ugc" target="_blank">Paneflow 0.8.0</a> では、標準 Linux ビルドで新しく作成するすべてのターミナルセッションに <code>libghostty-vt</code> を使用します。<code>terminal.backend</code> が <code>auto</code> の場合、Linux x86_64 と ARM64 のビルドは Ghostty をデフォルトで選択します。</p>
<p>この移行で変わるのは、VT データを解釈してターミナル状態を管理するエンジンです。周囲のワークスペースは変わりません。PTY、プロセスのライフサイクル、GPUI レンダラー、ペイン、セッション、エージェントの状態、diff、永続化は引き続き Paneflow が管理します。macOS と Windows は Alacritty のままです。</p>

  <img src="/images/libghostty-linux.webp" alt="青とラベンダーの風景に並ぶ Ghostty と Paneflow のアプリアイコン" width="{1920}" height="{1080}" />
<h2>Ghostty が VT エンジンとして Paneflow に加わる</h2>
<p>Paneflow 0.7.x までのターミナルセッションは、Rust crate の <code>alacritty_terminal</code> 0.26 を基盤としていました。このエンジンがエスケープシーケンス、グリッド、スクロールバック、入力モード、検索、レンダリングモデルの一部を担っていました。</p>
<p>新しい Linux パスは、Ghostty の組み込み可能なターミナルエンジンである <a href="https://github.com/ghostty-org/ghostty/blob/ae52f97dcac558735cfa916ea3965f247e5c6e9e/README.md#cross-platform-libghostty-for-embeddable-terminals" rel="noopener noreferrer nofollow ugc" target="_blank"><code>libghostty-vt</code></a> を使用します。VT シーケンスを解析し、カーソルと画面の状態、書記素、折り返し、リフローを管理します。さらにキーボードとマウスの入力をエンコードし、ホストアプリケーションへ差分レンダリング状態を公開します。</p>
<p>Paneflow は Ghostty アプリ本体、GTK UI、レンダラーを組み込んでいません。Ghostty がターミナルのコアを提供し、Paneflow がその状態を所有権のある Rust スナップショットへ変換して、既存の GPUI レンダラーで描画します。製品 UI とマルチエージェントのワークフローは Paneflow の管理下に残ります。</p>
<h2>Paneflow 固有の境界でエンジンと製品を分離</h2>
<p>パーサーの置き換えは作業の一部にすぎませんでした。Alacritty の型は PTY ループ、レンダリング、検索、選択、リンク、スクロールバックの復元、セッションのライフサイクルまで入り込んでいました。先にこの結合を外さず依存関係だけを交換すると、同じ問題を新しいエンジンへ移すことになります。</p>
<p>Paneflow は独自のターミナルセッション境界を持つようになりました。Alacritty と Ghostty は、同じ Paneflow のコマンド、イベント、モード、検索結果、レンダリングスナップショットを生成します。レンダラーは、どちらのエンジンがセルを作成したか知る必要がありません。</p>
<p>この境界が移行の長期的な成果です。macOS と Windows を変更せず Linux から先に移行でき、将来エンジンを更新してもアプリケーション全体が内部型を採用する必要はありません。</p>
<h2>不安定な C API を小さな Rust ラッパーに閉じ込める</h2>
<p>Ghostty は <code>libghostty-vt</code> の機能を成熟したものと説明する一方で、API シグネチャはまだ変更中としています。そのため Paneflow は、Ghostty の正確なコミット <a href="https://github.com/ghostty-org/ghostty/tree/ae52f97dcac558735cfa916ea3965f247e5c6e9e" rel="noopener noreferrer nofollow ugc" target="_blank"><code>ae52f97d</code></a>、C ヘッダー、生成済み bindings、Zig のバージョン、ビルド構成、アーカイブのチェックサムを固定しています。</p>
<p>生の C ABI は 1 つの <code>-sys</code> crate に隔離されています。もう 1 つの安全なラッパーが各ネイティブハンドルを所有し、ターミナル作成前に API バージョンと C レイアウトを検証します。コールバックの panic を封じ込め、Ghostty の割り当ては対応するアロケーターで解放します。</p>
<p>所有権のルールはレンダリング時に特に重要です。<code>libghostty-vt</code> が公開する行とセルは借用データであり、その後のターミナル変更で無効になる可能性があります。Paneflow はターミナルをロックしている間に必要なデータをコピーし、所有権のある Rust スナップショットだけを GPUI に渡します。C ポインターや借用 slice がロックやフレームの境界を越えることはありません。</p>
<p>この方式は、固定しない依存関係を追うより保守コストがかかります。Ghostty を更新するたびに、2 つの Linux アーキテクチャ向けにヘッダー、bindings、静的アーカイブ、チェックサム、シンボル、ライセンスを再生成してレビューする必要があります。ランタイムの不確実性を受け入れず、コストを明示して狭い範囲に閉じ込める選択です。</p>
<h2>Alacritty は差分検証の基準とロールバックとして残る</h2>
<p>ユーザーから見た目標は継続性です。シェル、コーディングエージェント、フルスクリーン TUI、検索、選択、クリップボード、スクロールバック、OSC イベント、リサイズ、リフロー、プロセス終了は、エンジン変更前と同じように動作する必要があります。</p>
<p>Paneflow は同じ決定的な VT ストリームを複数のチャンクサイズで Alacritty と Ghostty に入力し、正規化したスナップショットと順序付きイベントを比較します。別の fuzzing ターゲットでは、不正または途中で切れたシーケンス、入力エンコード、リサイズ、リフロー、複数の PTY read に分割されたシーケンス境界を検査します。パッケージ検証は、ランタイムで <code>libghostty.so</code> に依存する、不正なビルド ID を持つ、またはレビュー済みのネイティブ通知を含まない Linux アーティファクトを拒否します。</p>
<p>Alacritty は削除されていません。新しく作成する Linux セッションで使用するには、<code>paneflow.json</code> の backend を設定します。</p>
<pre><code class="language-json">{
  "terminal": {
    "backend": "alacritty"
  }
}
</code></pre>
<p>実行中のセッションがメモリ上でエンジンを切り替えることはありません。設定を変更した後、そのセッションを閉じて新しいペインを開いてください。<code>auto</code> は標準 Linux ビルドで Ghostty を選択し、macOS、Windows、または <code>--no-default-features</code> でコンパイルした Linux ビルドでは Alacritty を選択します。</p>
<h2>Ghostty のインストールを必要としない静的リンク</h2>
<p>公式 Linux パッケージには、x86_64 または ARM64 向けに固定された静的 <code>libghostty-vt</code> アーカイブが含まれます。マシンに Ghostty、Zig、共有ライブラリをインストールする必要はありません。クリーンな Paneflow checkout で通常の <code>cargo build</code> を実行した場合も、リポジトリに含まれる検証済みアーカイブを使用し、<code>build.rs</code> からネイティブソースをダウンロードしません。</p>
<p>この backend は Linux から導入します。Windows や macOS への拡張と、将来 Alacritty を削除するかどうかは別の判断です。Paneflow 0.8.0 は影響範囲を限定しています。新しいデフォルトは 1 つ、サポートするエンジンは 2 つ、新規セッションはすぐにロールバックできます。</p>
<p>Paneflow 0.8.0 に更新し、新しいペインを開いて、普段使っているシェル、TUI、コーディングエージェントを実行してください。ターミナルの動作にリグレッションがあれば、新しいセッションを Alacritty に戻し、コマンド、Linux ディストリビューション、Wayland と X11 のどちらで動かしていたかを報告してください。</p>]]></content:encoded>
    </item>
    <item>
      <title>Show HNでPaneflowを公開する</title>
      <link>https://paneflow.dev/ja/blog/show-hn-launch</link>
      <guid isPermaLink="true">https://paneflow.dev/ja/blog/show-hn-launch</guid>
      <pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>Arthur Jean</dc:creator>
      <category>paneflow</category>
      <category>agents</category>
      <description>1つのエージェントを起動するのは簡単です。Paneflowは複数のCLIエージェント、ブランチ、diffを1つのローカルワークスペースに見える状態で保ちます。</description>
      <content:encoded><![CDATA[<p>コードエージェントを起動することは、もう特別なことではなくなりました。ターミナルを開き、コマンドを入力すると、Claude Code、Codex、OpenCode、または別のCLIが作業を始めます。</p>
<p>問題は、それを複数起動したときに始まります。</p>
<p>あるエージェントはバグを直しています。別のエージェントはリファクタリングを準備しています。さらに別のエージェントはdiffをレビューしています。その横で開発サーバーが動き、テストが通ったり落ちたりし、それぞれのターミナルが違う部分の状況を伝えています。ある時点で難しいのは、エージェントを起動することではなくなります。どのエージェントが何をしているのか、どれが入力待ちなのか、どれが完了したのか、どのブランチで作業しているのかを把握することです。</p>
<p>Paneflowは、まさにこの問題から生まれました。複数のコードエージェントを、1つのローカルワークスペースの中で見える、操作できる、理解できる状態に保つためのものです。</p>
<p>Demo video: <a href="/videos/paneflow-landing-demo.mp4" rel="noopener noreferrer nofollow ugc" target="_blank">/videos/paneflow-landing-demo.mp4</a></p>
<p>完全なデモは<img src="/icons/youtube.webp" alt="" width="{20}" height="{14}" /><a href="https://www.youtube.com/watch?v=hElqzB2XMn0" rel="noopener noreferrer nofollow ugc" target="_blank">YouTube</a>でも見られます。</p>
<p>ローンチスレッドはHacker Newsにあります: <img src="/icons/y-combinator.webp" alt="" width="{16}" height="{16}" /><a href="https://news.ycombinator.com/item?id=48735123" rel="noopener noreferrer nofollow ugc" target="_blank">Show HN: Paneflow</a>。</p>
<h2>ターミナルだけでは足りないことがある</h2>
<p>私はターミナルが好きです。tmux、Zellij、Ghostty、Kitty、WezTermはどれも優れたツールです。SSH越しやリモートマシンで作業するときは特にそうです。</p>
<p>ただし、同じプロジェクトで複数のローカルエージェントを動かすと、問題は変わります。ターミナルのグリッドはプロセスを表示します。しかし、どのエージェントが考えているのか、どれが承認待ちなのか、どれが面白いdiffを出したのか、どれが別のエージェントの作業をやり直しているのかまでは教えてくれません。</p>
<p>ウィンドウが増えるほど、プロジェクトの状態を頭の中で再構築することになります。ターミナルを移動し、スクロールバックを読み直し、正しいディレクトリを探し、現在のブランチを確認し、またdiffに戻ります。一度なら大きな問題ではありません。主な働き方になると、負担になります。</p>
<p>Paneflowはエディタを置き換えようとしているわけではありません。多くの開発者がsplit、ウィンドウ名、ブランチの命名規則、短期記憶で手作りしている調整レイヤーを置き換えます。</p>
<h2>コマンドごとのペインではなく、タスクごとのワークスペース</h2>
<p>Paneflowでは、ペインは今でも本物のターミナルです。Claude Code、Codex、OpenCode、Grok Builder、またはシェルで動く任意のCLIを実行できます。</p>
<p>違うのは、ターミナルの周りにあるものです。</p>
<p>1つのタスクには、エージェント、テスト、開発サーバー、gitブランチ、diff、過去のセッションが含まれることがあります。Paneflowはそれらを同じワークスペースにまとめ、コンテキストを切り替えるたびに探し直さなくてよいようにします。</p>
<p>作業を分離したいときは、各タスクを専用の<code>git worktree</code>で動かせます。Reviewビューはそのdiffを横並びに表示し、1つのworktreeを1列として扱います。ウィンドウ、ブランチ、エディタを切り替えずに、各エージェントが何を作ったのか確認できます。</p>
<p>この構成は、2つのエージェントがコードベースの近い場所を触っているときに特に役立ちます。出力を開いたままにし、変更を比較し、何を残し、何を直し、何を捨てるかを判断できます。</p>
<h2>調整はCLIインターフェースを通る</h2>
<p>Paneflowで最も重要な賭けは表示ではありません。調整です。</p>
<p>このレイヤーをPaneflow Conductorと呼んでいます。現時点では、エージェントに公開するものは意図的にCLIインターフェースとローカルソケットを通します。GUIは、あなたが監視し、読み、任意のペインを引き継ぐ場所として残ります。</p>
<p><code>paneflow ps</code>は、実行中のペインとエージェントを実際の状態とともに一覧表示します。<code>paneflow watch</code>は、ターミナルを繰り返しポーリングするのではなく、hooksとevent busから送られる変更をJSONLとしてストリームします。エージェントは何が動いているかを見て、イベントを待ち、別のペイン向けのpromptを準備し、最後の送信はあなたの承認に任せることができます。</p>
<p>デフォルトでは、Paneflowはpromptを事前入力し、Enterを押すのはあなたです。Auto-submitはありますが、opt-inです。この選択は意図的です。同じプロジェクト内で複数のエージェントが動けるなら、人間のコントロールは見える場所に残るべきです。</p>
<h2>エージェントは制御せずに読める</h2>
<p>もう1つ重要なのが、組み込みのMCPサーバーです。<code>list_panes</code>、<code>read_pane</code>、<code>search_pane</code>という3つの読み取り専用ツールを公開します。</p>
<p>実際には、あるペインのClaude Codeが、別のペインでCodexが出したテスト出力を読むことができます。エージェントは修正案を出す前に、隣のターミナルでエラーを検索できます。あるツールの出力を別のツールにコピー&amp;ペーストする必要が減ります。</p>
<p>境界は厳格です。このブリッジはペインに書き込めず、あなたの代わりにエージェントを操作することもできません。ターミナル出力は信頼できないものとして扱われます。エージェントのtranscriptやリポジトリには、敵対的なテキストが含まれる可能性があるからです。Paneflowはコンテキスト共有をより明示的にしますが、すべてのターミナルを開いた実行面に変えるわけではありません。</p>
<p>私が重視しているのはこの境界です。エージェントが盲目的に作業しないだけのコンテキストを与えつつ、セッション全体を静かに支配する力は与えない。</p>
<h2>なぜネイティブアプリなのか</h2>
<p>PaneflowはRustで書かれ、Zedの背後にあるUIフレームワークであるGPUIを使っています。この選択は単純な制約から来ています。エージェントは長時間、時には並列で動きます。それらを入れる場所は軽く保つ必要があります。</p>
<p>すでに重いプロセスを実行しているターミナルを、さらにElectronアプリで包みたくありませんでした。また、自分の作業がLinuxとWindowsをまたぐのに、macOS専用のツールにもしたくありませんでした。現在、PaneflowはLinux、macOS Apple Silicon、Windows x64向けのbuildを提供しています。macOS IntelとWindows ARM64はまだ出荷していません。</p>
<p>結果としてできたのはIDEではありません。CLIエージェントをすでに使いこなしている開発者が、すべての調整を手作業で行わなくて済むようにする、ローカルでオープンソースのワークスペースです。</p>
<h2>次のマルチエージェント作業でPaneflowを試す</h2>
<p>たまに1つのエージェントを起動するだけなら、今のターミナルで十分かもしれません。</p>
<p>複数のエージェントを並列で動かし始めると、問いは変わります。状態を読みやすく保ち、ブランチを分け、diffをレビューでき、コンテキストを共有できるようにしながら、どうやって制御を失わずにいるのか。</p>
<p>Paneflowが解こうとしているのは、まさにその問題です。</p>
<p>Paneflowをダウンロードし、プロジェクトを開き、2つのペインで2つのエージェントを起動してみてください。そのワークスペースが、当たり前だと思い始めていた認知負荷を減らすかどうかを見てください。</p>]]></content:encoded>
    </item>
    <item>
      <title>Paneflow Conductorで1つのコードエージェントが他のエージェントを動かす</title>
      <link>https://paneflow.dev/ja/blog/paneflow-conductor</link>
      <guid isPermaLink="true">https://paneflow.dev/ja/blog/paneflow-conductor</guid>
      <pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>Arthur Jean</dc:creator>
      <category>paneflow</category>
      <category>agents</category>
      <category>conductor</category>
      <description>Paneflow 0.6.0はアプリをCLIコードエージェントのコントロールプレーンにします。フリート検出、状態読み取り、prompt送信、イベント待機を1つの公開CLIから扱えます。</description>
      <content:encoded><![CDATA[<p>1つのコードエージェントを起動するのは簡単です。複数を並列で動かすと、すぐに調整の問題になります。どのエージェントが作業中か、どれが待機中か、どのブランチが変わっているか、どの結果を次のステップに渡すべきか。</p>
<p><a href="https://github.com/arthjean/paneflow/releases/tag/v0.6.0" rel="noopener noreferrer nofollow ugc" target="_blank">Paneflow 0.6.0</a>で入ったPaneflow Conductorは、この調整を明示的にします。1つのエージェントが公開CLIの<code>paneflow</code>を通じて、他のエージェントを見つけ、出力を読み、次のpromptを送り、turnの完了を待てます。</p>
<p>Demo video: <a href="/videos/paneflow-conductor-demo-linkedin.mp4" rel="noopener noreferrer nofollow ugc" target="_blank">/videos/paneflow-conductor-demo-linkedin.mp4</a></p>
<h2>フリート全体を1つのCLIで扱う</h2>
<p>すべてはPaneflowのローカルソケットを通ります。ConductorはClaude Code、Codex、OpenCode、Gemini、またはscriptになれます。インターフェースがただのshell commandだからです。</p>
<pre><code class="language-bash">paneflow ps
paneflow status claude-impl
paneflow read claude-impl --lines 120
paneflow send claude-impl "Keep going and finish with REPORT_DONE"
paneflow wait --match claude-impl --pattern '^REPORT_DONE'
paneflow watch
</code></pre>
<p>重要なのはここです。CodexはClaude Codeが作った結果を確認できます。Claude CodeはOpenCodeにレビュータスクを渡せます。scriptは各ペインでどのharnessが動いているかを気にせず、同じworkflowを開始できます。</p>
<p>繰り返し使う作業では、<code>paneflow up</code>がTOMLファイルからhook済みのワークスペースを起動し、<code>paneflow flow run</code>がspawn、wait、feed、reviewを含むマルチエージェントpipelineを実行します。</p>
<h2>ターミナルを隠さずに委任する</h2>
<p>Paneflow Conductorはエージェントを置き換えません。Paneflowをhosted runtimeに変えるものでもありません。ペインは本物のターミナルのままです。読めます。引き継げます。コマンドを止められます。方針も変えられます。</p>
<p>価値は、エージェントがコピー&amp;ペーストされたcontextに頼らなくてよくなることです。Conductorエージェントは隣のペインを読み、現在の状態を理解し、絞ったfollow-upを送り、<code>REPORT_DONE</code>のようなsentinelを待ってから続行できます。</p>
<p>実装、レビュー、テスト、ドキュメントを分けるとき、このpatternが効きます。leaderエージェントは古いメモから推測する必要がありません。実際のフリートを見に行けます。</p>
<h2>タイマーではなく状態を待つ</h2>
<p>Paneflow 0.6.0は、hook済みエージェント向けにturn単位で追跡される状態マシンを追加します。ペインは<code>thinking</code>、<code>waiting_for_input</code>、<code>finished</code>のような状態を返せます。<code>paneflow watch</code>はlifecycle eventをJSONLとしてstreamし、<code>paneflow wait</code>は任意のsleepではなく条件でblockします。</p>
<p>これはオーケストレーションとscreen scrapingの違いです。Conductorは数秒ごとにターミナルをpollして、出力が落ち着いたことを期待すべきではありません。エージェントが本当に止まったとき、入力を求めたとき、約束したmarkerを出したときに反応すべきです。</p>
<h2>制御の境界を見える場所に置く</h2>
<p>安全性のモデルは意図的です。MCP bridgeはread-onlyです。<code>paneflow read</code>はpeerの出力を信頼できないデータとして扱います。デフォルトでは、<code>paneflow send</code>はpromptを事前入力するだけで、人間がEnterを押します。</p>
<p>Auto-submitはありますが、scripting gateまたはAI free access modeで明示的に有効化する必要があります。隔離したworktreeや信頼できるworkflowでは強い経路を使える一方で、無音のcross-pane writeはデフォルトになりません。</p>
<p>この境界が本質です。エージェントには協調に必要な共有contextを渡す。ただしターミナルは見えるままにし、人間がいつでも引き継げるようにする。</p>
<h2>小さなフリートから始める</h2>
<p>完全なリファレンスは<a href="/ja/docs/conductor" rel="noopener noreferrer nofollow ugc" target="_blank">Conductor docs</a>にあります。まずは2つのペインから始めてください。実装エージェント、レビューエージェント、そして次のpromptを送る前に両方を読むconductorです。</p>
<p>すでに複数のCLIエージェントを横に並べて動かしているなら、Paneflow Conductorは別のprivate protocolではなく、共通の操作面を渡します。</p>]]></content:encoded>
    </item>
    <item>
      <title>ブランチの差分を複数のエージェントにレビューさせる</title>
      <link>https://paneflow.dev/ja/blog/diff-viewer</link>
      <guid isPermaLink="true">https://paneflow.dev/ja/blog/diff-viewer</guid>
      <pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate>
      <dc:creator>Arthur Jean</dc:creator>
      <category>paneflow</category>
      <description>ブランチの差分を開き、その下で Claude Code、Codex、OpenCode、Pi を起動して、Paneflow を離れずに各エージェントの指摘を見比べられます。</description>
      <content:encoded><![CDATA[<p>Paneflow は、ブランチの差分と、それをレビューするエージェントを同じワークスペースにまとめます。すべての変更を確認し、ひとつまたは複数のエージェントに送り、ウィンドウもブランチも切り替えずにそれぞれの指摘を見比べられます。</p>
<p>Demo video: <a href="/videos/paneflow-diffview.mp4" rel="noopener noreferrer nofollow ugc" target="_blank">/videos/paneflow-diffview.mp4</a></p>
<h2>ブランチのすべての変更をレビューする</h2>
<p>サイドバーから、あるいは <code>Ctrl+Shift+G</code> で Diff ビューを開きます。Paneflow は、ベースブランチから分岐して以降に変更されたすべてのファイルを、まだコミットしていない変更も含めて表示します。</p>
<p>変更されたハンクをたどり、追加と削除を見比べ、統一表示と左右並列表示を切り替えられます。スクロール中もヘッダーは固定され、シンタックスハイライトは <a href="https://tree-sitter.github.io/tree-sitter/" rel="noopener noreferrer nofollow ugc" target="_blank">Tree-sitter</a> で動きます。Zed と GitHub が使っているのと同じパーサーです。</p>
<h2>worktree を切り替えずに複数のブランチを比較する</h2>
<p>プロジェクトビューは、現在のタスクの差分を表示します。Multi-project ビューは、開いているリポジトリをタブにまとめます。Worktree ビューは、隣り合うブランチを左右に並べ、ブランチごとに <a href="https://git-scm.com/docs/git-worktree" rel="noopener noreferrer nofollow ugc" target="_blank">git worktree</a> を一つ割り当てて、ひとつずつチェックアウトせずに進み具合を比較できるようにします。</p>
<h2>複数のエージェントにレビューを依頼する</h2>
<p>各ブランチには Review ボタンがあります。Claude Code、Codex、OpenCode、Pi から選ぶと、Paneflow は各エージェントを本物のターミナルで、差分のすぐ下に、正しいディレクトリで開きます。</p>
<p>Paneflow はレビュー用のプロンプトを用意しますが、あなたの了承なく送信することは決してありません。Enter を押す前に内容を確認できます。エージェントはそのあと差分を解析し、対象のファイルと行に紐づいた指摘を返します。</p>
<p>二つのエージェントを起動すれば、同じ変更について二通りの読みが得られます。二つめには、似たような回答が重ならないよう、より批判的な指示が渡されます。</p>
<p>特定の一行やハンクをエージェントに送り、的を絞った質問をすることもできます。</p>
<h2>次のブランチを Paneflow でレビューさせる</h2>
<p>Diff ビューとエージェントによるレビューは Paneflow 0.3.7 から利用できます。<a href="/blog/agent-sessions" rel="noopener noreferrer nofollow ugc" target="_blank">エージェントのセッション</a>の次のリリースです。最新版をダウンロードし、プロジェクトを開いて、サイドバーから Diff を選んでください。</p>]]></content:encoded>
    </item>
    <item>
      <title>Claude Code、Codex、OpenCode のセッションをワンクリックで再開</title>
      <link>https://paneflow.dev/ja/blog/agent-sessions</link>
      <guid isPermaLink="true">https://paneflow.dev/ja/blog/agent-sessions</guid>
      <pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate>
      <dc:creator>Arthur Jean</dc:creator>
      <category>paneflow</category>
      <description>現在のプロジェクトに紐づくセッションを見つけ、必要なものを履歴そのままに再開できます。正しいコマンドを探し直す必要はありません。</description>
      <content:encoded><![CDATA[<p>エージェントのターミナルを閉じても、そのセッションが消えるわけではありません。ただ、それを見つけ直すには正しいフラグと正しい識別子を思い出す必要があることがほとんどでした。Claude Code なら <code>claude --resume</code> にセッション ID を添え、ほかのエージェントはそれぞれ別のフラグを使います。Paneflow は現在のプロジェクトに紐づくセッションをまとめ、必要なものをワンクリックで再開できるようにします。</p>
<p>Demo video: <a href="/videos/sessions-agents.mp4" rel="noopener noreferrer nofollow ugc" target="_blank">/videos/sessions-agents.mp4</a></p>
<h2>正しいプロジェクトのセッションを見つける</h2>
<p>Paneflow は、アクティブな作業ディレクトリに紐づく <a href="https://claude.com/claude-code" rel="noopener noreferrer nofollow ugc" target="_blank">Claude Code</a>、<a href="https://github.com/openai/codex" rel="noopener noreferrer nofollow ugc" target="_blank">Codex</a>、<a href="https://github.com/sst/opencode" rel="noopener noreferrer nofollow ugc" target="_blank">OpenCode</a> のセッションを検出します。それらはエージェントごとにまとめられ、ほかのプロジェクトの対話と混ざることはありません。</p>
<p>セッションを選べば、Paneflow は履歴をそのままに、現在のペインの中でそれを再開します。</p>
<h2>ゼロからやり直さずにタスクへ戻る</h2>
<p>セッションには、エージェントとすでにやり取りした会話、決定、組み立てた計画が含まれています。一度離れてからまた再開できるということは、その文脈を失わず、同じ説明を繰り返すこともなく、タスクからタスクへ移れるということです。</p>
<p>ペインを閉じても、Paneflow を再起動しても、後日そのプロジェクトに戻ってきても構いません。役に立つセッションは、必要になったときにそこで待っています。</p>
<h2>次のセッションを Paneflow で再開する</h2>
<p>エージェントのセッションは Paneflow 0.3.6 から利用できます。<a href="/blog/files-sidebar" rel="noopener noreferrer nofollow ugc" target="_blank">Files サイドバー</a>と同じリリースです。最新版をダウンロードし、プロジェクトの中でエージェントを起動して、そのセッションを Paneflow から見つけてください。</p>]]></content:encoded>
    </item>
    <item>
      <title>プロジェクトのファイルを Paneflow を離れずに参照する</title>
      <link>https://paneflow.dev/ja/blog/files-sidebar</link>
      <guid isPermaLink="true">https://paneflow.dev/ja/blog/files-sidebar</guid>
      <pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate>
      <dc:creator>Arthur Jean</dc:creator>
      <category>paneflow</category>
      <description>プロジェクトを見渡し、README や PRD を、それを使って作業しているエージェントの隣のペインで開けます。ツールを切り替えることも、文脈を失うこともありません。</description>
      <content:encoded><![CDATA[<p>エージェントが README や PRD、社内のドキュメントをもとに作業しているとき、同じファイルを読み直すために別のツールを開かなければならないことがよくあります。Files サイドバーは、そのドキュメントを Paneflow の中の、エージェントのすぐ隣に表示し続けます。</p>
<p>Demo video: <a href="/videos/paneflow-dock.mp4" rel="noopener noreferrer nofollow ugc" target="_blank">/videos/paneflow-dock.mp4</a></p>
<h2>現在のプロジェクトを見渡す</h2>
<p>Files ボタンからサイドバーを開くと、プロジェクトのフォルダーとファイルが表示されます。ツリーはアクティブなワークスペースに自動で追従し、ディスク上でファイルが変われば更新されます。</p>
<p><a href="https://git-scm.com/docs/gitignore" rel="noopener noreferrer nofollow ugc" target="_blank"><code>.gitignore</code></a> で無視される項目も表示されますが、控えめに描かれ、役に立つファイルが際立ちます。Paneflow は、再起動をまたいでどのフォルダーを開いたままにしたかも覚えています。</p>
<h2>Markdown をペインで読む</h2>
<p>README や PRD、ほかの Markdown ファイルをクリックすると、レンダリングされた状態でペインに開きます。これにより、指示や計画と、それを使うエージェントを同じレイアウトの中に保てます。</p>
<p>ほかのファイルは、プロジェクトの構造をすばやく把握できるように表示されますが、Paneflow を本格的なファイルマネージャーに変えることはありません。</p>
<h2>ドキュメントをエージェントのそばに置いておく</h2>
<p>Files サイドバーは Paneflow 0.3.6 から利用できます。<a href="/blog/agent-sessions" rel="noopener noreferrer nofollow ugc" target="_blank">エージェントのセッション</a>と同じリリースです。最新版をダウンロードし、プロジェクトを開いて、Files ボタンから中身を見渡してください。</p>]]></content:encoded>
    </item>
    <item>
      <title>なぜコーディングエージェントには専用のワークスペースが必要なのか</title>
      <link>https://paneflow.dev/ja/blog/philosophy-of-paneflow</link>
      <guid isPermaLink="true">https://paneflow.dev/ja/blog/philosophy-of-paneflow</guid>
      <pubDate>Thu, 07 May 2026 00:00:00 GMT</pubDate>
      <dc:creator>Arthur Jean</dc:creator>
      <category>paneflow</category>
      <category>philosophy</category>
      <description>複数のエージェントを起動するのは簡単です。難しいのは、そのタスク、決定、結果を理解できる状態に保つことです。これが Paneflow の考え方です。</description>
      <content:encoded><![CDATA[<p>コーディングエージェントを一つ起動するのは簡単になりました。複数起動するのも簡単です。本当の問題は、ターミナルの間で迷子にならずに、そのタスクを追い、文脈を見つけ直し、結果を確かめなければならないときに始まります。</p>
<p>Paneflow はこの問題から出発します。複数のエージェントには、それらを理解できる状態に保つために設計されたワークスペースが必要だ、という考え方です。</p>
<h2>タスクはターミナル一つには収まらない</h2>
<p>一つのタスクは、エージェント、git ブランチ、開発サーバー、テスト、差分、そして複数のセッションをまとめて抱えることがあります。これらが散らばっていると、ウィンドウを切り替えるたびにその文脈を組み直さなければなりません。</p>
<p>Paneflow はそれらを<a href="/blog/introducing-paneflow" rel="noopener noreferrer nofollow ugc" target="_blank">一つのワークスペース</a>にまとめ、戻ってきたときにその環境を復元します。開きっぱなしのターミナルが見つかるだけではありません。離れたときのままのタスクが見つかるのです。</p>
<h2>エージェントは主導権を握らずに助け合える</h2>
<p>Paneflow の <a href="https://modelcontextprotocol.io" rel="noopener noreferrer nofollow ugc" target="_blank">MCP</a> サーバーは、<code>list_panes</code>、<code>read_pane</code>、<code>search_pane</code> という三つの読み取り専用ツールを公開しており、あるエージェントが別のペインの出力を読めるようになっています。テストを確かめたり、エラーを検索したり、別のエージェントの作業を参照したりできます。あなたがその内容をコピー&amp;ペーストする必要はありません。</p>
<p>このブリッジは、意図して読み取り専用にしてあります。エージェントは文脈を共有できても、互いの環境にコマンドを打ち込むことはできません。決定と操作の主導権は、あなたが握り続けます。</p>
<h2>あなたが理解できるローカルなツール</h2>
<p>Paneflow はローカルで動き、アカウントもテレメトリもありません。そのコードは <a href="https://www.gnu.org/licenses/gpl-3.0.html" rel="noopener noreferrer nofollow ugc" target="_blank">GPL-3.0-or-later</a> ライセンスで公開されています。</p>
<p>この選択は単純です。あなたのエージェントを動かし、作業の文脈を抱える場所は、速く、透明で、あなたの管理下にあり続けるべきだからです。</p>
<h2>次のプロジェクトでこの考え方を試す</h2>
<p>Paneflow をダウンロードし、次のタスクのエージェント、ターミナル、ツールを一つのワークスペースにまとめてください。</p>]]></content:encoded>
    </item>
    <item>
      <title>Paneflow：すべてのコーディングエージェントを一つのワークスペースに</title>
      <link>https://paneflow.dev/ja/blog/introducing-paneflow</link>
      <guid isPermaLink="true">https://paneflow.dev/ja/blog/introducing-paneflow</guid>
      <pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate>
      <dc:creator>Arthur Jean</dc:creator>
      <category>paneflow</category>
      <description>Claude Code、Codex、OpenCode、そしてほかの 13 のエージェント CLI を横並びで動かせます。各タスクのターミナル、ブランチ、差分、サーバー、セッションをすべて同じ場所にまとめておけます。</description>
      <content:encoded><![CDATA[<p>複数のエージェントを並行して動かすとき、問題はもう起動することではありません。どれが何をしているのか、どれが返事を待っているのか、各タスクの文脈をどこで見つけるのか、それを把握することです。</p>
<p>Paneflow は、コーディングエージェントと、そのターミナル、そして周辺のすべてを、一つの local-first なワークスペースにまとめます。</p>
<h2>タスクごとに一つのワークスペース</h2>
<p>Claude Code、Codex、OpenCode、そしてほかの 13 のエージェント CLI を、横並びのペインで動かせます。テスト、開発サーバー、タスクに必要なコマンドを加え、そのワークスペースを git ブランチに紐づけます。</p>
<p>各ワークスペースは、レイアウト、ターミナル、セッションを保持します。環境を組み直さずに、タスクからタスクへ移ることも、Paneflow を再起動することもできます。</p>
<h2>文脈が見えたままになる</h2>
<ul>
<li><strong>エージェントとターミナル：</strong> 動いているものをすべて見渡し、キーボードでペインからペインへ移れます。</li>
<li><strong>ブランチと差分：</strong> 各タスクをそのブランチに紐づけたまま、Paneflow を離れずに<a href="/blog/diff-viewer" rel="noopener noreferrer nofollow ugc" target="_blank">変更をレビュー</a>できます。</li>
<li><strong>エージェントのセッション：</strong> 現在のプロジェクトの <a href="/blog/agent-sessions" rel="noopener noreferrer nofollow ugc" target="_blank">Claude Code、Codex、OpenCode のセッションを見つけて再開</a>できます。</li>
<li><strong>ペイン間の文脈：</strong> 組み込みの <a href="https://modelcontextprotocol.io" rel="noopener noreferrer nofollow ugc" target="_blank">MCP</a> サーバーにより、エージェントは別のペインのテスト出力を読んだり、エラーを検索したりできます。コピー&amp;ペーストは不要です。</li>
<li><strong>ローカルな環境：</strong> アカウントも、テレメトリも、押しつけられるリモートサービスもありません。</li>
</ul>
<h2>長く使うために作られたネイティブアプリ</h2>
<p>Paneflow は Rust で書かれ、Zed のレンダラーである <a href="https://www.gpui.rs/" rel="noopener noreferrer nofollow ugc" target="_blank">GPUI</a> を使っています。ペインとターミナルはアプリ自身が直接描画し、何時間も動き続けるプロセスのまわりに組み込みブラウザを抱えることはありません。アプリ全体のダウンロードサイズは 14〜19 MB です。</p>
<p>このプロジェクトは GPL-3.0-or-later ライセンスのオープンソースで、Linux、macOS、Windows で動作します。</p>
<h2>次のエージェントを Paneflow で起動する</h2>
<p>Paneflow をダウンロードし、プロジェクトを開いて、進めたいタスクのためのワークスペースを作ってください。</p>]]></content:encoded>
    </item>
  </channel>
</rss>
