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

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.2.tar.gz (71.2 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.2-py3-none-any.whl (85.9 kB view details)

Uploaded Python 3

File details

Details for the file solo_server-0.5.2.tar.gz.

File metadata

  • Download URL: solo_server-0.5.2.tar.gz
  • Upload date:
  • Size: 71.2 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.2.tar.gz
Algorithm Hash digest
SHA256 f1e80cc7107987374796b7f227623e904ff72647f09dc31c72ccdca1453562cd
MD5 08e11d52fed58fb4afcf5995c9ac9e87
BLAKE2b-256 2f7a766df2670af2f9595554ee22cf5eadf6a300eb9a1f97396e9950e725bf57

See more details on using hashes here.

File details

Details for the file solo_server-0.5.2-py3-none-any.whl.

File metadata

  • Download URL: solo_server-0.5.2-py3-none-any.whl
  • Upload date:
  • Size: 85.9 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cde99c47ee7a85a818674f8a4909fde31db28a4f136a25d61f8de6d2cf9832d9
MD5 d0b34bd7cf177f18873ce942eb69e7ce
BLAKE2b-256 f4b984f92e387c537954588b8aa0dbc2dc548963c2b598d06aba6af383d22800

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