Robot Web Tools' rclnodejs 2.0.0 brings typed Web SDK to ROS 2
Control robots from the browser with TypeScript and HTTP—no custom shims needed.
Get AI news that actually matters
One email a day. Zero fluff. Join 10,000+ professionals.
Robot Web Tools' rclnodejs 2.0.0, released May 25, 2026, brings a fully typed browser SDK to ROS 2, riding on the heels of the ROS 2 Lyrical Luth GA. The centerpiece is the `rclnodejs/web` module: a small runtime that lets a web page communicate with ROS 2 over a single WebSocket, with an identical API also reachable via plain HTTP for curl, Postman, and AI agents. The server (`npx rclnodejs-web`) enforces a capability model—only endpoints declared in a `web.json` file or on the CLI are exposed; anything else is rejected with code `'not_exposed'` before any ROS 2 API runs.
The SDK uses TypeScript generics to map ROS 2 type names (e.g., `example_interfaces/srv/AddTwoInts`) to typed request/reply shapes automatically. In the browser, five lines of code are enough to connect and make a typed service call. The client library is backward-compatible with the entire ROS 2 distro matrix (Humble, Jazzy, Kilted, Lyrical, Rolling) and runs on any Node.js ≥ 20.20.2, including 24.x and 26.x, thanks to N-API prebuilds for Linux x64 and arm64. This release also carries over the rosocket WebSocket gateway from the beta, making rclnodejs 2.0.0 a complete, production-ready bridge for web-based robot control.
- Typed browser SDK (rclnodejs/web) with TypeScript generics maps ROS 2 type names to request/reply shapes automatically.
- Capability runtime (npx rclnodejs-web) exposes only declared endpoints via web.json or CLI, rejecting unlisted calls with 'not_exposed' before any ROS 2 API runs.
- HTTP fallback on every capability allows curl, Postman, and AI agents to call services without custom adapters—supports ROS 2 Lyrical Luth and all Node.js ≥ 20.20.2.
Why It Matters
Enables browser-based ROS 2 control with type safety, simplifying robotic web apps and AI integration without custom middleware.