Skip to content

Contributing

Tabby welcomes contributions. Here are the guidelines to keep the codebase healthy.

Before You Start

  1. Read the Architecture Overview to understand the system layers
  2. Set up your Development Environment
  3. Review the Coding Standards

Contribution Guidelines

Keep Diffs Minimal

Focus changes on what's necessary. A bug fix doesn't need surrounding code cleaned up. A feature doesn't need extra configurability.

Run Verification

Always run the relevant checks for the files you touched:

  • Frontend changes: bun run lint && bun run typecheck && bun run test
  • Rust changes: cargo fmt --all --check && cargo clippy --workspace && cargo test --workspace
  • Full check: bun run verify:all

Test-Driven Development

For bugs and new behavior, prefer TDD:

  1. Write the test first (it should fail)
  2. Write minimal implementation to pass
  3. Refactor

Preserve Invariants

These invariants must never be broken:

  • Terminal runtimes survive tab switches, focus changes, and layout updates
  • Each pane owns one independent runtime and one working directory
  • Application services depend on port traits, never on concrete infrastructure
  • Frontend stores use internal read models, not raw DTOs

Project Layout

PathWhat's There
src/React frontend (features, app-shell, components)
src-tauri/src/Tauri bootstrap, shell integration, CLI, menu
src-tauri/crates/Domain crates (kernel, workspace, runtime, settings, git, contracts)
tests/e2e/Playwright E2E tests
docs/This documentation site

License

Tabby is released under the MIT License.

Released under the MIT License.