OpenRemap Docs

Install from a repo clone

Use this when you want to change the code, run the tests, or use something that has not been released yet. For everyday use, the package install is faster and simpler.

Everything below happens inside one folder. It does not affect a package install you may already have, and it does not touch anything else on your computer.

What you need

Tool Why How
git to clone the repository git-scm.com/downloads
uv manages the environment and Python astral.sh/uv
Rust toolchain the engine's hot loops are written in Rust, and you are building them from source rustup.rs

Installing Rust is one command — curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh on macOS/Linux, or the installer from rustup.rs on Windows. First build takes a few minutes; later ones are quick.

Clone and set up

git clone https://github.com/v-arapidis/openremap-core.git
cd openremap-core
uv sync

uv sync creates a virtual environment in .venv/, installs every dependency at the versions pinned in uv.lock, and builds the native extension.

Build the native engine

uv run maturin develop --release

Run this after any change to the Rust code (everything under openremap/_rs/). For Python-only changes it is not needed.

Run it

Two equivalent ways — pick whichever suits you:

# a) prefix each command — nothing to activate
uv run openremap --version
uv run openremap identify my_file.bin

# b) activate the environment once per terminal session
source .venv/bin/activate     # macOS / Linux
.venv\Scripts\activate        # Windows
openremap --version

With no arguments, openremap opens the full-screen interface, exactly as the installed package does. uv run openremap does the same from inside the clone.

Run the tests

uv run pytest tests/ -q          # the whole suite
uv run pytest tests/cli -q       # one area
uv run pytest tests/tuning/manufacturers/test_edc17_extractor.py -v   # one file

Some tests need a local corpus of dumps, which is not part of the repository. They skip cleanly when it is absent, so the suite runs anywhere — including CI.

Staying up to date

git pull
uv sync          # picks up new or changed dependencies

Where things live

Path What it is
openremap/cli/ the command-line interface
openremap/tui/ the full-screen interface, one module per screen
openremap/api/ the method registry, JSON-RPC transport, workflows
openremap/core/ the engine — identity, maps, checksums, recipes, apply
openremap/_rs/ the Rust extension (built with maturin)
tests/ the test suite; docs/internal/ holds dated audits

Contributions are welcome — read contributing first, especially the section on adding a new ECU family without sharing a dump.