HelixScope is a desktop data debugging workbench built with Tauri, React, and Rust. The UI is intentionally compact and tool-like: multiple workspaces, docked panels, transport status, protocol scripting, and fast raw-data inspection.
The app is designed around three decoupled layers:
- transport backends such as serial, SEGGER RTT, TCP, or USB bulk
- normalized record processing and QuickJS scripting
- presentation panels for text, hex, plots, and session metadata
Only serial transport is intended for the first milestone. The other adapters exist in the architecture so the frontend never has to care which backend is active.
- Frontend: React, shadcn, Tailwind CSS, FlexLayout, Zustand
- Backend: Tauri v2 + Rust
- Workspace model: one independent data pipeline per top-level tab
- Panel model: predefined views hosted inside FlexLayout
- Script engine: QuickJS for filtering, decoding, and enrichment
The canonical data path is:
transport -> raw frame -> optional script transform -> normalized record -> panel view
AGENTS.mdis the authoritative architecture memory for the project.docs/developer-workflow.mddescribes the intended worktree and linear-history flow.- Semantic commits are required.
- Merge commits are not allowed.
Install dependencies with pnpm install.
Bootstrap the frontend and backend shell from this repository root:
pnpm installRun the desktop app during development with:
pnpm tauri devUse the Vite-only frontend server when you want the UI shell without the Rust side:
pnpm devFor a production frontend build:
pnpm buildRust checks live under src-tauri:
cd src-tauri
cargo check- VS Code
- Tauri extension
- rust-analyzer
The current app shell expects these Tauri commands:
bootstrap_app_statelist_serial_portsconnect_workspacedisconnect_workspacesend_workspace_dataupdate_workspace_script
The current streaming event channel is:
helixscope://workspace-event