内容
# Paneflow
<p align="center">
<a href="https://github.com/ArthurDEV44/paneflow"><img alt="Paneflow" src="assets/badges/paneflow.svg?v=2"></a>
<a href="https://github.com/ArthurDEV44/paneflow/releases/latest"><img alt="最新版本" src="https://img.shields.io/github/v/release/ArthurDEV44/paneflow?sort=semver"></a>
<a href="https://github.com/ArthurDEV44/paneflow/actions/workflows/run_tests.yml"><img alt="测试" src="https://github.com/ArthurDEV44/paneflow/actions/workflows/run_tests.yml/badge.svg"></a>
<a href="LICENSE"><img alt="许可证" src="https://img.shields.io/github/license/ArthurDEV44/paneflow"></a>
<a href="https://github.com/ArthurDEV44/paneflow/releases"><img alt="下载量" src="https://img.shields.io/github/downloads/ArthurDEV44/paneflow/total"></a>
<img alt="平台" src="https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20Windows-informational">
<img alt="Rust" src="https://img.shields.io/badge/Rust-1.96.1-orange?logo=rust">
</p>
**用于并行运行代码代理的本地 GPUI 工作空间。**
Paneflow 将 Claude Code、Codex、Gemini、opencode 和任何 CLI 代理保留在您可以查看、中断和接管的实时终端窗格中。它跟踪哪个代理正在思考、等待、停滞、失败或完成;将每个任务与其工作空间和分支绑定;并为代理提供本地控制平面,以便在您希望它们协调而不是盲目工作时进行协调。
它是开源的,使用 Rust 编写,基于 [Zed's GPUI](https://github.com/zed-industries/zed/tree/main/crates/gpui),并为 Linux、macOS Apple Silicon 和 Windows x64 提供原生构建。不使用 Electron。不需要 WSL。不需要托管代理运行时。
<p align="center">
<a href="#安装">安装</a> ·
<a href="#为什么选择Paneflow">为什么选择Paneflow</a> ·
<a href="#核心工作流程">核心工作流程</a> ·
<a href="#安全模型">安全模型</a> ·
<a href="#文档">文档</a> ·
<a href="#常见问题">常见问题</a>
</p>
<p align="center">
<img src="assets/images/demo.gif" alt="Paneflow 在并行窗格中运行多个代码代理,侧边栏显示实时代理状态" width="100%" />
</p>
<p align="center">
<sub>多个代码代理在并行窗格中运行,实时状态显示代理正在思考、运行、等待或完成。</sub>
</p>
## 安装
发布版本附在 [最新 GitHub 发布](https://github.com/ArthurDEV44/paneflow/releases/latest) 中。除非您从源代码构建,否则无需安装 Rust。资产文件名使用 Git 标签版本,不带前导 `v`(`paneflow-0.7.2-x86_64.AppImage`,而不是 `paneflow-v0.7.2-...`)。
| 平台 | 推荐路径 | 状态 |
|---|---|---|
| Linux x86_64 / aarch64 | AppImage、`.deb`、`.rpm` 或 `.tar.gz` | 活跃:Wayland 和 X11 |
| macOS Apple Silicon | 已签名并 notarized 的 `.dmg` | 活跃 |
| macOS Intel | 今日不发货 | 计划在发布矩阵重新开放时返回 |
| Windows x64 | 已签名 `.msi` | 活跃:Windows 10 1809+ 和 Windows 11 |
| Windows ARM64 | 今日不发货 | 延期,待 GPUI DX11 ARM64 可靠性提高 |
### Linux 快速入门
```bash
VER=$(curl -fsSL https://api.github.com/repos/ArthurDEV44/paneflow/releases/latest \
| grep -oE '"tag_name":\s*"v[^"]+"' | cut -d\" -f4 | sed 's/^v//')
ARCH=$(uname -m)
curl -LO "https://github.com/ArthurDEV44/paneflow/releases/latest/download/paneflow-${VER}-${ARCH}.AppImage"
chmod +x "paneflow-${VER}-${ARCH}.AppImage"
./paneflow-${VER}-${ARCH}.AppImage
```
在 Ubuntu 24.04+ 或不可变发行版上,如果 FUSE 2 不可用,请使用 `--appimage-extract-and-run` 运行 AppImage。`.deb`、`.rpm`、`.tar.gz`、SHA-256 边车和 Minisign 签名与每个版本一起发布。
### macOS
从 [最新版本](https://github.com/ArthurDEV44/paneflow/releases/latest) 下载 `paneflow-X.Y.Z-aarch64-apple-darwin.dmg`,打开它,然后将 `PaneFlow.app` 拖到 `/Applications`。
Homebrew Tap 可用:
```bash
brew tap arthurdev44/paneflow
brew install --cask paneflow
```
如果 cask 滞后于新版本,请直接使用 DMG。
### Windows
从 [最新版本](https://github.com/ArthurDEV44/paneflow/releases/latest) 下载 `paneflow-X.Y.Z-x86_64-pc-windows-msvc.msi`,然后双击它。MSI 已签名;使用以下命令验证:
```powershell
signtool verify /pa /v paneflow-X.Y.Z-x86_64-pc-windows-msvc.msi
```
有关支持的 Windows 矩阵和已知平台问题的详细信息,请参阅 [docs/WINDOWS.md](docs/WINDOWS.md)。
## 为什么选择Paneflow
启动代码代理很容易。保持对十个运行会话的可靠视图是难点:哪一个在等待你,哪一个分支它触及,哪一个测试输出属于哪一个任务,以及如何将上下文从一个代理传递到另一个代理而不复制粘贴终端滚动。
Paneflow 围绕这个问题构建:
- 每个代理都有真正的终端窗格,因此没有任何内容被聊天抽象隐藏。
- 通过钩子和 IPC 获取实时代理状态,而不是模糊的“终端处于活动状态”启发式。
- 工作空间和 git 分支在应用标题栏中可见。
- 用于并排比较工作树差异的审查界面。
- 只读 MCP 桥,以便一个代理可以检查另一个窗格的输出。
- 用于脚本编排的本地 CLI 和 JSON-RPC 控制平面。
目标不是取代您的编辑器或 shell,而是使并行代理工作可观察,以便您在不丢失上下文的情况下监督它。
## 核心工作流程
### 并行运行代理
在真正的 PTY 窗格中启动 Claude Code、Codex、Gemini、opencode、Pi、Hermes 或任何 CLI 代理。Paneflow 保留原始终端可见,同时添加应用程序级别的状态以支持多代理工作:工作空间、分支、标题、状态、通知和会话恢复。
### 查看需要关注的内容
侧边栏、选项卡点、桌面通知、Attention Queue 和 Rosetta 表面将分散的代理事件转换为可读队列:等待输入、运行、停滞、错误或最近完成。Rosetta 是应用程序内状态表面,用于代理通知,可以保持静默,除非需要您的关注。
### 使用 Conductor 协调fleet
`paneflow` CLI 与应用程序使用相同的本地套接字:
```bash
paneflow ps
paneflow read cargo-run --lines 100
paneflow watch --type ai.stop
paneflow send codex-review "Review this branch and report risks"
paneflow wait --match claude-impl --pattern "REPORT_DONE"
paneflow flow run examples/review-pipeline.flow.toml
```
`paneflow up` 可以启动声明式工作空间,而 `paneflow flow run` 执行具有 spawn、wait、send、capture 和 review 步骤的 `flow.toml` DAG。默认情况下,Paneflow 预填充提示,用户按下 Enter。自动提交是显式的,并且是可选的。
### 让代理安全地读取彼此的内容
`paneflow mcp install` 为支持的 CLI 代理注册本地只读 MCP 桥。它公开:
- `list_panes`
- `read_pane`
- `search_pane`
桥不能输入窗格或控制它们。返回的终端输出被包装为不受信任的数据,以便下游代理知道分析它,而不是遵守它。工具清单位于 [mcps/paneflow/tools](mcps/paneflow/tools)。
### 在一个地方审查工作树差异
当每个代理在自己的分支或工作树中工作时,Paneflow 可以并排显示生成的差异:每列一个工作树,具有导航、分支审查提示、归属和本地成本估算。
## 功能地图
| 领域 | Paneflow 提供的内容 |
|---|---|
| 终端工作空间 | 分割、选项卡、调整大小、布局预设、会话恢复、Markdown 窗格 |
| 代理状态 | 思考中、等待中、已完成、错误、停滞、通知、Rosetta |
| 审查 | 工作树差异列、导航、审查提示、成本估算 |
| 自动化 | CLI、JSON-RPC 套接字、`paneflow up`、`paneflow flow run`、事件流 |
| 代理上下文 | 具有 `list_panes`、`read_pane`、`search_pane` 的只读 MCP 桥 |
| 原生运行时 | Rust、GPUI、`alacritty_terminal`、Vulkan / Metal / DirectX |
| 信任 | GPL-3.0-or-later、签名发布工件、选择加入遥测 |
## 安全模型
Paneflow 故意优先考虑本地优先。
- 代理作为正常的 CLI 进程在正常的 PTY 中运行。
- UI 是一个监督表面,而不是托管代理运行时。
- 默认情况下,提示预填充;自动提交是可选的。
- IPC 写入在显式脚本访问后被阻止。
- MCP 工具是只读的。
- 返回给代理的终端输出被标记为不受信任。
- 遥测是可选的,可以通过 `PANEFLOW_NO_TELEMETRY=1` 无条件禁用。
- 发布工件附带校验和和 detached Minisign 签名。
## 从源代码构建
Paneflow 通过 [rust-toolchain.toml](rust-toolchain.toml) 固定 Rust 1.96.1。
```bash
git clone https://github.com/ArthurDEV44/paneflow.git
cd paneflow
cargo build --release -p paneflow-app
cargo run -p paneflow-app
```
有用的开发检查:
```bash
cargo fmt --check
cargo test --workspace
cargo clippy --workspace -- -D warnings
```
Linux 构建需要 Vulkan 和通常的 Wayland/X11 开发库。macOS 和 Windows 打包有额外的签名和捆绑步骤,记录在发布手册中。
## 文档
- [paneflow.dev](https://paneflow.dev) - 产品网站和公共文档
- [ARCHITECTURE.md](ARCHITECTURE.md) - 运行时架构和线程模型
- [docs/mcp-bridge.md](docs/mcp-bridge.md) - MCP 桥行为和安装
- [docs/WINDOWS.md](docs/WINDOWS.md) - Windows 支持矩阵和注意事项
- [docs/release/linux-signing.md](docs/release/linux-signing.md) - Linux 发布验证
- [docs/release/macos-signing.md](docs/release/macos-signing.md) - macOS 签名和 notarization
- [docs/release/windows-signing.md](docs/release/windows-signing.md) - Windows MSI 签名
- [AGENTS.md](AGENTS.md) - 代码代理存储库说明
- [llms.txt](llms.txt) - AI 代理和爬虫的紧凑映射
## 比较
| 工具家族 | 优势 | Paneflow 区别 |
|---|---|---|
| tmux / 终端选项卡 | 通用 shell 多路复用 | Paneflow 添加代理状态、工作空间、审查、侧边栏和 MCP |
| WezTerm / iTerm2 / Ghostty | 优秀的终端 | Paneflow 专注于在一个项目窗口中监督多个代理会话 |
| Warp-style AI 终端 | 精致的单终端 AI 工作流 | Paneflow 在原始 PTY 窗格中保留现有的 CLI 代理 |
| cmux-style 代理工作空间 | 多代理协调 | Paneflow 是独立的 Rust/GPUI、跨平台和本地优先 |
详细比较位于 [paneflow.dev/compare](https://paneflow.dev/compare)。
## 常见问题
**为什么不使用一个代理一个窗格的 tmux?**
如果您主要通过 SSH 工作或需要一个无头的多路复用器,请使用 tmux。Paneflow 适用于本地 GUI 监督:代理状态、通知、MCP 窗格读取、工作树审查和围绕真实终端的本地控制平面。
**这是一个 Electron 应用程序吗?**
不。Paneflow 是基于 GPUI 的 Rust,Linux 上使用 Vulkan,macOS 上使用 Metal,Windows 上使用 DirectX。
**Paneflow 会为我驱动代理吗?**
只有当您明确启用该流程时。默认情况下是可见的终端控制:提示预填充,您审查它们,然后您按下 Enter。
**代理可以读取敏感的终端输出吗?**
只有您通过 MCP 桥配置的代理可以读取窗格输出,而该桥是只读的。将此视为强大的本地上下文访问:对于协调非常有用,但仍需要有意启用。
**它会打电话回家吗?**
除非您选择加入。遥测永远不会包含终端内容、路径或提示,并且 `PANEFLOW_NO_TELEMETRY=1` 可以禁用它,无论配置如何。
**关于 Windows 呢?**
Windows x64 是一个一流的发布目标。Windows ARM64 尚未发布。有关支持矩阵和已知问题的详细信息,请参阅 [docs/WINDOWS.md](docs/WINDOWS.md)。
**为什么选择 GPL-3.0-or-later?**
Paneflow 打算保持开放。GPL 将对应用程序的改进保留在公共领域,同时允许正常内部和商业使用。
## 许可证
[GPL-3.0-or-later](LICENSE)