Skip to main content

Solo Server

Python 3.12+ License: MIT PyPI Version

Fastest way to deploy physical AI

CLI for Solo-Server Serving models in the physical world; optimized for on-device operation

LeRobot Chess Match Screenshot LeRobot Writer Screenshot

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
Video: Solo Tech Installation

Video: Solo Tech Installation

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
Video: quickstart installation

Video: Mac Quickstart Installation

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 all
solo robo --type lerobot --calibrate all
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

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/name)
  3. Commit changes (git commit -m 'Add feature')
  4. Push to branch (git push origin feature/name)
  5. Open Pull Request

Metadata

Release files for solo-server 0.5.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for solo-server 0.5.2
File Size Uploaded Provenance Actions
solo_server-0.5.2.tar.gz 71.2 kB Without provenance Details for solo_server-0.5.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for solo-server 0.5.2
File Interpreter ABI Platform Actions
solo_server-0.5.2-py3-none-any.whl Python 3 none any Details for solo_server-0.5.2-py3-none-any.whl

Total release size: 157.1 kB

Release files / solo_server-0.5.2.tar.gz

Download URL solo_server-0.5.2.tar.gz
Size 71.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f1e80cc7107987374796b7f227623e904ff72647f09dc31c72ccdca1453562cd
BLAKE2b-256 checksum
How to use checksums
2f7a766df2670af2f9595554ee22cf5eadf6a300eb9a1f97396e9950e725bf57
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Release files / solo_server-0.5.2-py3-none-any.whl

Download URL solo_server-0.5.2-py3-none-any.whl
Size 85.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cde99c47ee7a85a818674f8a4909fde31db28a4f136a25d61f8de6d2cf9832d9
BLAKE2b-256 checksum
How to use checksums
f4b984f92e387c537954588b8aa0dbc2dc548963c2b598d06aba6af383d22800
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Security for solo-server 0.5.2

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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.5.2 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page