Skip to main content

Platform for Physiscal AI Inference.

Project description

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 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

  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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

solo_server-0.5.1.tar.gz (72.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

solo_server-0.5.1-py3-none-any.whl (86.6 kB view details)

Uploaded Python 3

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

Hashes for solo_server-0.5.1.tar.gz
Algorithm Hash digest
SHA256 0f595e8561653e5e69682113811801941f1c69ee7fce5872ba538c37d049f6a0
MD5 c8e71507498d853233940584ec2fd01f
BLAKE2b-256 7577f716e086d948bf78e443be4febe1041dcb62d2d8a3aadc02bba0b247fb05

See more details on using hashes here.

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

Hashes for solo_server-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0cc45994857ce8fb294fa15725a2eefb1c8593174c34d80509645c79a009a73f
MD5 40c4886bf05ad946b3625d6ace2f3ae5
BLAKE2b-256 d71749103bd9a90ca6fbcf85f13a2d3c371eba77609e7ace69fc33acf886a072

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page