Skip to content

Development Setup ​

Prerequisites ​

RequirementPurpose
macOSPrimary target platform
BunJavaScript runtime and package manager
RustTauri backend compilation
Xcode Command Line ToolsmacOS system libraries

Getting Started ​

bash
git clone https://github.com/markbrutx/Tabby.git
cd Tabby
bun install

Development Modes ​

Full App (Tauri + Frontend) ​

bash
bun run tauri dev

This starts both the Vite dev server and the Tauri Rust backend. Terminal panes use real PTY sessions.

Frontend Only ​

bash
bun run dev

Runs only the web frontend. A mock transport simulates terminal behavior in the browser, useful for UI work without compiling Rust.

Available Scripts ​

CommandDescription
bun run devFrontend dev server (mock transport)
bun run tauri devFull desktop app with hot reload
bun run buildFrontend production bundle
bun run tauri buildDesktop app bundle (.app / .dmg)
bun run lintESLint + DTO boundary check
bun run typecheckTypeScript strict mode check
bun run testVitest unit/integration tests
bun run test:e2ePlaywright E2E tests
bun run test:rustRust fmt + clippy + tests
bun run verifyFrontend lint + typecheck + tests
bun run verify:allFull verification (frontend + Rust)
bun run docs:devDocumentation site dev server
bun run docs:buildBuild documentation site

Rust Development ​

The Rust workspace lives under src-tauri/:

bash
cd src-tauri

# Check compilation
cargo check --workspace

# Format code
cargo fmt --all

# Lint
cargo clippy --workspace --all-targets --all-features -- -D warnings

# Run tests
cargo test --workspace

Testing ​

Unit & Integration Tests ​

bash
bun run test           # Run once
bun run test:watch     # Watch mode

E2E Tests ​

bash
bun run test:e2e           # Headless
bun run test:e2e:headed    # With browser visible

Rust Tests ​

bash
cd src-tauri && cargo test --workspace

Tips ​

  • Use tmux for long-running dev sessions to avoid orphaned processes
  • Never run multiple Tabby instances simultaneously
  • The bun run dev mode is the fastest iteration loop for UI changes
  • Rust changes require bun run tauri dev to take effect

Released under the MIT License.