Skip to main content

Roboto SDK

Roboto is the analytics engine for Physical AI: ingest, search, and analyze your robotics data at scale, and put AI agents to work on it 🤖

This package is the official Python SDK for Roboto. The roboto command line utility is distributed separately as standalone binaries (see CLI below).

If this is your first time using Roboto, start with the docs and the core concepts.

Why Roboto?

Most robotics teams start with manual review: visualizing logs and replaying data. But that approach alone doesn't scale; your fleet generates more data than your team can ever review. Roboto helps you go from raw logs to root cause 🚀

Ingest logs in every major robotics format, query data across your fleet, and define custom actions to post-process it: identify events, generate KPIs, and more.

You can also let AI agents do the analysis: they search your data, dig into signals, summarize and triage datasets, and detect events, whether in the Roboto web app, through this SDK, or from the AI tools you already use.

See below for supported data formats, installation instructions, and getting started examples.

Connect Your AI Tools

The hosted Roboto MCP server brings Roboto to the AI you already work in. Connect it once, and Claude Code, Claude Desktop, Codex, Cursor, VS Code, or any other client that speaks the Model Context Protocol can search your Roboto data, explore datasets and files, and analyze topic data mid-conversation:

claude mcp add --transport http roboto https://mcp.roboto.ai/mcp
  • You authenticate as yourself — sign in with your browser or use a personal access token; every tool call runs with your own permissions.
  • Read-only by design — a curated set of search, retrieval, and analysis tools; nothing exposed over MCP can modify your data.
  • All of your organizations, one connection — if you belong to several orgs, ask the AI to call whoami and set_active_org to switch between them.

See Connect AI Apps to Roboto for setup instructions per client, and the Roboto MCP Server docs for everything the AI can do once connected.

Data Formats

Roboto ingests the following formats, each with a corresponding action in the Action Hub.

Format Extensions Status Action
ROS 2 .mcap, .db3 ros_ingestion
ROS 1 .bag ros_ingestion
PX4 .ulg ulog_ingestion
Parquet .parquet parquet_ingestion
CSV .csv csv_ingestion
ArduPilot .bin, .log, .tlog ardupilot_ingestion
Video .mp4, .avi, .mkv video_ingestion
Journal .log journal_log_ingestion

Roboto can also support custom formats. Reach out to discuss your use case.

Install Roboto

To use the Roboto SDK or CLI:

  • Sign up at app.roboto.ai and create an access token (docs)
  • Save your access token to ~/.roboto/config.json

Python

The Roboto Python SDK is available on PyPI.

Requirements: Python 3.10+

Installation:

pip install roboto

[!TIP]

If pip install roboto fails or behaves unexpectedly, the two most common causes are a Python version below 3.10 and dependency conflicts from installing into your system Python or an existing environment.

To rule out both, confirm your Python version meets the requirement:

python3 -c "import sys; assert sys.version_info >= (3, 10), f'Python 3.10+ required, found {sys.version}'"

Create and activate a virtual environment:

# macOS/Linux
python3 -m venv .venv && source .venv/bin/activate

# Windows
python -m venv .venv && .venv\Scripts\activate

Then re-run pip install roboto.

Authentication (required):

The SDK uses the access token you saved above; if you haven't created one yet, see Setting up programmatic access. Verify your credentials are configured correctly:

python -m roboto.cli users whoami

See the complete SDK documentation.

CLI

To use Roboto from the command line without the Python SDK, install the standalone CLI.

Pre-built binaries for every version are on the releases page of this package. We build for Linux (aarch64, x86_64), macOS (aarch64, x86_64), and Windows (x86_64). See per-platform installation instructions below.

The CLI provides the roboto command line utility. List available commands with roboto -h, or see the complete CLI reference documentation.

Linux

  • Go to the latest release page for this package
  • (apt) Download the relevant roboto .deb file for your platform
    • e.g. roboto-linux-x86_64_0.9.2.deb (not a roboto-agent release)
    • Double-click the downloaded .deb file to install it with apt
  • (non-apt) Download the relevant roboto file for your platform
    • e.g. roboto-linux-x86_64 (not a roboto-agent release)
    • Move the downloaded file to /usr/local/bin or another directory on your PATH

