Modern, open-source ECU tuning software for Speeduino, rusEFI, epicEFI, and other INI-compatible aftermarket engine control units. Built with a Rust core and a native desktop UI via Tauri.
⚠️ Project status — early days. These notes are largely agentically written and may not be 100% accurate. Public contributions are welcome — see CONTRIBUTING.md and the CHANGELOG for what's landed recently.
| Platform | Stable Release | Nightly Build | Notes |
|---|---|---|---|
| Linux | No Stable releases at this time, please use the nightly. | Nightly | AppImage is portable, no install needed |
| Windows | No Stable releases at this time, please use the nightly. | Portable EXE | Nightly is portable, no install needed |
| macOS | No Stable releases at this time, please use the nightly. | Nightly | Separate builds for Apple Silicon and Intel |
⚠️ Nightly builds are automatically generated from the latest code and may be unstable.

Full-featured 2D grid editor with 3D surface visualization, keyboard navigation, and live ECU cursor tracking. Includes Set Equal, Scale, Interpolate, Smooth, Re-bin, Copy/Paste, table comparison, and direct Burn to ECU.
Import existing .dash files or build layouts from scratch with 13 gauge types (analog dials, bar gauges, sweep gauges, digital readouts, line graphs, histograms, tachometers, and more). Drag-and-drop designer mode with three default dashboards included.
Live fuel table recommendations based on AFR targets with heat map visualization, cell locking, authority limits, transient filtering, and lambda delay compensation.
Data logger with configurable sample rates, playback controls, CSV import/export, math channels, and alert rules. Tooth logger and composite logger for trigger pattern analysis. Text-based ECU console for rusEFI/FOME/epicEFI.
Project-based workflow with restore points, Git-based tune versioning, CSV export/import, TunerStudio project import, INI version tracking with automatic tune migration, and change annotations. Online INI search from Speeduino and rusEFI GitHub repos.
pt-BR); add new locales under crates/libretune-app/src/i18n/locales/For full documentation, see the User Manual or the architecture overview.
| Welcome Screen | Settings Dialog | Table Editor |
|---|---|---|
![]() |
![]() |
![]() |
| ECU | INI Support | Serial Protocol |
|---|---|---|
| Speeduino | ✅ | ✅ |
| rusEFI | ✅ | ✅ |
| FOME | ✅ | ✅ |
| epicEFI | ✅ | ✅ |
| MegaSquirt MS2/MS3 | ✅ | Partial |
Any ECU using the standard INI definition format should be compatible.
git clone https://github.com/RallyPat/LibreTune.git
cd LibreTune
cd crates/libretune-app
npm install
npm run tauri dev
Notes for Linux Users
Tauri 2 needs WebKitGTK and a few system libraries. On Debian/Ubuntu:
sudo apt install -y libwebkit2gtk-4.1-dev librsvg2-dev libssl-dev \
build-essential curl wget file libxdo-dev libayatana-appindicator3-dev
On Fedora:
sudo dnf install -y webkit2gtk4.1-devel openssl-devel curl wget file \
libxdo-devel libappindicator-gtk3-devel librsvg2-devel "@C Development Tools and Libraries"
See the Tauri prerequisites guide for other distros.
Notes for Windows Users
If link.exe is not found, install the Visual Studio Build Tools:
rustup default stable-x86_64-pc-windows-msvcNotes for macOS Users
Install the Xcode command-line tools:
xcode-select --install
WebKit ships with macOS, so no extra system packages are required.
cd crates/libretune-app
npm run tauri build
libretune/
├── crates/
│ ├── libretune-core/ # Core Rust library
│ │ └── src/
│ │ ├── ini/ # INI file parsing
│ │ ├── protocol/ # Serial communication
│ │ ├── ecu/ # ECU memory model
│ │ ├── datalog/ # Data logging
│ │ ├── autotune/ # AutoTune algorithms
│ │ ├── tune/ # Tune file management
│ │ ├── dash/ # Dashboard format (incl. layout.rs defaults)
│ │ └── project/ # Project, restore points, Git versioning
│ └── libretune-app/ # Tauri desktop application
│ ├── src/ # React frontend (TypeScript)
│ │ ├── components/ # UI (dialogs, dashboards, gauges, tuner-ui, …)
│ │ ├── contexts/ # Cross-cutting React providers
│ │ ├── hooks/ # Reusable hooks (realtime, ECU events, …)
│ │ ├── i18n/ # Localization (en, pt-BR)
│ │ └── stores/ # State stores
│ └── src-tauri/ # Tauri backend (Rust)
│ └── src/
│ ├── commands/ # Tauri commands (~70 sub-modules)
│ └── state.rs # Shared AppState
├── docs/ # User manual (mdBook) + architecture.md
├── scripts/ # Build and development scripts
├── CHANGELOG.md # Keep-a-Changelog history
└── Cargo.toml # Workspace root
For a deeper dive into module boundaries and Phase 1–8 cleanup history, see docs/architecture.md and CHANGELOG.md.
See CONTRIBUTING.md for development setup and guidelines, and docs/architecture.md for a tour of the codebase.
# Rust workspace
cargo test --workspace
# Frontend (vitest)
cd crates/libretune-app && npm run test:run
cargo clippy --workspace --all-targets -- -D warnings
cargo fmt --all -- --check
cd crates/libretune-app
npm run typecheck
The full pre-push pipeline (build + tests + clippy + fmt + frontend build/tests) is wrapped in scripts/pre-push.sh and runs automatically as a Git hook.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.
See LICENSE for the full license text.
Contributions are welcome! Please read CONTRIBUTING.md before submitting PRs.
LibreTune is an independent open-source project and is not affiliated with EFI Analytics.
$ claude mcp add LibreTune \
-- python -m otcore.mcp_server <graph>