CLI Reference
Full reference for the openremap command-line interface. For interactive
use, just run openremap with no arguments to launch the TUI.
No server, no database, no internet connection required — install and run anywhere. (Install)
New to the terminal? Run
openremap workflowfirst. It prints a complete plain-English walkthrough with the exact commands to type and what to look for at each step. No reading required.Know the commands already? Run
openremap commandsfor a one-line-per-command cheat-sheet.
Commands
Every command supports --help for a quick reminder of its arguments and
options. Each command has its own page: a simple introduction plus an
advanced reference with every flag and example.
| Command | What it does | Reference |
|---|---|---|
commands |
Compact cheat-sheet — all commands at a glance | → commands |
workflow |
Step-by-step guide — start here if you are new | → workflow |
families |
List every supported ECU family with era, size, and notes | → families |
identify |
Read an ECU binary and print everything extracted from it | → identify |
health |
One-shot calibration health check — CI-gateable | → health |
checksum |
Verify known checksum schemes (OK/STALE, no correction) | → checksum |
scan |
Classify a folder of ECU files by manufacturer and family | → scan |
scan-vins |
Locate VIN candidates and score them | → scan-vins |
layout |
Flash-layout block map — erased/code/calibration/ident regions | → layout |
scan-maps |
Structural scan — find calibration map axes and 2D tables | → scan-maps |
diff-maps |
Compare two binaries at map level — match by axis fingerprint | → diff-maps |
cook |
Compare a stock and a tuned binary and save the difference as a recipe | → cook |
cook-volatile |
Car-portable recipe — excludes volatile bytes (VIN, checksum stores) with evidence | → cook-volatile |
merge |
Combine two recipes into one, validated against a common stock | → merge |
tune |
One-shot: validate before → apply → validate after | → tune |
validate before |
Pre-flight check — run before tuning (or use tune) |
→ validate |
validate check |
Diagnostic — run when validate before fails |
→ validate |
validate after |
Post-tune confirmation — run after tuning (or use tune) |
→ validate |
audit |
The receipt check — do stock, tuned, and recipe belong together? | → audit |
validate strict/validate exists/validate tunedare deprecated aliases forvalidate before/validate check/validate after. They still work but print a rename notice. Update your scripts when convenient.
Typical session
# New here? Print the full step-by-step guide first
openremap workflow
# Need a quick reminder of all commands?
openremap commands
# Not sure if your ECU is supported?
openremap families
openremap families --family EDC16
# (Optional) Sort a folder of binaries into a tidy library
openremap scan ./my_bins/ # preview — nothing moves
openremap scan ./my_bins/ --move --organize # sort into Bosch/EDC17/ etc.
# (Optional) Discover calibration maps in an unsupported or unknown ECU
openremap scan-maps ecu.bin
openremap scan-maps ecu.bin --region 0x10000-0x80000 --min-score 0.85 --show-series
# (Optional) Diff two binaries at map level — which maps changed, by how much
openremap diff-maps stock.bin stage1.bin
openremap diff-maps stock.bin stage1.bin --threshold 5 --json
# 1. Read the stock binary — confirm it is a supported ECU
openremap identify stock.bin
# 2. Health-check it — checksums, axes, map counts, VINs
openremap health stock.bin
# 3. Extract the tune — diff stock vs tuned and save as a recipe
openremap cook stock.bin stage1.bin --output recipe.remap
# 3b. Applying to ANOTHER CAR of the same SW revision?
# Use cook-volatile — it excludes VIN / checksum-store bytes with evidence
openremap cook-volatile stockA.bin stage1.bin --output portable.remap
# (Optional) Combine small mods — egr_off + stage1 into one recipe
openremap merge egr_off.remap stage1.remap --stock stock.bin -o both.remap
# 4. One-shot: validate before → apply → validate after
openremap tune target.bin recipe.remap
# (Optional) Receipt check — do stock, tuned, and recipe belong together?
openremap audit stock.bin stage1.bin recipe.remap
# If tune fails at Phase 1 — diagnose why
openremap validate check target.bin recipe.remap
# 5. MANDATORY — correct checksums with ECM Titanium, WinOLS, or equivalent
# before flashing the tuned binary to any vehicle
Deprecated: openremap-server
⚠ DEPRECATED — do not build new integrations on this.
openremap-serverwill be replaced by a new API when the time comes. Existing users: it keeps working for now, but expect it to change. The full protocol reference has moved to the internal documentation.
openremap-server starts a long-running JSON-RPC daemon that non-Python
applications (desktop editors, IDE plugins, automation tools written in
Rust, Go, C++, Electron, etc.) can use to call the openremap pipeline
without cold-starting a Python interpreter on every request.
# Start the server — reads requests from stdin, writes responses to stdout
openremap-server
# Equivalent
python -m openremap.server
# Quick smoke-test
echo '{"id":1,"method":"ping","params":{}}' | openremap-server
# → {"id": 1, "result": {"ok": true}}
The server stays alive until stdin is closed or the process is terminated.
Pipeline operations: ping, version, identify, cook, tune,
validate, scan_maps, and scan.
Other documentation
| Document | Contents |
|---|---|
| Getting started | The wiki home — who this is for, five-minute path, command map |
| How it works | The full pipeline, step by step |
| Confidence scoring | Confidence scoring — tiers, signals, warnings, and score breakdown |
| Recipe format | The recipe format spec (.remap) — fields, structure, versioning |
| Manufacturers | Supported ECU families per OEM |
| About OpenRemap | The project's identity and aims |
| Contributing | How to add a new ECU extractor, code style, submitting a PR |
| Disclaimer | Liability, intended use, professional review requirements |