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, lambda delay compensation (fixed, flow-scaled, or measured via the built-in AFR Delay Test), and fuel-cut / railed-sensor exclusion.
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-compatible per-table .table import/export, TunerStudio project import, INI version tracking with automatic tune migration, and change annotations. Online INI search from Speeduino, rusEFI, and FOME GitHub repos, offered automatically on ECU signature mismatch.
- AI Assistant: Bring-your-own-LLM co-pilot (OpenAI / Anthropic / Google / local Ollama or LM Studio, with one-click presets) that reads your tables, realtime data, and datalogs, diagnoses problems, and proposes validated, authority-clamped changes for explicit review — applied only after your approval (restore point first) and never burned automatically. OS-keychain API-key storage, capability tiers, pin-conflict warnings, and an "Ask AI" button on every table editor.
- MCP Server (local, read-only): expose the same tune-inspection tools to external agents (Claude Code, Claude Desktop, any MCP client) over a loopback HTTP server with bearer auth. Off by default; no tool can edit a tune or touch the ECU.
- Multi-monitor: Pop out any tab to its own window with bidirectional sync
- Unit preferences: Temperature (°C/°F/K), pressure (kPa/PSI/bar/inHg), AFR/Lambda
- Performance calculator: Estimated HP/torque curves and acceleration times
- Action scripting: Record and replay tuning actions across tunes, with INI-backed validation
- Extensible: WASM plugin system with sandboxing and permission model
- Localization: i18n scaffold with English, Brazilian Portuguese (
pt-BR), and Hungarian (hu-HU); add new locales undercrates/libretune-app/src/i18n/locales/ - Demo mode: Run the app without an ECU using the bundled simulator (Settings → Enable Demo Mode)
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.
- Rust (stable) — Install via rustup
- Node.js 20+ — For the Tauri frontend
- Platform build deps — see the OS notes below
git clone https://github.com/RallyPat/LibreTune.git
cd LibreTune
cd crates/libretune-app
npm install
npm run tauri devNotes 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-devOn 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:
- Download from visualstudio.microsoft.com/downloads → "Tools for Visual Studio" → "Build Tools for Visual Studio"
- During installation, enable Desktop development with C++
- Set the Rust toolchain:
rustup default stable-x86_64-pc-windows-msvc - Restart your terminal, then build as above
Notes for macOS Users
Install the Xcode command-line tools:
xcode-select --installWebKit ships with macOS, so no extra system packages are required.
cd crates/libretune-app
npm run tauri buildlibretune/
├── 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)
│ │ ├── agent/ # AI assistant orchestrator, tools, safety tiers
│ │ ├── llm/ # LLM provider trait + OpenAI/Anthropic/Google impls
│ │ └── 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 (~80 topic 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:runcargo clippy --workspace --all-targets -- -D warnings
cargo fmt --all -- --check
cd crates/libretune-app
npm run typecheckThe full pre-push pipeline (build + tests + clippy + fmt + frontend build/tests) is wrapped in scripts/pre-push.sh. Both Git hooks are opt-in: scripts/setup-git-hooks.ps1 (or .sh) enables the pre-commit format check, and ./scripts/pre-push.sh --install-hook runs the full pipeline before every push.
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.


