Skip to content
IndosaramPublic

About

Native terminal workspace for parallel AI coding agents. Git worktree isolation, persistent sessions, embedded browser tabs, and mobile remote access. Built with Rust, Tauri, Ghostty, and wgpu.

Topics

Resources

Stars

16 stars

Watchers

1 watching

Forks

Repository files navigation

English | 简体中文

Ferryx

Ferryx

Parallel agentic development. Zero bloat.

Native Ghostty terminal engine, wgpu GPU rendering, and a headless Rust PTY daemon. No Electron anywhere.

Download  ·  Website  ·  Docs  ·  Discord


Ferryx running an agent in a split terminal next to an embedded browser tab

An agent working in a native terminal pane, split beside an embedded browser tab.


Download

Platform Package
macOS Universal DMG (Apple Silicon & Intel) .dmg
Windows Installer (x64, not code-signed yet) .exe
Linux Portable AppImage (x64) .AppImage
Linux Debian / Ubuntu package (x64) .deb
Linux (Headless) Server / VPS PTY Daemon & CLI (x64) install.sh (curl -fsSL https://relay.ferryx.dev/install.sh | bash)

The macOS, Windows, and Linux links resolve against the latest release. Local release assembly stages the headless ferryx-cli beside the Linux AppImage and .deb (as ferryx-cli-linux-amd64) and, when the universal macOS CLI is present, as ferryx-cli-darwin-universal, so the one-line installer above resolves a current artifact when the release publishes one and otherwise fails closed. Verify downloads with the SHA256SUMS.txt published alongside the binaries:

sha256sum -c SHA256SUMS.txt

Speed. Isolation. Total control.

Every layer is engineered for minimal latency and autonomous agent collaboration.

Native Ghostty & wgpu engine

Desktop terminal panes render through native libghostty and a GPU-accelerated wgpu pipeline, giving crisp font rasterization and low-latency throughput.

  • libghostty terminal core
  • wgpu GPU pipeline
  • Offscreen WGPU render benchmark: 50-frame p50 3.10 ms on Apple M4 Max

Multi-agent workspaces

Run parallel AI coding agents (Claude Code, Codex, Gemini CLI) in isolated split panes with real-time status indicators.

  • Isolated worktree per agent
  • Live status indicators
  • Launch straight from the tab bar

Flexible split-pane tiling

Arbitrary vertical and horizontal splits with pointer-drag resizing and smooth layout transitions.

  • Vertical and horizontal splits
  • Pointer drag resizing
  • Drag tabs into any pane

Mobile web pairing

Authenticated remote access over QR or PIN. Stream terminal output to a dependency-free DOM terminal grid and steer agents from anywhere.

  • 6-digit PIN pairing
  • Streamed terminal grid
  • Steer agents from a phone

Remote Linux machine pairing (No SSH required)

Pair headless Linux servers, VPSs, and cloud instances as project-owning machines. Ferryx uses an outbound-only relay tunnel, so machines behind NAT, firewalls, or without public IPs / open SSH ports connect seamlessly. To operate your own relay instead of the default service, follow the self-hosted relay guide for TLS, mail delivery, machine enrollment, and the separate desktop account and gateway settings.

  • Headless ferryx-cli needs no display server; on Linux its shared crate still links GTK 3 and WebKitGTK 4.1
  • Outbound encrypted relay tunnel: no inbound SSH, open ports, or public IP needed
  • Native terminal split-panes and remote Git worktrees run directly on the machine
# 1. One-line install ferryx-cli on the remote machine (Linux x64, macOS)
curl -fsSL https://relay.ferryx.dev/install.sh | bash

# 2. Start the headless PTY daemon in a dedicated service or terminal;
#    use a second terminal for step 3 while this foreground process runs.
ferryx-cli --daemon

# 3. Link machine to your account via email magic link (no open ports or GUI PIN copying needed)
ferryx-cli account login --email you@example.com --origin https://your-account-service.example
# Open the authorization link in your email; the command waits for approval.
# --origin may be omitted when FERRYX_ACCOUNT_ORIGIN is configured.

Zero Electron overhead

Tauri v2 with the platform's native WebKit or WebView2 engine, paired with a headless Rust PTY daemon. The core runs on macOS, Windows, and Linux; selected OS integrations such as launchd, Dock badges, color emoji, and vibrancy remain macOS-first.

  • Tauri v2 shell
  • Headless Rust PTY daemon
  • macOS, Windows, Linux

Resilient persistence

Workspace state snapshots automatically and the GUI can reattach to a running daemon. Closing the GUI leaves daemon-owned processes running; stopping the daemon or rebooting the host can still end live PTYs.

  • Layout snapshots
  • Daemon survives the GUI
  • Reattach with output replay

Built different

An architecture inventory of Ferryx's native Ghostty and Rust components. This is not a performance benchmark against Electron-based AI IDEs or terminal emulators.

Architecture component Ferryx implementation
Terminal parser libghostty-vt
Desktop rendering WGPU native child surfaces
PTY lifecycle Headless Rust daemon with output replay
Embedded browser Native WebView split-tabs
Mobile pairing PIN/QR gateway with a custom DOM terminal grid
Agent supervision Manifest-driven status detection and notifications

Guides and comparisons

Practical walkthroughs:

Honest comparisons against the alternatives, on architecture and licensing rather than unmeasured performance claims:

Build from source

Prerequisites

On Linux, install the GTK 3, WebKitGTK 4.1, and other system libraries required by Tauri before compiling the desktop or CLI binary.

Clone and install

git clone https://github.com/Indosaram/ferryx.git
cd ferryx
git submodule update --init --recursive
bun install
bun install --cwd ui
bun install --cwd site

Run the desktop app

The Tauri shell starts the UI dev server defined in src-tauri/tauri.conf.json:

cd src-tauri && cargo tauri dev

Run the site and docs

Astro + Starlight on port 14173:

bun run --cwd site dev

Validate changes

bun run --cwd ui build
bun run --cwd ui test
BASE_URL=/ bun run --cwd site build
cargo check --manifest-path src-tauri/Cargo.toml

Architecture

ferryx/
├── src-tauri/   # Rust Tauri v2 core: PTY daemon, IPC, notifications, remote gateway
├── ui/          # React frontend: native terminal surface, layout, remote pairing
├── site/        # Astro + Starlight landing page and docs, deployed to Cloudflare Workers
└── docs/        # Specifications, audit logs, and reference material

Rust native core (src-tauri) owns pseudoterminal lifecycles, manages Git worktree leases, hosts native child webviews, and runs an authenticated Axum WebSocket gateway for mobile pairing. Terminal sessions live in a headless daemon rather than the GUI, so closing the window never touches a PTY. Output lands in a ring buffer with monotonic sequence numbers, and reattaching replays from the last sequence.

Frontend (ui) is the React shell rendered inside WebKit or WebView2. It drives pane tiling, agent title detection, keyboard shortcuts, and terminal search overlays.

Site (site) is the static Astro and Starlight build that hosts the landing page, guides, and an embedded demo running the real product components.

Contributing

Contributions are welcome. Branch from main, run the validation commands above, and open a pull request describing the user-visible result.

Questions and ideas are welcome in Discord.

License

This project is licensed under the Sustainable Use License (SUL-1.0): it permits personal, non-commercial, and internal business use; distribution is subject to its non-commercial terms and required notices.

Code Signing Policy

Free code signing provided by SignPath.io, certificate by SignPath Foundation.

  • Maintainer: @Indosaram
  • Privacy: Ferryx stores workspace data locally. Remote access, embedded websites, external coding agents, and update services can exchange data over the network. See the Ferryx Privacy Policy for data handling and deletion choices.

About

Native terminal workspace for parallel AI coding agents. Git worktree isolation, persistent sessions, embedded browser tabs, and mobile remote access. Built with Rust, Tauri, Ghostty, and wgpu.

Topics

Resources

Stars

16 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Contributors

Languages