openpilot tools
For StarPilot's ./build, ./dev, ./onroad, ./c3, and ./c4 workflows,
see StarPilot developer commands.
System Requirements
openpilot supports Linux alongside the supported embedded hardware.
Most of openpilot should work natively on macOS. On Windows, you can use WSL for a nearly native Linux experience.
Native setup on Linux and macOS
Follow these instructions for a fully managed setup experience. If you'd like to manage the dependencies yourself, just read the setup scripts in this directory.
1. Clone openpilot
git clone https://github.com/commaai/openpilot.git
2. Run the setup script
cd openpilot
tools/op.sh setup
3. Activate a Python shell Activate a shell with the Python dependencies installed:
source .venv/bin/activate
4. Build openpilot
scons -u
WSL on Windows
Windows Subsystem for Linux (WSL) should provide a similar experience to native Linux. WSL 2 specifically has been reported by several users to be a seamless experience.
Follow these instructions to set up WSL. We recommend installing the Ubuntu-24.04 distribution. Once your WSL environment is set up, follow the Linux setup instructions to finish setting up your environment. See these instructions for running GUI apps.
NOTE: If you are running WSL 2 and experiencing performance issues with the UI or simulator, you may need to explicitly enable hardware acceleration by setting GALLIUM_DRIVER=d3d12 before commands. Add export GALLIUM_DRIVER=d3d12 to your ~/.bashrc file to make it automatic for future sessions.
CTF
Learn about the openpilot ecosystem and tools by playing our CTF.
Directory Structure
├── car_porting/ # Tools for porting new cars
├── release/ # Scripts for building openpilot releases
└── scripts/ # Miscellaneous scripts
Development tools such as cabana, plotjuggler, and replay live in openpilot/tools/:
├── cabana/ # View and plot CAN messages from drives or in realtime
├── camerastream/ # Cameras stream over the network
├── joystick/ # Control your car with a joystick
├── lib/ # Libraries to support the tools and reading openpilot logs
├── plotjuggler/ # A tool to plot openpilot logs
├── replay/ # Replay drives and mock openpilot services
└── sim/ # Run openpilot in a simulator