obd-tui¶
obd-tui turns any ELM327-compatible OBD-II adapter into a live terminal
dashboard. It finds the adapter on the serial bus, asks the vehicle which
commands it actually supports, and streams the answers into a tabbed
Textual interface.
Install¶
Or run it without installing anything permanently:
On the supported LTS releases - 24.04 (noble) and 26.04 (resolute) - a packaged build is published to a PPA:
The package carries its Python dependencies in a self-contained virtual
environment under /opt/venvs/obd-tui, because two of them are missing
from the Ubuntu archive or too old there. It touches no system Python
packages.
Other releases are out of reach for two reasons. 22.04 and earlier ship
Python 3.10, and obd-tui needs 3.11. Interim releases go out of support
after nine months, and Launchpad refuses uploads for a series once it
does - so an Ubuntu that is itself unsupported cannot be served. On one of
those, install from PyPI instead:
Without a vehicle¶
Demo mode drives the whole dashboard from a simulated vehicle - no adapter, no car, no serial port. See Usage.
Requirements¶
- Python 3.11 or newer.
- An ELM327-compatible adapter reachable as a serial port - a USB dongle such as the vLinker family, or a Bluetooth adapter bound to an RFCOMM node.
- Permission to read that port. On most Linux distributions this means
belonging to the
dialoutgroup:
First run¶
The dashboard starts disconnected and its tabs are disabled - there is
nothing to show until a vehicle answers. Press c to connect: obd-tui
scans the serial ports, opens the first adapter it recognises, and asks the
ECU for its capability list. From then on the panels refresh once a second.
Ignition must be on for the ECU to answer. With the engine off, most vehicles reply to a handful of commands and leave the rest empty; the panels simply omit what was never reported.
Where to go next¶
- Usage - command line options and key bindings.
- Panels - what each tab shows.
- Architecture - how the pieces fit together.
- Stability & deprecation - what the version numbers promise.