Platform for Physiscal AI Inference.
Project description
Solo Server
Fastest way to deploy physical AI
CLI for Solo-Server Serving models in the physical world; optimized for on-device operation
Installation
#Choose one of the following for solo-server installation
#1. Install solo server from PyPI python manager
uv pip install solo-server
#2. Install solo server from source
git clone https://github.com/GetSoloTech/solo-server.git
cd solo-server
uv pip install -e .
# Solo commands
solo --help
Quick Installation for Mac (Automated)
For Mac users, we provide an automated installation script that handles all the setup steps:
# Clone the repository
git clone https://github.com/GetSoloTech/solo-server.git
cd solo-server
# Make the installation script executable
chmod +x install_mac.sh
# Run the automated installation
./install_mac.sh
The script will automatically:
- Install uv package manager (version 0.9.3)
- Create a virtual environment with Python 3.12.12
- Set up environment variables for dependencies
- Install solo-server in development mode with fallback handling for mujoco dependencies
After installation, activate the virtual environment:
source solo_venv/bin/activate
Solo Commands:
solo --help
╭─ Commands ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ setup Set up Solo Server environment with interactive prompts and saves configuration to config.json. │
│ robo Robotics operations: motor setup, calibration, teleoperation, data recording, training, and inference │
│ serve Start a model server with the specified model. │
│ status Check running models, system status, and configuration. │
│ list List all downloaded models available in HuggingFace cache and Ollama. │
│ test Test if the Solo server is running correctly. Performs an inference test to verify server functionality. │
│ stop Stops Solo Server services. You can specify a server type with 'ollama', 'vllm', or 'llama.cpp' │
│ Otherwise, all Solo services will be stopped. │
│ download Downloads a Hugging Face model using the huggingface repo id. │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Start server with SML models
# Note that you will need Docker for solo serve
solo setup
solo serve --server ollama --model llama3.2:1b
Interactive Lerobot With Solo Server
Find more details here: Solo Robo Documentation
# Motors (both) → Calibrate (both) → Teleop
solo robo --type lerobot --motors both
solo robo --type lerobot --calibrate both
solo robo --type lerobot --teleop
# Record a new local dataset with prompts
solo robo --type lerobot --record
# Train Diffusion Policy on a recorded dataset and push to Hub
solo robo --type lerobot --train
# Inference with a hub model id (with optional Teleop override)
solo robo --type lerobot --inference
API Reference
Find more details here: OpenAI -> OpenAI API Docs Ollama -> Ollama API Docs
vLLM & llama.cpp (OpenAI Compatible)
# Chat request endpoint
curl http://localhost:5070/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.2",
"messages": [{"role": "user", "content": "Analyze sensor data"}],
"tools": [{"type": "mcp", "name": "VitalSignsMCP"}]
}'
Ollama
# Chat request endpoint
curl http://localhost:5070/api/chat -d '{
"model": "llama3.2",
"messages": [
{
"role": "user",
"content": "why is the sky blue?"
}
]
}'
Configuration
Navigate to config file
.solo_server/config.json
{
"hardware": {
"use_gpu": false,
"cpu_model": "Apple M3",
"cpu_cores": 8,
"memory_gb": 16.0,
"gpu_vendor": "None",
"gpu_model": "None",
"gpu_memory": 0,
"compute_backend": "CPU",
"os": "Darwin"
},
"user": {
"domain": "Software",
"role": "Full-Stack Developer"
},
"server": {
"type": "ollama",
"ollama": {
"default_port": 5070
}
},
"active_model": {
"server": "ollama",
"name": "llama3.2:1b",
"full_model_name": "llama3.2:1b",
"port": 5070,
"last_used": "2025-10-09 11:30:06"
}
}
Contributing
- Fork the repository
- Create feature branch (
git checkout -b feature/name) - Commit changes (
git commit -m 'Add feature') - Push to branch (
git push origin feature/name) - Open Pull Request
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file solo_server-0.5.1.tar.gz.
File metadata
- Download URL: solo_server-0.5.1.tar.gz
- Upload date:
- Size: 72.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f595e8561653e5e69682113811801941f1c69ee7fce5872ba538c37d049f6a0
|
|
| MD5 |
c8e71507498d853233940584ec2fd01f
|
|
| BLAKE2b-256 |
7577f716e086d948bf78e443be4febe1041dcb62d2d8a3aadc02bba0b247fb05
|
File details
Details for the file solo_server-0.5.1-py3-none-any.whl.
File metadata
- Download URL: solo_server-0.5.1-py3-none-any.whl
- Upload date:
- Size: 86.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0cc45994857ce8fb294fa15725a2eefb1c8593174c34d80509645c79a009a73f
|
|
| MD5 |
40c4886bf05ad946b3625d6ace2f3ae5
|
|
| BLAKE2b-256 |
d71749103bd9a90ca6fbcf85f13a2d3c371eba77609e7ace69fc33acf886a072
|