Installation
beamng.assetto is a Python command-line tool, beamng-assetto. Install it with uv, or run it in a container.
Install with uv
Install uv
uv installs the tool and the Python it needs. Skip this step if you already have it.
curl -LsSf https://astral.sh/uv/install.sh | sh
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Get the source code
git clone https://gitlab.com/beamng.assetto/beamng.assetto.git
cd beamng.assetto
Install the command
Install beamng-assetto as a tool, available in every folder:
uv tool install .
beamng-assetto --help
Or keep it in the project's own environment, and run it through uv:
uv sync
uv run beamng-assetto --help
Check the version
beamng-assetto --version
beamng-assetto, version 0.0.1
work/ in the folder you run them from (work/evo, work/beamng). Run them from a folder on a disk with enough space, or choose the folders with --out.Update to a new version
Pull the new code and install it again:
git pull
uv tool install . --reinstall
A new version rewrites every shared shape and texture on its first build, because the build records the version that wrote them.
Run with Docker
The project's Dockerfile builds an image with the command and nothing else: Python 3.14 and the locked dependencies.
Build the image
docker build -t beamng-assetto .
Use it like the command
The current folder is mounted at /data, the container's working folder. Put content.kspkg and AssettoCorsaEVO.exe there, or mount them, and the output lands in ./work as with uv.
alias beamng-assetto='docker run --rm -it --user "$(id -u):$(id -g)" -v "$PWD:/data" beamng-assetto'
beamng-assetto kspkg info content.kspkg
--user keeps the files you create yours.
beamng install and beamng build --install link a mod into BeamNG's user folder by its path, which only makes sense outside the container. Run them with uv, or link work/beamng/evo_<circuit> into BeamNG's mods/unpacked/ folder yourself.