Jumpstarter
June 11, 2026 ยท View on GitHub
Jumpstarter is a free and open source test automation framework. It bridges the gap between embedded development workflows and deployment environments, enabling consistent automated testing across real hardware and virtual environments with CI/CD integration. Every interface is programmatic, so human developers, test scripts, CI pipelines, and AI agents interact with devices through the same APIs.
Highlights
- ๐งช Unified Testing - One tool for physical and virtual devices under test
- ๐ Hardware Abstraction - Control UART, CAN, SPI, GPIO, power, and USB through drivers
- ๐ Python-Powered - Integrate with PyTest and Python's testing ecosystem
- ๐ Collaborative - Share and securely lease test hardware across teams
- โ๏ธ Automation Ready - Same APIs for humans, test scripts, CI pipelines, and AI agents
- ๐ป Cross-Platform - Supports Linux and macOS
Repository Structure
This monorepo contains all Jumpstarter components:
| Directory | Description |
|---|---|
python/ | Python client, CLI, drivers, and testing framework |
controller/ | Kubernetes controller and operator (Jumpstarter Service) |
protocol/ | gRPC protocol definitions (protobuf) |
e2e/ | End-to-end testing infrastructure |
Quick Start
Install the CLI
pip install --extra-index-url https://pkg.jumpstarter.dev/ jumpstarter-cli
Or install all Python components:
pip install --extra-index-url https://pkg.jumpstarter.dev/ jumpstarter-all
Deploy the Service
To install the Jumpstarter Service in your Kubernetes cluster, see the Service Installation documentation.
Components
Python Client & Drivers (python/)
The Python implementation provides:
jmpCLI tool for interacting with hardware- Client libraries for test automation
- Hardware drivers for various devices
- Testing framework integration
See python/README.md for details.
Jumpstarter Service (controller/)
The Kubernetes-native service that provides:
- Centralized hardware management
- Client and exporter routing
- Authentication and authorization
- Multi-tenant support
Prerequisites:
- Kubernetes (version must match the k8s.io dependencies in controller/go.mod)
- kubectl (version matching the k8s.io dependencies in controller/go.mod)
See controller/README.md for deployment instructions.
Protocol (protocol/)
The gRPC-based communication layer that enables:
- Unified interface for virtual and physical hardware
- Secure communication over HTTPS
- Tunneling support for Unix sockets, TCP, and UDP
- Flexible topology with direct or routed connections
See protocol/README.md for details.
End-to-End Tests (e2e/)
Comprehensive testing infrastructure for the entire Jumpstarter stack.
See the Makefile for available targets.
Development
Prerequisites
- Python (for Python components, see .py-version)
- Go (for controller, see .go-version)
- Docker/Podman (for container builds)
- kubectl (version matching the k8s.io dependencies in controller/go.mod)
Building
# Build all components
make build
# Build specific components
make build-python # Python packages
make build-controller # Controller binary
make build-protocol # Generate protocol code
# Run tests
make test
# Run end-to-end tests
make e2e-setup # First time only
make e2e # Run tests
make e2e-clean # Clean up
Documentation
Jumpstarter's documentation is available at jumpstarter.dev.
Contributing
Jumpstarter welcomes contributors of all levels of experience! See the contributing guide to get started.
Community
License
Jumpstarter is licensed under the Apache 2.0 License (LICENSE or https://www.apache.org/licenses/LICENSE-2.0).