Coming soon: direct apt-get install support

macOS

Install with the Homebrew package manager:

brew install roboto-ai/tap/roboto

Or download the relevant Mac binary, e.g. roboto-macos-aarch64, from the latest release page.

Windows

  • Go to the latest release page for this package
  • Download the roboto-windows-x86_64.exe file
  • Move the downloaded .exe to a folder on your PATH, like C:\Program Files\

Upgrade CLI

The CLI automatically checks for updates and notifies you when a new version is available.

Homebrew users can upgrade by running brew upgrade roboto. If you installed a .deb or a standalone executable, download the latest version and replace the old one.

Getting Started

Use the CLI for quick tasks: creating datasets, uploading or downloading files, and running actions. Use the Python SDK for full platform coverage, data analysis, and integration with your other tools.

CLI Example

The example below creates a new dataset and uploads a file to it. In a Python environment with the SDK installed, the same commands are available via python -m roboto.cli.

> roboto datasets create --tag boston
{
  "administrator": "Roboto",
  "created": "2024-09-25T22:22:48.271387Z",
  "created_by": "benji@roboto.ai",
  "dataset_id": "ds_9ggdi910gntp",
  ...
  "tags": [
    "boston"
  ]
}

> roboto datasets upload-files -d ds_9ggdi910gntp -p scene57.bag
100.0%|█████████████████████████ | 58.9M/58.9M | 2.62MB/s | 00:23 | Src: 1 file

Python Example

The example below accesses topic data from an ingested ROS bag file:

from roboto import Dataset

ds = Dataset.from_id("ds_9ggdi910gntp")
bag = ds.get_file_by_path("scene57.bag")
steering_topic = bag.get_topic("/vehicle_monitor/steering")

steering_data = steering_topic.get_data(
    start_time="1714513576", # "<sec>.<nsec>" since epoch
    end_time="1714513590",
)

You can also create events:

from roboto import Event

Event.create(
  start_time="1714513580", # "<sec>.<nsec>" since epoch
  end_time="1714513590", 
  name="Fast Turn",
  topic_ids=[steering_topic.topic_id]
)

Or search for logs matching metadata and statistics with RoboQL:

from roboto import query, RobotoSearch
roboto_search = RobotoSearch(query.client.QueryClient())

query = '''
dataset.tags CONTAINS 'boston' AND
topics[0].msgpaths[/vehicle_monitor/vehicle_speed.data].max > 20
'''

results = roboto_search.find_files(query)

Or put an AI agent to work on your data and stream its findings as it goes:

from roboto.ai import AgentThread
from roboto.ai.agent_thread import AgentTextDeltaEvent

thread = AgentThread.start(
    "Look at dataset ds_9ggdi910gntp and check /vehicle_monitor/steering for anomalies."
)

for event in thread.events():
    if isinstance(event, AgentTextDeltaEvent):
        print(event.text, end="", flush=True)

The same agents are available in the web app's AI Chat and on the command line via roboto chat start.

See the notebooks directory for complete examples!

Learn More

For more information, check out:

Contact

Email us at info@roboto.ai or join our community Discord server.

Download files

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

Source Distribution

roboto-0.52.0.tar.gz (497.3 kB view details)

Uploaded Source

Built Distribution

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

roboto-0.52.0-py3-none-any.whl (698.9 kB view details)

Uploaded Python 3

File details

Details for the file roboto-0.52.0.tar.gz.

File metadata

  • Download URL: roboto-0.52.0.tar.gz
  • Upload date:
  • Size: 497.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for roboto-0.52.0.tar.gz
Algorithm Hash digest
SHA256 359c4bdbb5b903e55b9643ed8b80269d73ea2ee3d620bd714051a201c37b4a24
MD5 cf370053a983b32a61a4587230249fca
BLAKE2b-256 8823437cddd7ea7c4b42d65deb894fcbfb7dad08c43f700aca0881c5e8513975

See more details on using hashes here.

Provenance

The following attestation bundles were made for roboto-0.52.0.tar.gz:

