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.
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.
Next Steps
- β Architecture Overview β Understand the full stack
- β API Reference β Complete REST API docs
- β Build an Adapter β Connect your robot hardware
- β Write a Skill β Create custom robot behaviors
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 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.
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.
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}")
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
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
π Your First Task
Submit your first task to a mock robot and see it through to completion.
Read Tutorial βπ Build an Adapter
Connect a new robot model to Xyrom OS by implementing the HAL adapter interface.
Read Tutorial βπ οΈ Write a Custom Skill
Define a typed skill contract and implement the executor class.
Read Tutorial ββοΈ Deploy to Production
Configure your Xyrom OS cloud instance, set up RBAC, and deploy a multi-robot fleet.
Read Tutorial βAPI Keys
Sandbox Environment
Test your integration against a simulated Xyrom OS environment. No real hardware needed.