Developer preview · Documentation

Build one auditable robot Cell.

CenterOS gives you one versioned object model across heterogeneous hardware, teleoperation, recording and evaluation. This page describes what the preview packages do today.

Not on PyPI yet · configuration-specific

Overview

One control and evidence contract, not one fake robot abstraction. CenterOS unifies identity, sessions, clocks, recording and evaluation. Vendor-specific kinematics, force modes, tactile layouts and safety states stay inside each device's adapter.

Packages 3 packages
PackageVersionProvides
centeros-cli0.2.0centeros command and the centeros Python SDK
centeros-mcp0.1.0centeros-mcp MCP server
centeros-robotics0.1.0centeros-robot command and BaseTeleopAgent

All three need Python 3.10 or newer and are MIT-licensed.

Install

The packages are not on PyPI yet. Preview participants receive them directly and install from the package path.

terminal
$ pip install ./centeros-cli
$ pip install ./centeros-mcp          # optional: AI agents
$ pip install ./centeros-robotics     # optional: robot agents

Authentication

Sign in once with the CLI. The token is saved to ~/.centeros/config.json and the Python SDK reuses it. Give the MCP server its token through CENTEROS_TOKEN.

terminal
$ centeros login             # browser sign-in (Google, GitHub or email)
$ centeros login --device    # device code, for headless hosts
$ centeros whoami
$ centeros pat --help        # personal access tokens for CI
Environment variables MCP server
VariablePurpose
CENTEROS_TOKENToken for the MCP server (a login token or a personal access token)
CENTEROS_API_URLOverride the platform API URL (rarely needed)

CLI

Run centeros --help for every command group. The common ones:

terminal
$ centeros hardware list          # hardware catalog
$ centeros hardware specs wuji-hand
$ centeros teleop sessions        # recent teleop sessions
$ centeros teleop monitor <id>    # live event stream
$ centeros datasets list
$ centeros eval run --help        # start an evaluation run
$ centeros safety active          # active e-stops
$ centeros safety estop --help
All command groups centeros 0.2.0
  • Identity: login, logout, whoami, register, pat
  • Hardware and robots: hardware, robot, fleet, safety, ota
  • Sessions: teleop, sim, slam, mission
  • Data: datasets, dataset, share, sharing, cloud-import
  • Models: eval, training, models, vla
  • Platform: health, stats, actions, skill

MCP server

Add centeros-mcp to any MCP client and pass your token.

mcp.json
{
  "mcpServers": {
    "centeros": {
      "command": "centeros-mcp",
      "env": { "CENTEROS_TOKEN": "<your token>" }
    }
  }
}
Tool groups selection
  • Hardware: list_hardware_catalog, get_hardware_entry
  • Robots and fleet: list_robots, get_robot_twin, fleet_overview, list_fleet_alerts
  • Teleop: list_teleop_sessions, get_teleop_session, send_robot_command
  • Safety: get_safety_profile, list_active_estops, emergency_stop
  • Simulation, SLAM, missions: start_rc_sim, list_slam_sessions, list_missions
  • Data and docs: browse_datasets, search_wiki
  • Platform actions: list_available_actions, centeros_action
Motion gating send_robot_command

Commands are checked against the safety profile for that robot kind, velocity is clamped to profile limits (the agent is told), and commands are refused while an e-stop is active.

Python SDK

The SDK ships inside centeros-cli. It wraps the platform API with one client object.

quickstart.py
from centeros import CenterOSClient

client = CenterOSClient()          # or CenterOSClient(token="...")

status   = client.health.get()
datasets = client.datasets.list(limit=20)
robots   = client.fleet.robots()
models   = client.models.list()
Resources on the client CenterOSClient

datasets, training, models, fleet, annotations, stats, health, actions, orgs, sharing, review, feedback and more. API errors raise centeros.APIError; sign-in problems raise centeros.AuthError.

Robot agents

Write an adapter for your own robot by subclassing BaseTeleopAgent. The bundled PiPER, OpenArm and ALOHA agents are interfaces that run with --mock; hardware drivers are not included in the package.

terminal
$ centeros-robot list-robots
$ centeros-robot run piper --mock
$ centeros-robot run openarm --mock --record

Cell Runtime

On the edge host, a Cell manifest pins every component, and a session gate decides what may move.

Object model 5 records
RecordWhat it is
AssetOne physical device: serial number, model, firmware, driver version
Capability manifestThe device's support level, action and observation contract, and safety features
Cell manifestVersioned set of components plus environment, calibration and data-contract versions
SessionMode, local operator, state and command lease for one run
Evaluation runAcceptance criteria and a verdict: pass, fail or inconclusive
Session modes 5 modes
ModePurpose
calibrationCalibrate the Cell
teleop_captureHuman-operated demonstrations with recording
shadowPolicy outputs observed, not applied to actuators
canary_autonomousRestricted physical validation after a release gate
autonomousDefined in the runtime; not offered in the preview
Session states lifecycle

created → active → halted or estopped → closed. Commands carry a lease (250 ms by default) and are rejected after it expires.

Support levels

Every device in the runtime catalog carries exactly one level.

LevelMeaning
CatalogModel is known. No CenterOS driver; no control claim.
Observe onlyTelemetry may be read, never commanded.
Experimental controlAn adapter exists behind the local session gate. Not production-validated.
Certified controlDefined in the runtime. No device holds it today.

See the hardware matrix

Safety boundary

Control access is ours. Functional-safety certification is not.

CenterOS ownsYour native safety layer owns
Session orchestration and authorizationHardware emergency stop
Adapter contracts and command leasesSafety PLC and certified interlocks
Recording, provenance and evaluationReal-time torque and motion protection
Software e-stop requestsSite-specific risk assessment