TetherInstall
Home/Docs/Linux app architecture
Architecture

Linux app architecture

The Linux desktop app is a Tauri shell over the shared local proxy, with a React graph UI and Rust desktop commands.

Release
Alpha channel
Runtime
macOS + Linux + local proxy
Docs
19 guides

Source layout

PathResponsibility
apps/linux/src/appReact app state, proxy polling, node selection, replay, and workspace attribution.
apps/linux/src/featuresGraph canvas, inspector, replay footer, settings, and sidebar surfaces.
apps/linux/src/infrastructureTauri bridge clients for proxy requests, proxy process control, and workspace snapshots.
apps/linux/src-tauri/srcRust commands that start the sidecar proxy, bridge HTTP requests, and read workspace diffs.
core/proxyShared Rust proxy binary used by macOS and Linux.

Runtime flow

text
apps/linux Tauri window
  -> starts or finds tether-proxy
  -> calls proxy_request through Tauri
  -> reads /api/traces/current/summary
  -> renders draggable graph nodes, connections, inspector, and replay controls

The Linux app does not duplicate backend logic. It owns desktop process control and UI behavior, while trace capture, replay, cache, provider routing, and SQLite storage stay in core/proxy.

Build commands

bash
npm --prefix apps/linux ci
npm --prefix apps/linux run build
cargo check --manifest-path apps/linux/src-tauri/Cargo.toml
./scripts/package-linux.sh
  • The package script builds core/proxy in release mode.
  • The Linux bundle receives tether-proxy as a Tauri sidecar.
  • Generated files stay out of git through the root .gitignore.

Current limits

  • Linux uses a Tauri desktop shell over the shared local proxy.
  • Nodes appear only when traffic or local commands are captured through the proxy or tether capture.
  • Browser previews cannot start the local proxy because Tauri commands are desktop-only.