Getting Started

Welcome to Xyrom OS

Xyrom OS is the operating system and cloud platform for embodied robot autonomy. This guide gets you from zero to a first mock-adapter or sandbox task quickly; real hardware setup time depends on the target platform.

ℹ️ Xyrom OS requires Python 3.10+ and a supported robot or the Mock Adapter for simulation.

Installation

# Install the Xyrom OS SDK
pip install xyrom-os-sdk

# For mock/simulation (no hardware needed)
pip install xyrom-os-sdk[mock]

# Verify installation
python3 -c "import xyrom_os_sdk; print(xyrom_os_sdk.__version__)"

Quick Start

Check the public gateway first, then move to the authenticated portal APIs for fleet operations.

from xyrom_os_sdk import XyromClient

# Connect to the public gateway
client = XyromClient(api_url="https://api.xyromos.com/v0", api_key="your-key")

# Check gateway health
health = client.get("/health")

print(health["app"])
print(health["version"])

Core Concepts

πŸ€– Robots

Physical robots managed by Xyrom OS. Each has an adapter, state, and telemetry stream.

⚑ Skills

Typed action contracts. Define preconditions, parameters, and expected outcomes.

πŸ“‹ Tasks

Instructions to run a skill on a robot. Tracked through full lifecycle with traces.

β€”
Adapters
β€”
Developers
β€”
Certified
β€”
API Keys

Next Steps

Architecture

System Architecture

Xyrom OS is organized into five layers: Hardware, Safety Runtime, Agent Runtime, Cloud Control, and Developer Platform.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         Developer Platform / SDK / Docs             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚     Cloud Control Plane / Fleet / Evals / Telemetry β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Agent Runtime / Planner / Memory / World Model     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Robot Runtime / Safety / Skills / HAL / State      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  OEM Hardware / Sensors / Actuators / Controllers   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Zone A β€” Robot Edge (always-on)

Hardware adapter, safety runtime, emergency stop. Runs on robot compute. Real-time safe.

Zone B β€” Edge Agent

Skill executor, local planner, world model, trace buffer. Operates without cloud connectivity.

Zone C β€” Cloud

LLM planner, fleet management, telemetry aggregation, operator console. Cloud services.

API Reference

API Surfaces

Xyrom OS currently exposes multiple API surfaces. The public gateway base URL is https://api.xyromos.com/v0, while fleet and licensing workflows use their own authenticated product APIs.

ℹ️ Use api.xyromos.com/v0 for gateway services such as health, tokens, usage, webhooks, and OAuth apps. Use portal.xyromos.com/api for fleet/task operations and license.xyromos.com/api for licensing workflows.
Click any endpoint to open the interactive explorer
Loading API endpoints...
Python SDK

Python SDK

The official Python SDK for Xyrom OS. Supports Python 3.10+.

Installation

pip install xyrom-os-sdk

Authentication

from xyrom_os_sdk import XyromClient

client = XyromClient(
    api_url="https://api.xyromos.com/v0",
    api_key="xos_your_api_key_here"
)

Portal Task Management

# Fleet/task APIs are exposed through the authenticated fleet portal surface
portal = XyromClient(api_url="https://portal.xyromos.com/api", api_key="your-portal-key")

task = portal.tasks.create(
    org_id="museum-corp",
    robot_id="tron1-001",
    goal={"goal_kind": "patrol_area", "zone": "main-floor"},
    priority="medium"
)

print(task["task_id"])
print(task["task_state"])

Skill Registration

from xyrom_os_sdk.skills import SkillContract, SkillParameter

# Define a skill
skill = SkillContract(
    skill_id="my_custom_skill",
    version="1.0.0",
    description="My custom robot skill",
    parameters=[
        SkillParameter(name="target", type="string", required=True),
        SkillParameter(name="speed", type="float", default=0.5),
    ],
    preconditions=["robot.battery_pct > 20", "robot.status == 'active'"],
    timeout_sec=120
)

# Register it
client.skills.register(skill)

Telemetry Streaming

for event in client.telemetry.stream("tron1-001"):
    print(f"[{event.timestamp}] {event.metric}: {event.value}")
Adapters

Building OEM Adapters

Adapters (`.aoa` packages) connect robot hardware to Xyrom OS. They implement the Hardware Abstraction Layer (HAL).

