{"slug": "show-hn-paneflow-cross-platform-gpui-app-for-parallel-coding-agents", "title": "Show HN: Paneflow – cross-platform GPUI app for parallel coding agents", "summary": "Developer ArthurDEV44 released Paneflow, an open-source native GPUI workspace for running multiple coding agents in parallel terminal panes. Built in Rust on Zed's GPUI framework, the tool supports Claude Code, Codex, Gemini, and other CLI agents with live status tracking and cross-platform builds for Linux, macOS, and Windows. Paneflow aims to solve coordination and observability problems when supervising multiple AI coding agents simultaneously.", "body_md": "**A native GPUI workspace for running coding agents in parallel.**\n\nPaneflow keeps Claude Code, Codex, Gemini, opencode, and any CLI agent in real terminal panes you can see, interrupt, and take over. It tracks which agent is thinking, waiting, stalled, failed, or done; keeps each task tied to its workspace and branch; and gives agents a local control plane when you want them to coordinate instead of work blind.\n\nIt is open source, written in Rust on [Zed's GPUI](https://github.com/zed-industries/zed/tree/main/crates/gpui),\nand ships native builds for Linux, macOS Apple Silicon, and Windows x64. No\nElectron. No WSL required. No hosted agent runtime.\n\n[Install](#install) ·\n[Why Paneflow](#why-paneflow) ·\n[Core workflows](#core-workflows) ·\n[Safety model](#safety-model) ·\n[Docs](#docs) ·\n[FAQ](#faq)\n\nSeveral coding agents running in parallel panes, with live status for who is thinking, running, waiting, or done.\n\nRelease builds are attached to the\n[latest GitHub release](https://github.com/ArthurDEV44/paneflow/releases/latest).\nYou do not need Rust unless you are building from source.\nAsset filenames use the version without the leading `v`\n\nfrom the Git tag\n(`paneflow-0.7.2-x86_64.AppImage`\n\n, not `paneflow-v0.7.2-...`\n\n).\n\n| Platform | Recommended path | Status |\n|---|---|---|\n| Linux x86_64 / aarch64 | AppImage, `.deb` , `.rpm` , or `.tar.gz` |\nActive: Wayland and X11 |\n| macOS Apple Silicon | Signed and notarized `.dmg` |\nActive |\n| macOS Intel | Not shipped today | Planned to return when the release matrix reopens it |\n| Windows x64 | Signed `.msi` |\nActive: Windows 10 1809+ and Windows 11 |\n| Windows ARM64 | Not shipped today | Deferred pending GPUI DX11 ARM64 reliability |\n\n```\nVER=$(curl -fsSL https://api.github.com/repos/ArthurDEV44/paneflow/releases/latest \\\n      | grep -oE '\"tag_name\":\\s*\"v[^\"]+\"' | cut -d\\\" -f4 | sed 's/^v//')\nARCH=$(uname -m)\ncurl -LO \"https://github.com/ArthurDEV44/paneflow/releases/latest/download/paneflow-${VER}-${ARCH}.AppImage\"\nchmod +x \"paneflow-${VER}-${ARCH}.AppImage\"\n./paneflow-${VER}-${ARCH}.AppImage\n```\n\nOn Ubuntu 24.04+ or immutable distros, run the AppImage with\n`--appimage-extract-and-run`\n\nif FUSE 2 is unavailable. `.deb`\n\n, `.rpm`\n\n,\n`.tar.gz`\n\n, SHA-256 sidecars, and Minisign signatures are published with each\nrelease.\n\nDownload `paneflow-X.Y.Z-aarch64-apple-darwin.dmg`\n\nfrom the\n[latest release](https://github.com/ArthurDEV44/paneflow/releases/latest), open\nit, and drag `PaneFlow.app`\n\ninto `/Applications`\n\n.\n\nA Homebrew tap is available:\n\n```\nbrew tap arthurdev44/paneflow\nbrew install --cask paneflow\n```\n\nIf the cask lags a fresh release, use the DMG directly.\n\nDownload `paneflow-X.Y.Z-x86_64-pc-windows-msvc.msi`\n\nfrom the\n[latest release](https://github.com/ArthurDEV44/paneflow/releases/latest) and\ndouble-click it. The MSI is signed; verify it with:\n\n```\nsigntool verify /pa /v paneflow-X.Y.Z-x86_64-pc-windows-msvc.msi\n```\n\nSee [docs/WINDOWS.md](/ArthurDEV44/paneflow/blob/main/docs/WINDOWS.md) for the supported Windows matrix and\nknown platform caveats.\n\nStarting coding agents is easy. Keeping a reliable view of ten running sessions is the hard part: which one is waiting on you, which branch it touched, which test output belongs to which task, and how to hand context from one agent to another without copy-pasting terminal scrollback.\n\nPaneflow is built around that coordination problem:\n\n- Real terminal panes for every agent, so nothing is hidden behind a chat-only abstraction.\n- Live agent state from hooks and IPC, not a vague \"terminal is active\" heuristic.\n- Workspaces and git branches visible in the app chrome.\n- A review surface for comparing worktree diffs side by side.\n- A read-only MCP bridge so one agent can inspect another pane's output.\n- A local CLI and JSON-RPC control plane for scripted orchestration.\n\nThe goal is not to replace your editor or your shell. It is to make parallel agent work observable enough that you can supervise it without losing context.\n\nLaunch Claude Code, Codex, Gemini, opencode, Pi, Hermes, or any CLI agent in a real PTY pane. Paneflow keeps the raw terminal visible while adding the app-level state you need for multi-agent work: workspace, branch, title, status, notifications, and session restore.\n\nThe sidebar, tab dots, desktop notifications, Attention Queue, and Rosetta surface turn scattered agent events into a readable queue: waiting for input, running, stalled, errored, or recently finished. Rosetta is the in-app status surface for agent notifications and can stay quiet unless something needs your attention.\n\nThe `paneflow`\n\nCLI talks to the same local socket as the app:\n\n```\npaneflow ps\npaneflow read cargo-run --lines 100\npaneflow watch --json\npaneflow send codex-review \"Review this branch and report risks\"\npaneflow wait --surface claude-impl --pattern \"REPORT_DONE\"\npaneflow flow run examples/review-pipeline.flow.toml\n```\n\n`paneflow up`\n\ncan spawn declarative workspaces, and `paneflow flow run`\n\nexecutes\na `flow.toml`\n\nDAG with spawn, wait, send, capture, and review steps. By default\nPaneflow pre-fills prompts and a human presses Enter. Auto-submit is explicit\nand gated.\n\n`paneflow mcp install`\n\nregisters a local read-only MCP bridge for supported CLI\nagents. It exposes:\n\n`list_panes`\n\n`read_pane`\n\n`search_pane`\n\nThe bridge cannot type into panes or control them. Returned terminal output is\nwrapped as untrusted data so downstream agents know to analyze it, not obey it.\nThe tool manifests live in [mcps/paneflow/tools](/ArthurDEV44/paneflow/blob/main/mcps/paneflow/tools).\n\nWhen each agent works in its own branch or worktree, Paneflow can show the resulting diffs side by side: one column per worktree, with hunk navigation, branch review prompts, attribution, and local cost estimates where token usage is available.\n\n| Area | What Paneflow gives you |\n|---|---|\n| Terminal workspace | Splits, tabs, resize, layout presets, session restore, markdown panes |\n| Agent state | Thinking, waiting, finished, errored, stalled, notifications, Rosetta |\n| Review | Worktree diff columns, hunk navigation, review prompts, cost estimate |\n| Automation | CLI, JSON-RPC socket, `paneflow up` , `paneflow flow run` , event stream |\n| Agent context | Read-only MCP bridge with `list_panes` , `read_pane` , `search_pane` |\n| Native runtime | Rust, GPUI, `alacritty_terminal` , Vulkan / Metal / DirectX |\n| Trust | GPL-3.0-or-later, signed release artifacts, opt-in telemetry |\n\nPaneflow is intentionally local-first.\n\n- Agents run as normal CLI processes inside normal PTYs.\n- The UI is a supervisor surface, not a hosted agent runtime.\n- Prompt prefill is the default; auto-submit is opt-in.\n- IPC writes are gated behind explicit scripting access.\n- MCP tools are read-only.\n- Terminal output returned to agents is marked as untrusted.\n- Telemetry is opt-in and can be disabled unconditionally with\n`PANEFLOW_NO_TELEMETRY=1`\n\n. - Release artifacts ship with checksums and detached Minisign signatures.\n\nPaneflow pins Rust 1.95 through [rust-toolchain.toml](/ArthurDEV44/paneflow/blob/main/rust-toolchain.toml).\n\n```\ngit clone https://github.com/ArthurDEV44/paneflow.git\ncd paneflow\ncargo build --release -p paneflow-app\ncargo run -p paneflow-app\n```\n\nUseful development checks:\n\n```\ncargo fmt --check\ncargo test --workspace\ncargo clippy --workspace -- -D warnings\n```\n\nLinux builds need Vulkan and the usual Wayland/X11 development libraries. macOS and Windows packaging have extra signing and bundling steps documented in the release runbooks.\n\n[paneflow.dev](https://paneflow.dev)- product site and public docs[ARCHITECTURE.md](/ArthurDEV44/paneflow/blob/main/ARCHITECTURE.md)- runtime architecture and thread model[docs/mcp-bridge.md](/ArthurDEV44/paneflow/blob/main/docs/mcp-bridge.md)- MCP bridge behavior and install[docs/WINDOWS.md](/ArthurDEV44/paneflow/blob/main/docs/WINDOWS.md)- Windows support matrix and caveats[docs/release/linux-signing.md](/ArthurDEV44/paneflow/blob/main/docs/release/linux-signing.md)- Linux release verification[docs/release/macos-signing.md](/ArthurDEV44/paneflow/blob/main/docs/release/macos-signing.md)- macOS signing and notarization[docs/release/windows-signing.md](/ArthurDEV44/paneflow/blob/main/docs/release/windows-signing.md)- Windows MSI signing[AGENTS.md](/ArthurDEV44/paneflow/blob/main/AGENTS.md)- repository instructions for coding agents[llms.txt](/ArthurDEV44/paneflow/blob/main/llms.txt)- compact map for AI agents and crawlers\n\n| Tool family | Strength | Paneflow difference |\n|---|---|---|\n| tmux / terminal tabs | Universal shell multiplexing | Paneflow adds agent state, workspaces, review, sidebars, and MCP |\n| WezTerm / iTerm2 / Ghostty | Great terminals | Paneflow focuses on supervising several agent sessions in one project window |\n| Warp-style AI terminals | Polished single-terminal AI workflows | Paneflow keeps existing CLI agents visible in raw PTY panes |\n| cmux-style agent workspaces | Multi-agent coordination | Paneflow is independent Rust/GPUI, cross-platform, and local-first |\n\nDetailed comparisons live at [paneflow.dev/compare](https://paneflow.dev/compare).\n\n**Why not tmux with one agent per pane?**\nUse tmux if you mostly work over SSH or want a headless multiplexer. Paneflow is\nfor local GUI supervision: agent state, notifications, MCP pane reads, worktree\nreview, and a native control plane around real terminals.\n\n**Is this another Electron app?**\nNo. Paneflow is Rust on GPUI with Vulkan on Linux, Metal on macOS, and DirectX\non Windows.\n\n**Does Paneflow drive agents for me?**\nOnly when you explicitly enable that flow. The default is visible terminal\ncontrol: prompts are pre-filled, you review them, then you press Enter.\n\n**Can agents read sensitive terminal output?**\nOnly agents you configure through the MCP bridge can read pane output, and the\nbridge is read-only. Treat that as powerful local context access: useful for\ncoordination, but still something to enable intentionally.\n\n**Does it phone home?**\nNot unless you opt in. Telemetry never includes terminal contents, paths, or\nprompts, and `PANEFLOW_NO_TELEMETRY=1`\n\ndisables it regardless of config.\n\n**What about Windows?**\nWindows x64 is a first-class release target. Windows ARM64 is not shipped yet.\nSee [docs/WINDOWS.md](/ArthurDEV44/paneflow/blob/main/docs/WINDOWS.md) for the support matrix and known issues.\n\n**Why GPL-3.0-or-later?**\nPaneflow is meant to stay open. GPL keeps improvements to the app in the\ncommons while allowing normal internal and commercial use.", "url": "https://wpnews.pro/news/show-hn-paneflow-cross-platform-gpui-app-for-parallel-coding-agents", "canonical_source": "https://github.com/ArthurDEV44/paneflow", "published_at": "2026-06-30 16:30:08+00:00", "updated_at": "2026-06-30 16:50:59.059611+00:00", "lang": "en", "topics": ["developer-tools", "ai-agents", "ai-tools", "large-language-models"], "entities": ["Paneflow", "ArthurDEV44", "Claude Code", "Codex", "Gemini", "Zed", "GPUI", "GitHub"], "alternates": {"html": "https://wpnews.pro/news/show-hn-paneflow-cross-platform-gpui-app-for-parallel-coding-agents", "markdown": "https://wpnews.pro/news/show-hn-paneflow-cross-platform-gpui-app-for-parallel-coding-agents.md", "text": "https://wpnews.pro/news/show-hn-paneflow-cross-platform-gpui-app-for-parallel-coding-agents.txt", "jsonld": "https://wpnews.pro/news/show-hn-paneflow-cross-platform-gpui-app-for-parallel-coding-agents.jsonld"}}