A native terminal
for coding agents.
For macOS, Windows and Linux. Claude Code, Codex and any CLI agent keep running when you close the app, remote Linux boxes connect without SSH, and every tab shows which agent is waiting on you.
macOS, Windows, and Linux · source-available under the Ferryx License · product facts
See the workspace before you install
A web demo of the desktop app’s sidebar, tabs and split panes, with a scripted agent session. Ferryx itself is a native app, not a browser app.
Why Ferryx
Speed. Isolation. Total control.
Ferryx pairs a headless Rust daemon that outlives the window with a measured WGPU terminal path and a leak-checked libghostty-vt boundary.
Rendering
Native Ghostty & wgpu Engine
Desktop terminal panes render directly via native libghostty and a GPU-accelerated wgpu pipeline for crisp font rasterization and low-latency throughput.
- libghostty terminal core
- wgpu GPU pipeline
- 50-frame offscreen p50 3.10 ms on M4 Max
Agents
Multi-Agent Workspaces
Orchestrate parallel AI coding agents (Claude, Codex, Antigravity) in isolated split-panes with real-time status indicators.
- Isolated worktree per agent
- Live status indicators
- Launch from the tab bar
Layout
Flexible Split-Pane Tiling
Arbitrary vertical and horizontal terminal splits with responsive pointer drag resizing and smooth layout transitions.
- Vertical & horizontal splits
- Pointer drag resizing
- Drag tabs into any pane
Remote
Mobile Web Pairing
Secure, authenticated remote web access after you sign in to your Ferryx account with an email magic link. Stream terminal output through a dependency-free DOM grid and steer agent workflows on the go.
- Account sign-in pairing
- Streamed terminal grid
- Steer agents from a phone
Architecture
Zero Electron Overhead
Built on Tauri v2 and native WebView2/WebKit engines paired with a headless Rust PTY daemon. The core is cross-platform; selected OS integrations remain macOS-first.
Read the architecture deep dive →- Tauri v2 shell
- Headless Rust PTY daemon
- Cross-platform core, macOS-first integrations
Reliability
Resilient Persistence
Workspace state snapshots automatically, and the background daemon keeps sessions alive when the app quits or updates. Stopping the daemon or rebooting the host can still end live terminals.
- Layout snapshots
- Daemon survives the GUI
- Reattach with replay
Next release
A Supervisor for Your Agent Lanes
On main, not in the current download yet. The supervisor watches each supervised pane, sends agent questions to your Inbox, phone or Slack instead of answering for you, shows each lane's goal and next step, and confirms that an instruction it sends actually started a turn.
- Questions go to you; it never picks an answer for you
- Holds off while you type; Take over pauses it
- Shows exactly what it typed
Agents
Works with the agents you already use
Any command that runs in a terminal runs in a pane — Claude Code, Codex, Antigravity (agy), or anything else you can type.
- Aider
- Antigravity
- Claude Code
- Cline
- Codex
- Crush
- Cursor CLI
- Droid
- GitHub Copilot CLI
- GJC
- Grok
- Kimi
- OmO
- omp
- OpenCode
- pi
- + any CLI
Status detection ships for the 16 agents above and reads each pane as working, waiting on you, or idle. It drives the pane status indicator, desktop notifications, and the Dock attention badge on macOS.
Architecture, Not a Benchmark
A source-linked inventory of what Ferryx implements. It does not claim comparative performance without comparative measurements.
Implementation Inventory
Each row names the repository location that supports the claim.
| Component | Ferryx implementation | Evidence |
|---|---|---|
| Terminal parser | libghostty-vt | src-tauri/src/native_terminal/sys/ffi.rs |
| Desktop renderer | WGPU native child surfaces | src-tauri/src/native_terminal/renderer/ |
| PTY lifecycle | Headless Rust daemon with sequenced replay | src-tauri/src/daemon/ · terminal/output_hub.rs |
| Embedded browser | Native WebView split-tabs | ui/src/components/browser/ |
| Mobile terminal | Dependency-free DOM grid | ui/src/remote/RemoteTerminal.tsx |
| Agent supervision | Manifest-driven status detection | src-tauri/src/agent_detect/ |
