Hand your robot to your users. And to their AI.

Fleetless puts a ROS 2 robot online with one small bridge. You choose what it exposes. Your users reach it through your app or their AI assistant, with the permissions you set.

Closed beta. We let teams in by email, a few at a time. Until then, read the docs.

On the robot /battery/state.percentage
In Fleetless battery_percentageamr-04, live
In your app 87.5% battery
In their assistant Is amr-04 charging?Yes. 87 %, docked at bay 2.

Three steps from robot to user.

No backend to write, no VPN to hand out, no second login for your users.

1

Install the bridge

One apt package per robot, for ROS 2 Humble, Jazzy and Lyrical. It connects to Fleetless and to nothing else.

# on the robot
sudo apt-get install ros-jazzy-fleetless-bridge
export FLEETLESS_TOKEN=frt_…
ros2 launch fleetless_bridge bridge.launch.py
2

Choose what it exposes

Pick topics, services, actions and cameras in the console. Each gets a name you choose, so renaming a ROS node breaks no app.

/battery/state.percentagebattery_percentage
/navigate_to_posedrive_to
/dockdock
/oakd/rgb/image_rawcamera_front
3

Hand it to your users

Create an app, give it roles, invite its users. They sign in through your app, and every way in follows the same roles.

# your users' assistant connects here
https://mcp.fleetless.dev/warehouse_dash

# your app uses the SDK
npm install @fleetless/sdk

One table decides who may do what.

Every app has roles. A role may read, watch, move or call, per robot and per name. The API, the SDK and every assistant ask the same table, and a refusal names the rule that refused.

Roles of the app warehouse_dash on robot amr-04
Exposed asobserveoperateshift_lead
battery_percentagereadreadread
camera_frontsnapshotsnapshot, livesnapshot, live
drive_tononestart, cancelstart, cancel
docknonestartstart, cancel
set_modenonenonecall

Every app starts with observe and operate. shift_lead is a role its developer added.

Three ways in. One set of rules.

Your app

REST and realtime, or the TypeScript SDK in the browser and in Node. Your login page, your name on it.

Their AI assistant

Switch on your app's MCP server. Your users add it to Claude, ChatGPT or Cursor and ask the robot directly.

Live camera

ROS image topics, RTSP, MJPEG or V4L2, live over WebRTC. One uplink per camera, however many people watch.

Made for the people who own the robot.

ROS on the robot, nothing else

The bridge has no shell, no HTTP server and no access to the system. It speaks ROS 2 on one side and Fleetless on the other.

Robot time, not server time

Every value carries the moment the bridge captured it, so a slow network never rewrites history.

Offline is an answer

A command to a robot that is offline is refused at once. Nothing waits in a queue to fire an hour later.

Hosted in Germany

Fleetless runs in Nuremberg and is GDPR-compliant. On Enterprise, it runs on your own servers.

Start free. Pay when it ships.

Basic0 €One robot, one app, ten users. Enough to try it on real hardware.Request access
Plus29 € / monthThree robots and apps, 25 users, MCP for your users, two-factor, your logo on the sign-in.See limits
Pro149 € / monthFive robots and apps, 50 users, 90 days of history, priority support.See limits
EnterpriseOn requestYour own instance or region, SSO and SCIM for your team, your domain on the sign-in, an SLA.Talk to us

Prices in EUR, excluding VAT. Paid plans are for companies; yearly billing saves 15 %.

Start with one robot.

Basic is free and needs no card. Leave your email and we write when your round opens.