Publisher: sdk.yml on roboto-ai/roboto-python-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file roboto-0.52.0-py3-none-any.whl.

File metadata

  • Download URL: roboto-0.52.0-py3-none-any.whl
  • Upload date:
  • Size: 698.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for roboto-0.52.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6925e4fb3f17f43ee5c32e8e41992ea0bba6e47c8b2520d25257639a94ac8535
MD5 1f15f5137001c560cf4e6f0362465a79
BLAKE2b-256 a904a9ab10ba846d77881e3ebef95924e16dd6fffd6770115d0194d37dba15d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for roboto-0.52.0-py3-none-any.whl:

Publisher: sdk.yml on roboto-ai/roboto-python-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.54.0

2 files

0.53.0

2 files

This release

0.52.0 This release

2 files

0.51.0

2 files

0.50.0

2 files

0.49.0

2 files

0.48.0.post1

2 files

0.48.0

2 files

0.47.0

2 files

0.46.1.post0

2 files

0.46.1

2 files

0.46.0

2 files

0.45.0

2 files

0.44.2

2 files

0.44.1

2 files

0.44.0

2 files

0.43.0

2 files

0.42.0

2 files

0.41.0

2 files

0.40.0

2 files

0.39.0

2 files

0.38.0

2 files

0.37.0

2 files

0.36.0

2 files

0.35.2

2 files

0.35.1

2 files

0.35.0.post1

2 files

0.35.0

2 files

0.34.0

2 files

0.33.1

2 files

0.33.0

2 files

0.32.0

2 files

0.31.3

2 files

0.31.2

2 files

0.31.1

2 files

0.31.0

2 files

0.30.0

2 files

0.29.0

2 files

0.28.2

2 files

0.28.1

2 files

0.28.0

2 files

0.27.0

2 files

0.26.3

2 files

0.26.2

2 files

0.26.1

2 files

0.26.0

2 files

0.25.4

2 files

0.25.3

2 files

0.25.2

2 files

0.25.1

2 files

0.25.0

2 files

0.24.1

2 files

0.23.1

2 files

0.23.0

2 files

0.22.1

2 files

0.22.0

2 files

0.21.0

2 files

0.20.1

2 files

0.20.0

2 files

0.19.0

2 files

0.18.0

2 files

0.17.0

2 files

0.16.0

2 files

0.15.1

2 files

0.15.0

2 files

0.14.2

2 files

0.14.1

2 files

0.14.0

2 files

0.13.6

2 files

0.13.5

2 files

0.13.4

2 files

0.13.3

2 files

0.13.2

2 files

0.13.1

2 files

0.13.0

2 files

0.12.0

2 files

0.11.6

2 files

0.11.5

2 files

0.11.4

2 files

0.11.3

2 files

0.11.2

2 files

0.11.1

2 files

0.11.0

2 files

0.10.0

2 files

0.9.5

2 files

0.9.4

2 files

0.9.3

2 files

0.9.2

2 files

0.9.1

2 files

0.9.0

2 files

0.8.1

2 files

0.8.0

2 files

0.7.4

2 files

0.7.3

2 files

0.7.2

2 files

0.7.1

2 files

0.7.0

2 files

0.6.1

2 files

0.6.0

2 files

0.5.12

2 files

0.5.11

2 files

0.5.10

2 files

0.5.9

2 files

0.5.8

2 files

0.5.7

2 files

0.5.6

2 files

0.5.5

2 files

0.5.4

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.0

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.16

2 files

0.2.15

2 files

0.2.14

2 files

0.2.13

2 files

0.2.12

2 files

0.2.11

2 files

0.2.10

2 files

0.2.9

2 files

0.2.8

2 files

0.2.7

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.50

2 files

0.1.49

2 files

0.1.48

2 files

0.1.47

2 files

0.1.46

2 files

0.1.45

2 files

0.1.44

2 files

0.1.43

2 files

0.1.42

2 files

0.1.41

2 files

0.1.40

2 files

0.1.39

2 files

0.1.38

2 files

0.1.37

2 files

0.1.36

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

0.0.0

2 files

Supported by

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