Adapter Package Structure

my_robot_adapter/
β”œβ”€β”€ manifest.yaml          # Adapter metadata and capabilities
β”œβ”€β”€ adapter.py             # Main HAL implementation
β”œβ”€β”€ sensors.py             # Sensor bridge
β”œβ”€β”€ actuators.py           # Actuator wrappers
β”œβ”€β”€ safety_hooks.py        # Safety policy hooks
└── tests/
    └── test_adapter.py

manifest.yaml

id: com.example.my-robot
name: My Robot Adapter
version: 1.0.0
platform: my-robot-v2
xyrom_api: ">=0.5.0"
capabilities:
  - navigation
  - manipulation
  - camera
  - lidar
safety_class: B2

adapter.py

from xyrom_os_sdk.hal import BaseAdapter, SensorData, ActuatorCommand

class MyRobotAdapter(BaseAdapter):
    def connect(self, config: dict) -> bool:
        # Initialize hardware connection
        return True

    def get_sensor_data(self) -> SensorData:
        # Read from hardware
        return SensorData(...)

    def send_command(self, cmd: ActuatorCommand) -> bool:
        # Send to hardware
        return True

    def emergency_stop(self) -> bool:
        # Implement E-STOP
        return True
Skills

Skill Contracts

Skills are typed behavioral contracts. They define what a robot can do, under what conditions, and with what parameters.

Skill YAML Contract

skill_id: navigate_to
version: 1.0.0
description: Navigate robot to a named location
category: navigation
author: Xyrom OS Core Team

parameters:
  destination:
    type: string
    required: true
    description: Named location from site map
  speed:
    type: float
    default: 0.5
    min: 0.1
    max: 1.0
    description: Navigation speed (m/s)

preconditions:
  - robot.battery_pct > 15
  - robot.status == "active"
  - site.location_exists(params.destination)

outcomes:
  success:
    - robot.location == params.destination
  failure:
    - code: OBSTACLE_BLOCKED
    - code: LOCATION_NOT_FOUND
    - code: LOW_BATTERY

timeout_sec: 120
safety_class: B1
requires_approval: false

Implementing a Skill

from xyrom_os_sdk.skills import SkillExecutor, SkillContext, SkillResult

class NavigateToSkill(SkillExecutor):
    skill_id = "navigate_to"

    async def execute(self, ctx: SkillContext) -> SkillResult:
        dest = ctx.params["destination"]
        speed = ctx.params.get("speed", 0.5)

        ctx.log(f"Navigating to {dest} at speed {speed}")

        # Execute navigation
        result = await ctx.robot.navigate(
            location=dest,
            speed=speed,
            on_progress=ctx.report_progress
        )

        if result.success:
            return SkillResult.success({"arrived_at": dest})
        else:
            return SkillResult.failure(result.error_code)
Tutorials

Tutorials

Beginner

πŸš€ Your First Task

Submit your first task to a mock robot and see it through to completion.

Read Tutorial β†’
Intermediate

πŸ”Œ Build an Adapter

Connect a new robot model to Xyrom OS by implementing the HAL adapter interface.

Read Tutorial β†’
Intermediate

πŸ› οΈ Write a Custom Skill

Define a typed skill contract and implement the executor class.

Read Tutorial β†’
Advanced

☁️ Deploy to Production

Configure your Xyrom OS cloud instance, set up RBAC, and deploy a multi-robot fleet.

Read Tutorial β†’
Community

Community

Loading posts…
Sign in to post in the community forum.
πŸ’¬

Discord

Join 2,400+ developers. Get help, share projects, discuss robotics.

Join Discord
πŸ™

GitHub

Star the repo, file issues, contribute adapters and skills.

View GitHub
πŸ—£οΈ

Forum

Long-form discussions, architecture questions, integration help.

Visit Forum
Account β†’ API Keys

API Keys

πŸ”‘ Sign in to view and manage your API keys.
Sign In to Get API Key β†’
Account β†’ Sandbox

Sandbox Environment

Test your integration against a simulated Xyrom OS environment. No real hardware needed.

πŸ§ͺ Sign in to create a sandbox session.
Sign In to Use Sandbox β†’
Account β†’ My Adapters

My Published Adapters

πŸ“¦ Sign in to manage your published adapters.
Sign In to Manage Adapters β†’