Peppy: The simplified robotics framework
22
stars
3,728
commits
Rust
primary language
Sep 9, 2026
updated
Peppy is a modern robotics middleware framework designed for robots. Similar to ROS 2, it provides a distributed communication layer for robotic systems with a big focus on ease of use and explicit configuration.
Full documentation lives at docs.peppy.bot.
curl -fsSL https://peppy.bot/install.sh | sh
The installer puts the peppy CLI on your PATH, registers the background service that builds and supervises nodes (systemd on Linux, launchd on macOS), and configures the Apptainer container runtime used by container nodes. Check that both the CLI and the service are up with:
peppy info
Peppy runs on Linux (x86_64/aarch64, tested on Ubuntu 24.04, Fedora, and Arch Linux) and macOS (aarch64).
The installation guide covers version pinning (PEPPY_VERSION), skipping the service install (PEPPY_NO_SERVICE_INSTALL), and managing the service afterwards.
The quickstart takes you from nothing installed to a simulated bimanual OpenArm you can drive from your browser, without cloning a repository or writing any code:
peppy stack launch openarm_v2 --with=mujoco,web_commander
That single command adds, builds, and starts every node in the selection, in dependency order, under the background service.
C being the next on the list)peppylib library however, is available only in a few supported languages.Non-goals:
| Command group | What it does |
|---|---|
peppy node | Scaffold, add, build, run, inspect, and stop individual nodes |
peppy stack | Launch a stack from a launcher, list what is running, benchmark interface latency |
peppy repo | Manage the repositories nodes and launchers are resolved from |
peppy container | Check and repair the Apptainer container prerequisites |
peppy platform | Log in, log out, and show the current platform identity |
peppy service | Install, serve, stop, uninstall, and reset the background service |
peppy info | Print the CLI version, container setup, and daemon info |
peppy --version | Print the CLI version alone, without contacting the daemon |
peppy_config.json5 reference, including running your own Zenoh router instead of the one Peppy managesLLM-friendly versions of the documentation are available at /llms.txt and /llms-full.txt.
You only need this to work on Peppy itself. To use Peppy, install it with the command above.
To provision a fresh development machine, run:
./scripts/setup_machine.sh
It installs the following tooling with each project's recommended method, skipping anything already present:
apt on Ubuntu, Homebrew on macOS)/usr/local/go on Ubuntu, Homebrew on macOS)Supported platforms are Ubuntu and macOS. On macOS the script expects Homebrew to be installed first. When Go is installed from the tarball on Ubuntu, the script adds /usr/local/go/bin to your ~/.profile, so open a new shell (or source ~/.profile) afterwards.
Install cargo & Rust then make sure the Rust toolchain is up to date with:
rustup update
To build Peppy, just type the following:
cargo build --release --all-targets
The public-facing crates (config, peppylib, pmi, and friends) are git dependencies on public-peppy-libs, resolved through Cargo.lock. Nothing extra to clone; cargo update moves them forward.
cargo test --locked
The workspace's default-members covers crates/* only, so the slow documentation integration tests are excluded from that run. Run them explicitly with:
cargo test -p docs-integration-tests
CI runs both, plus the feature-gated container and multi-daemon end-to-end suites and the release-scripts tests. See .github/workflows/tests.yml for the exact commands.
Peppy is licensed under the Business Source License 1.1. You may make production use of it, provided that use does not include offering a product or service to third parties whose value derives primarily from Peppy. On 2031-01-01 the license converts to Apache License, Version 2.0.
Rust
94.6%
Python
4.8%
Peppy: The simplified robotics framework
22
stars
3,728
commits
Rust
primary language
Sep 9, 2026
updated
Peppy is a modern robotics middleware framework designed for robots. Similar to ROS 2, it provides a distributed communication layer for robotic systems with a big focus on ease of use and explicit configuration.
Full documentation lives at docs.peppy.bot.
curl -fsSL https://peppy.bot/install.sh | sh
The installer puts the peppy CLI on your PATH, registers the background service that builds and supervises nodes (systemd on Linux, launchd on macOS), and configures the Apptainer container runtime used by container nodes. Check that both the CLI and the service are up with:
peppy info
Peppy runs on Linux (x86_64/aarch64, tested on Ubuntu 24.04, Fedora, and Arch Linux) and macOS (aarch64).
The installation guide covers version pinning (PEPPY_VERSION), skipping the service install (PEPPY_NO_SERVICE_INSTALL), and managing the service afterwards.
The quickstart takes you from nothing installed to a simulated bimanual OpenArm you can drive from your browser, without cloning a repository or writing any code:
peppy stack launch openarm_v2 --with=mujoco,web_commander
That single command adds, builds, and starts every node in the selection, in dependency order, under the background service.
C being the next on the list)peppylib library however, is available only in a few supported languages.Non-goals:
| Command group | What it does |
|---|---|
peppy node | Scaffold, add, build, run, inspect, and stop individual nodes |
peppy stack | Launch a stack from a launcher, list what is running, benchmark interface latency |
peppy repo | Manage the repositories nodes and launchers are resolved from |
peppy container | Check and repair the Apptainer container prerequisites |
peppy platform | Log in, log out, and show the current platform identity |
peppy service | Install, serve, stop, uninstall, and reset the background service |
peppy info | Print the CLI version, container setup, and daemon info |
peppy --version | Print the CLI version alone, without contacting the daemon |
peppy_config.json5 reference, including running your own Zenoh router instead of the one Peppy managesLLM-friendly versions of the documentation are available at /llms.txt and /llms-full.txt.
You only need this to work on Peppy itself. To use Peppy, install it with the command above.
To provision a fresh development machine, run:
./scripts/setup_machine.sh
It installs the following tooling with each project's recommended method, skipping anything already present:
apt on Ubuntu, Homebrew on macOS)/usr/local/go on Ubuntu, Homebrew on macOS)Supported platforms are Ubuntu and macOS. On macOS the script expects Homebrew to be installed first. When Go is installed from the tarball on Ubuntu, the script adds /usr/local/go/bin to your ~/.profile, so open a new shell (or source ~/.profile) afterwards.
Install cargo & Rust then make sure the Rust toolchain is up to date with:
rustup update
To build Peppy, just type the following:
cargo build --release --all-targets
The public-facing crates (config, peppylib, pmi, and friends) are git dependencies on public-peppy-libs, resolved through Cargo.lock. Nothing extra to clone; cargo update moves them forward.
cargo test --locked
The workspace's default-members covers crates/* only, so the slow documentation integration tests are excluded from that run. Run them explicitly with:
cargo test -p docs-integration-tests
CI runs both, plus the feature-gated container and multi-daemon end-to-end suites and the release-scripts tests. See .github/workflows/tests.yml for the exact commands.
Peppy is licensed under the Business Source License 1.1. You may make production use of it, provided that use does not include offering a product or service to third parties whose value derives primarily from Peppy. On 2031-01-01 the license converts to Apache License, Version 2.0.
Rust
94.6%
Python
4.8%