jetson-jolt
A comprehensive Python CLI tool for setting up NVIDIA Jetson devices and building containerized AI/ML applications.
Overview
jetson-jolt provides a streamlined, pure-Python interface for:
- Analyzing and configuring Jetson hardware
- Setting up development environments
- Managing Docker, storage, power, and GUI configurations
- Building and running containerized AI/ML applications
Features
✅ Pure Python Implementation: No shell script dependencies
✅ Comprehensive System Analysis: Hardware detection and configuration validation
✅ Modular Architecture: Separate managers for different system components
✅ Rich CLI Interface: Beautiful terminal output with progress indicators
✅ Multiple Output Formats: Table, JSON, and YAML support
✅ Interactive & Non-Interactive Modes: Flexible operation modes
✅ Extensive Testing: Unit tests for all major functionality
Task list
- Best practices compliation for jetson for humans and AI
- tools
- commands
- configurations
- docker images backup and restore scripts
- GenAI integration on device, local or remote
- Model inference setup recommendations
- jetson-containers Package suite recommendations
Installation
From PyPI (Recommended)
pip install jetson-jolt
From Source
git clone https://github.com/orinachum/jetson-jolt.git
cd jetson-jolt
pip install -e .
Quick Start
-
Analyze your system:
jetson-jolt probe -
Initialize environment:
jetson-jolt init -
Complete setup:
jetson-jolt setup
Commands
System Analysis
jetson-jolt probe # Show system configuration
jetson-jolt probe --output json # Output as JSON
jetson-jolt probe --save config.yaml # Save to file
jetson-jolt probe --tests docker,swap # Run specific tests only
Environment Setup
jetson-jolt init # Create environment profile
jetson-jolt init --profile-name dev # Custom profile name
jetson-jolt init --force # Overwrite existing profile
System Configuration
jetson-jolt setup # Complete system setup
jetson-jolt setup --skip-docker # Skip Docker configuration
jetson-jolt setup --interactive # Interactive mode
jetson-jolt setup --non-interactive # Automated mode
Component Management
jetson-jolt configure docker # Configure Docker daemon
jetson-jolt configure swap # Setup swap file
jetson-jolt configure ssd # Configure SSD storage
jetson-jolt configure power # Power management settings
jetson-jolt configure gui # GUI environment setup
Status Monitoring
jetson-jolt status # Show system status table
jetson-jolt status --format json # JSON output format
Configuration Components
Docker Management
- Automatic Docker installation with NVIDIA runtime
- Data directory migration to NVMe storage
- User group configuration
- Runtime optimization
Storage Management
- NVMe SSD partitioning, formatting, and mounting
- Swap file creation and configuration
- zRAM management
- Automatic size detection and validation
Power Management
- Jetson power mode configuration
- Thermal monitoring
- Power consumption analysis
- Interactive mode selection
GUI Management
- Desktop environment enable/disable
- Display configuration detection
- Session management
- Boot configuration
Python SDK
The CLI is built on a modular SDK that can be used programmatically:
from jetson_jolt.sdk import SystemManager, DockerManager, StorageManager
# System analysis
system_manager = SystemManager()
results = system_manager.probe_system()
print(f"Platform: {results['platform']['machine']}")
# Docker configuration
docker_manager = DockerManager()
if not docker_manager.is_docker_installed():
docker_manager.install_docker()
# Storage management
storage_manager = StorageManager()
storage_info = storage_manager.get_storage_info()
Examples
Complete Jetson Setup Workflow
# 1. Analyze hardware and software configuration
jetson-jolt probe --save system-info.json
# 2. Create development environment profile
jetson-jolt init --profile-name ml-dev
# 3. Configure the system for AI/ML development
jetson-jolt setup
# 4. Verify everything is working
jetson-jolt status
# 5. Configure specific components as needed
jetson-jolt configure power # Set optimal power mode
jetson-jolt configure ssd # Setup external storage
Selective Component Configuration
# Configure only Docker (skip other components)
jetson-jolt configure docker
# Setup additional swap space
jetson-jolt configure swap
# Configure external SSD storage
jetson-jolt configure ssd --interactive
# Set power mode for maximum performance
jetson-jolt configure power
System Analysis and Monitoring
# Comprehensive system probe
jetson-jolt probe --output json --save analysis.json
# Monitor specific components
jetson-jolt probe --tests docker_installed,nvme_mount,power_mode
# Check system status
jetson-jolt status --format table
Architecture
jetson-jolt/
├── jetson_jolt/
│ ├── cli.py # Click-based CLI interface
│ ├── utils.py # Utility functions
│ └── sdk/ # Python SDK modules
│ ├── system.py # System management
│ ├── docker.py # Docker configuration
│ ├── storage.py # Storage management
│ ├── power.py # Power management
│ └── gui.py # GUI configuration
├── tests/ # Unit tests
└── docs/ # Documentation
Key Components
- CLI Interface: Rich terminal interface with progress indicators
- SDK Modules: Modular Python classes for system management
- Configuration Management: Environment-based configuration
- Error Handling: Comprehensive error reporting and recovery
- Testing Framework: Unit tests for all major functionality
Requirements
- NVIDIA Jetson device (Nano, Xavier, Orin series)
- JetPack 4.6+ or L4T R32.7+
- Python 3.8+
- Root privileges for system configuration
Development
Running Tests
# Run all tests
python -m unittest tests.test_sdk -v
# Run specific test
python -m unittest tests.test_sdk.TestSystemManager -v
Adding New Features
- Implement functionality in appropriate SDK module
- Add CLI command in
cli.py - Write unit tests in
tests/ - Update documentation
Migrated from Shell Scripts
This version represents a complete migration from shell scripts to pure Python:
- ✅
probe-system.sh→SystemManager.probe_system() - ✅
configure-docker.sh→DockerManager.setup_docker() - ✅
configure-swap.sh→StorageManager.setup_swap_file() - ✅
configure-ssd.sh→StorageManager.configure_nvme_ssd() - ✅
configure-power-mode.sh→PowerManager.set_power_mode() - ✅
configure-system-gui.sh→GUIManager.configure_gui() - ✅
create-env-profile.sh→SystemManager.create_env_profile()
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Metadata
Release files for jetson-jolt 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| jetson_jolt-0.8.0.tar.gz | 58.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jetson_jolt-0.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 91.7 kB
Release files / jetson_jolt-0.8.0.tar.gz
| Download URL | jetson_jolt-0.8.0.tar.gz |
|---|---|
| Size | 58.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8e83c7545b113543d2436fbadb536ac8cf4d52973ce05be083d3179fcb73e6f5
|
|
BLAKE2b-256 checksum How to use checksums |
2ce2e4929f1f5d1e9ee929d45c9cb1411ee83d7a76c3c2546972a4fe1664405f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.18
|
Release files / jetson_jolt-0.8.0-py3-none-any.whl
| Download URL | jetson_jolt-0.8.0-py3-none-any.whl |
|---|---|
| Size | 32.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
269fe25a9d4d042265b92924b5b966b437691e00e5e8e2bb8aa93af3ef64bb21
|
|
BLAKE2b-256 checksum How to use checksums |
704603a82a2079ceb07c370c53027741ed941d7685779ff03e7bd1bcc3f67776
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.18
|
Security for jetson-jolt 0.8.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.