Rabby

Rabby is a Rust/Tauri terminal workspace inspired by Tabby, cloned locally at ../tabby-source for feature reference.

Goal

Keep the same broad product shape as Tabby—terminal tabs, nested split panes, local/SSH/Telnet/Serial profiles, themes, shortcuts, quake-mode UX, session restore, and transfer/security surfaces—while replacing the Electron/Angular shell with a smaller Rust core plus Tauri desktop shell.

Current implementation

  • rabby-core: dependency-light Rust domain model for profiles, tabs, split panes, session restore primitives, and Tabby feature coverage tests.
  • rabby-core/src/feature: structured Tabby-vs-Rabby feature catalog with honest status (Modeled, UiPrototype, Planned).
  • rabby-core/src/workspace: refactored workspace/profile/pane domain state.
  • src-tauri: Tauri v2 desktop backend exposing the Rust feature matrix to the UI.
  • ui: static responsive UI mock/prototype matching Tabby-style terminal UX without a JavaScript build chain.
  • docs/rabby-screenshot.svg: screenshot artifact of the UI/UX direction.

Verification

cargo fmt --all -- --check
cargo test -p rabby-core
cargo check -p rabby
cargo build --release -p rabby

The core crate is intentionally testable without launching the desktop shell.

Tabby feature comparison

This table is based on Tabby's README and top-level modules (tabby-terminal, tabby-local, tabby-ssh, tabby-telnet, tabby-serial, tabby-plugin-manager, tabby-settings, tabby-web, etc.). The scaffold does not claim every production implementation is finished; it verifies that each class is represented in the Rust catalog and tests.

Tabby feature class Rabby coverage now Status
VT terminal emulation Terminal session/pane surface requirement in Rust catalog Planned
Nested split panes Recursive PaneNode with bounds and leaf-count tests Modeled
Remembered tabs Workspace stores tabs and active tab Modeled
Quake console/global hotkey quake_mode state plus UI control Modeled
Progress/process notifications Tab.progress state with validation Modeled
Bracketed/multiline paste, RMB paste, copy-on-select Terminal preference requirement in catalog Planned
Unicode/double-width/ligatures Renderer requirement in catalog Planned
Local shell profiles Typed LocalShell profile command Modeled
SSH connection manager Typed Ssh profile command boundary Modeled
SSH forwarding/jump hosts/agent forwarding/login scripts Advanced SSH backlog entry in catalog Planned
Telnet Typed Telnet profile Modeled
Serial terminal Typed Serial profile plus serial option backlog Modeled
Zmodem/SFTP transfers Transfer surface reserved for SSH sessions Planned
Encrypted SSH secrets/config Tauri/Rust secret-store boundary in catalog Planned
Themes/color schemes Profile.color_scheme plus UI theme prototype Modeled
Configurable multi-chord shortcuts Command palette/shortcut UX prototype entry UI prototype
Plugin manager/ecosystem Extension boundary reserved outside core Planned
Portable/web surfaces Static UI + Tauri shell; web surface tracked as platform backlog UI prototype

Screenshot

Rabby screenshot

S
Description
Rust/Tauri terminal workspace inspired by Tabby
Readme
360 KiB
Languages
Rust 83.5%
JavaScript 6%
CSS 5.6%
HTML 4.8%