Repository Summary
| Description | |
| Checkout URI | https://github.com/styri-dev/styri.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-13 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| styri_bridge | 2.0.1 |
README
Styri
Styri — one offline operator panel for ROS 2 and VDA 5050 robots. See, send and stop a mixed fleet from any browser on site. No cloud, no account. Free for up to 3 robots.
Watch the 1-minute demo with sound. Simulated robots and site shown.
Quickstart
Run it on any Linux box on the robots’ network (amd64 or arm64):
docker run --rm --network host ghcr.io/styri-dev/styri-core:v2.0.1
Open http://<this machine’s IP>:8080. Host networking lets Styri see DDS discovery on your LAN. Open source: read the code before you run it.
A mixed fleet, no hardware? One ROS 2 robot and two VDA 5050 vehicles on one map, all simulated:
cd examples/mixed-fleet && docker compose up
The first run builds the simulated robots, which takes a few minutes. Open http://localhost:8080 and log in with styri-demo. docker compose down -v resets the demo, map edits included.
On a Mac? Run Styri on the robot or any Linux machine on its network, and open the panel from any browser, Mac included. Docker on macOS can’t see a robot on another machine, but the mixed-fleet demo runs there too.
What you get
- Mixed-fleet map — ROS 2 and VDA 5050 robots on one site map, each with its verdict and battery
- Command status — a goal shows Sent, Accepted, Running, Done, or why it failed, from what the robot reports
- Operator stop with confirmation — per robot or Stop all, then “Stopped”, “No reply from robot” or “Stop NOT confirmed”
-
Roles — viewer, operator and admin accounts, on the Users screen or with
styri users - Audit log — every command and refusal in a local append-only log
-
styri check— tests your config against the live robots and broker, PASS or FAIL per line
Control and safety
Control is off until an admin turns it on. Operator stop is a software stop, not a safety function. Read SAFETY.md before you turn control on.
Compatibility
docs/COMPATIBILITY.md lists what Styri supports. So far it has been tested against simulators only: Nav2’s loopback simulator, Styri’s own ROS 2 sim and vda-5050-lib’s virtual AGV, not a real vendor robot.
Editions
| Robots | Price | ||
|---|---|---|---|
| Core | Up to 3, one site | Free, open source (Apache-2.0) | You’re here |
| Pilot | Up to 20, one site | $360/month or $3,600/year | Buy or talk to us |
| Enterprise | More robots, multiple sites | Talk to us | Talk to us |
More than three robots? Styri Pilot is the public ghcr.io/styri-dev/styri-pro image plus a license file: docs/PILOT.md.
VDA 5050 bench
Free VDA 5050 bench: styri-vda-bench, an unofficial self-check.
Help
Guides: styri.dev/help. Something not showing up? See docs/TROUBLESHOOTING.md.
Setup
Deploying to a client fleet? We can set it up for you. Styri Setup or talk to us.
License
Apache-2.0. See LICENSE. Bundled third-party software is listed in NOTICE. Styri comes with no warranty and no safety certification: see SAFETY.md.
Nothing phones home
- Every asset is served locally: fonts, icons, scripts. No CDN.
- No telemetry, no license server, no account.
- Unplug the internet and it still works.
Verify it yourself:
sudo tcpdump -i any 'not net 10.0.0.0/8 and not net 172.16.0.0/12 and not net 192.168.0.0/16 and not host 127.0.0.1 and not net 224.0.0.0/4'
Nothing should appear while Styri runs. (DDS discovery uses LAN multicast, 224.0.0.0/4, which never leaves your network.)
How it works
ROS 2 nodes ──DDS──▶ Styri bridge ──local WebSocket──▶ Styri panel ──LAN──▶ any browser
│
└──▶ local activity log (SQLite)
One container: a small bridge subscribes to your ROS 2 topics and serves a static web panel. Nothing leaves the machine except to browsers on your LAN.
Configuration
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Description | |
| Checkout URI | https://github.com/styri-dev/styri.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-13 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| styri_bridge | 2.0.1 |
README
Styri
Styri — one offline operator panel for ROS 2 and VDA 5050 robots. See, send and stop a mixed fleet from any browser on site. No cloud, no account. Free for up to 3 robots.
Watch the 1-minute demo with sound. Simulated robots and site shown.
Quickstart
Run it on any Linux box on the robots’ network (amd64 or arm64):
docker run --rm --network host ghcr.io/styri-dev/styri-core:v2.0.1
Open http://<this machine’s IP>:8080. Host networking lets Styri see DDS discovery on your LAN. Open source: read the code before you run it.
A mixed fleet, no hardware? One ROS 2 robot and two VDA 5050 vehicles on one map, all simulated:
cd examples/mixed-fleet && docker compose up
The first run builds the simulated robots, which takes a few minutes. Open http://localhost:8080 and log in with styri-demo. docker compose down -v resets the demo, map edits included.
On a Mac? Run Styri on the robot or any Linux machine on its network, and open the panel from any browser, Mac included. Docker on macOS can’t see a robot on another machine, but the mixed-fleet demo runs there too.
What you get
- Mixed-fleet map — ROS 2 and VDA 5050 robots on one site map, each with its verdict and battery
- Command status — a goal shows Sent, Accepted, Running, Done, or why it failed, from what the robot reports
- Operator stop with confirmation — per robot or Stop all, then “Stopped”, “No reply from robot” or “Stop NOT confirmed”
-
Roles — viewer, operator and admin accounts, on the Users screen or with
styri users - Audit log — every command and refusal in a local append-only log
-
styri check— tests your config against the live robots and broker, PASS or FAIL per line
Control and safety
Control is off until an admin turns it on. Operator stop is a software stop, not a safety function. Read SAFETY.md before you turn control on.
Compatibility
docs/COMPATIBILITY.md lists what Styri supports. So far it has been tested against simulators only: Nav2’s loopback simulator, Styri’s own ROS 2 sim and vda-5050-lib’s virtual AGV, not a real vendor robot.
Editions
| Robots | Price | ||
|---|---|---|---|
| Core | Up to 3, one site | Free, open source (Apache-2.0) | You’re here |
| Pilot | Up to 20, one site | $360/month or $3,600/year | Buy or talk to us |
| Enterprise | More robots, multiple sites | Talk to us | Talk to us |
More than three robots? Styri Pilot is the public ghcr.io/styri-dev/styri-pro image plus a license file: docs/PILOT.md.
VDA 5050 bench
Free VDA 5050 bench: styri-vda-bench, an unofficial self-check.
Help
Guides: styri.dev/help. Something not showing up? See docs/TROUBLESHOOTING.md.
Setup
Deploying to a client fleet? We can set it up for you. Styri Setup or talk to us.
License
Apache-2.0. See LICENSE. Bundled third-party software is listed in NOTICE. Styri comes with no warranty and no safety certification: see SAFETY.md.
Nothing phones home
- Every asset is served locally: fonts, icons, scripts. No CDN.
- No telemetry, no license server, no account.
- Unplug the internet and it still works.
Verify it yourself:
sudo tcpdump -i any 'not net 10.0.0.0/8 and not net 172.16.0.0/12 and not net 192.168.0.0/16 and not host 127.0.0.1 and not net 224.0.0.0/4'
Nothing should appear while Styri runs. (DDS discovery uses LAN multicast, 224.0.0.0/4, which never leaves your network.)
How it works
ROS 2 nodes ──DDS──▶ Styri bridge ──local WebSocket──▶ Styri panel ──LAN──▶ any browser
│
└──▶ local activity log (SQLite)
One container: a small bridge subscribes to your ROS 2 topics and serves a static web panel. Nothing leaves the machine except to browsers on your LAN.
Configuration
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Description | |
| Checkout URI | https://github.com/styri-dev/styri.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-13 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| styri_bridge | 2.0.1 |
README
Styri
Styri — one offline operator panel for ROS 2 and VDA 5050 robots. See, send and stop a mixed fleet from any browser on site. No cloud, no account. Free for up to 3 robots.
Watch the 1-minute demo with sound. Simulated robots and site shown.
Quickstart
Run it on any Linux box on the robots’ network (amd64 or arm64):
docker run --rm --network host ghcr.io/styri-dev/styri-core:v2.0.1
Open http://<this machine’s IP>:8080. Host networking lets Styri see DDS discovery on your LAN. Open source: read the code before you run it.
A mixed fleet, no hardware? One ROS 2 robot and two VDA 5050 vehicles on one map, all simulated:
cd examples/mixed-fleet && docker compose up
The first run builds the simulated robots, which takes a few minutes. Open http://localhost:8080 and log in with styri-demo. docker compose down -v resets the demo, map edits included.
On a Mac? Run Styri on the robot or any Linux machine on its network, and open the panel from any browser, Mac included. Docker on macOS can’t see a robot on another machine, but the mixed-fleet demo runs there too.
What you get
- Mixed-fleet map — ROS 2 and VDA 5050 robots on one site map, each with its verdict and battery
- Command status — a goal shows Sent, Accepted, Running, Done, or why it failed, from what the robot reports
- Operator stop with confirmation — per robot or Stop all, then “Stopped”, “No reply from robot” or “Stop NOT confirmed”
-
Roles — viewer, operator and admin accounts, on the Users screen or with
styri users - Audit log — every command and refusal in a local append-only log
-
styri check— tests your config against the live robots and broker, PASS or FAIL per line
Control and safety
Control is off until an admin turns it on. Operator stop is a software stop, not a safety function. Read SAFETY.md before you turn control on.
Compatibility
docs/COMPATIBILITY.md lists what Styri supports. So far it has been tested against simulators only: Nav2’s loopback simulator, Styri’s own ROS 2 sim and vda-5050-lib’s virtual AGV, not a real vendor robot.
Editions
| Robots | Price | ||
|---|---|---|---|
| Core | Up to 3, one site | Free, open source (Apache-2.0) | You’re here |
| Pilot | Up to 20, one site | $360/month or $3,600/year | Buy or talk to us |
| Enterprise | More robots, multiple sites | Talk to us | Talk to us |
More than three robots? Styri Pilot is the public ghcr.io/styri-dev/styri-pro image plus a license file: docs/PILOT.md.
VDA 5050 bench
Free VDA 5050 bench: styri-vda-bench, an unofficial self-check.
Help
Guides: styri.dev/help. Something not showing up? See docs/TROUBLESHOOTING.md.
Setup
Deploying to a client fleet? We can set it up for you. Styri Setup or talk to us.
License
Apache-2.0. See LICENSE. Bundled third-party software is listed in NOTICE. Styri comes with no warranty and no safety certification: see SAFETY.md.
Nothing phones home
- Every asset is served locally: fonts, icons, scripts. No CDN.
- No telemetry, no license server, no account.
- Unplug the internet and it still works.
Verify it yourself:
sudo tcpdump -i any 'not net 10.0.0.0/8 and not net 172.16.0.0/12 and not net 192.168.0.0/16 and not host 127.0.0.1 and not net 224.0.0.0/4'
Nothing should appear while Styri runs. (DDS discovery uses LAN multicast, 224.0.0.0/4, which never leaves your network.)
How it works
ROS 2 nodes ──DDS──▶ Styri bridge ──local WebSocket──▶ Styri panel ──LAN──▶ any browser
│
└──▶ local activity log (SQLite)
One container: a small bridge subscribes to your ROS 2 topics and serves a static web panel. Nothing leaves the machine except to browsers on your LAN.
Configuration
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Description | |
| Checkout URI | https://github.com/styri-dev/styri.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-13 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| styri_bridge | 2.0.1 |
README
Styri
Styri — one offline operator panel for ROS 2 and VDA 5050 robots. See, send and stop a mixed fleet from any browser on site. No cloud, no account. Free for up to 3 robots.
Watch the 1-minute demo with sound. Simulated robots and site shown.
Quickstart
Run it on any Linux box on the robots’ network (amd64 or arm64):
docker run --rm --network host ghcr.io/styri-dev/styri-core:v2.0.1
Open http://<this machine’s IP>:8080. Host networking lets Styri see DDS discovery on your LAN. Open source: read the code before you run it.
A mixed fleet, no hardware? One ROS 2 robot and two VDA 5050 vehicles on one map, all simulated:
cd examples/mixed-fleet && docker compose up
The first run builds the simulated robots, which takes a few minutes. Open http://localhost:8080 and log in with styri-demo. docker compose down -v resets the demo, map edits included.
On a Mac? Run Styri on the robot or any Linux machine on its network, and open the panel from any browser, Mac included. Docker on macOS can’t see a robot on another machine, but the mixed-fleet demo runs there too.
What you get
- Mixed-fleet map — ROS 2 and VDA 5050 robots on one site map, each with its verdict and battery
- Command status — a goal shows Sent, Accepted, Running, Done, or why it failed, from what the robot reports
- Operator stop with confirmation — per robot or Stop all, then “Stopped”, “No reply from robot” or “Stop NOT confirmed”
-
Roles — viewer, operator and admin accounts, on the Users screen or with
styri users - Audit log — every command and refusal in a local append-only log
-
styri check— tests your config against the live robots and broker, PASS or FAIL per line
Control and safety
Control is off until an admin turns it on. Operator stop is a software stop, not a safety function. Read SAFETY.md before you turn control on.
Compatibility
docs/COMPATIBILITY.md lists what Styri supports. So far it has been tested against simulators only: Nav2’s loopback simulator, Styri’s own ROS 2 sim and vda-5050-lib’s virtual AGV, not a real vendor robot.
Editions
| Robots | Price | ||
|---|---|---|---|
| Core | Up to 3, one site | Free, open source (Apache-2.0) | You’re here |
| Pilot | Up to 20, one site | $360/month or $3,600/year | Buy or talk to us |
| Enterprise | More robots, multiple sites | Talk to us | Talk to us |
More than three robots? Styri Pilot is the public ghcr.io/styri-dev/styri-pro image plus a license file: docs/PILOT.md.
VDA 5050 bench
Free VDA 5050 bench: styri-vda-bench, an unofficial self-check.
Help
Guides: styri.dev/help. Something not showing up? See docs/TROUBLESHOOTING.md.
Setup
Deploying to a client fleet? We can set it up for you. Styri Setup or talk to us.
License
Apache-2.0. See LICENSE. Bundled third-party software is listed in NOTICE. Styri comes with no warranty and no safety certification: see SAFETY.md.
Nothing phones home
- Every asset is served locally: fonts, icons, scripts. No CDN.
- No telemetry, no license server, no account.
- Unplug the internet and it still works.
Verify it yourself:
sudo tcpdump -i any 'not net 10.0.0.0/8 and not net 172.16.0.0/12 and not net 192.168.0.0/16 and not host 127.0.0.1 and not net 224.0.0.0/4'
Nothing should appear while Styri runs. (DDS discovery uses LAN multicast, 224.0.0.0/4, which never leaves your network.)
How it works
ROS 2 nodes ──DDS──▶ Styri bridge ──local WebSocket──▶ Styri panel ──LAN──▶ any browser
│
└──▶ local activity log (SQLite)
One container: a small bridge subscribes to your ROS 2 topics and serves a static web panel. Nothing leaves the machine except to browsers on your LAN.
Configuration
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Description | |
| Checkout URI | https://github.com/styri-dev/styri.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-13 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| styri_bridge | 2.0.1 |
README
Styri
Styri — one offline operator panel for ROS 2 and VDA 5050 robots. See, send and stop a mixed fleet from any browser on site. No cloud, no account. Free for up to 3 robots.
Watch the 1-minute demo with sound. Simulated robots and site shown.
Quickstart
Run it on any Linux box on the robots’ network (amd64 or arm64):
docker run --rm --network host ghcr.io/styri-dev/styri-core:v2.0.1
Open http://<this machine’s IP>:8080. Host networking lets Styri see DDS discovery on your LAN. Open source: read the code before you run it.
A mixed fleet, no hardware? One ROS 2 robot and two VDA 5050 vehicles on one map, all simulated:
cd examples/mixed-fleet && docker compose up
The first run builds the simulated robots, which takes a few minutes. Open http://localhost:8080 and log in with styri-demo. docker compose down -v resets the demo, map edits included.
On a Mac? Run Styri on the robot or any Linux machine on its network, and open the panel from any browser, Mac included. Docker on macOS can’t see a robot on another machine, but the mixed-fleet demo runs there too.
What you get
- Mixed-fleet map — ROS 2 and VDA 5050 robots on one site map, each with its verdict and battery
- Command status — a goal shows Sent, Accepted, Running, Done, or why it failed, from what the robot reports
- Operator stop with confirmation — per robot or Stop all, then “Stopped”, “No reply from robot” or “Stop NOT confirmed”
-
Roles — viewer, operator and admin accounts, on the Users screen or with
styri users - Audit log — every command and refusal in a local append-only log
-
styri check— tests your config against the live robots and broker, PASS or FAIL per line
Control and safety
Control is off until an admin turns it on. Operator stop is a software stop, not a safety function. Read SAFETY.md before you turn control on.
Compatibility
docs/COMPATIBILITY.md lists what Styri supports. So far it has been tested against simulators only: Nav2’s loopback simulator, Styri’s own ROS 2 sim and vda-5050-lib’s virtual AGV, not a real vendor robot.
Editions
| Robots | Price | ||
|---|---|---|---|
| Core | Up to 3, one site | Free, open source (Apache-2.0) | You’re here |
| Pilot | Up to 20, one site | $360/month or $3,600/year | Buy or talk to us |
| Enterprise | More robots, multiple sites | Talk to us | Talk to us |
More than three robots? Styri Pilot is the public ghcr.io/styri-dev/styri-pro image plus a license file: docs/PILOT.md.
VDA 5050 bench
Free VDA 5050 bench: styri-vda-bench, an unofficial self-check.
Help
Guides: styri.dev/help. Something not showing up? See docs/TROUBLESHOOTING.md.
Setup
Deploying to a client fleet? We can set it up for you. Styri Setup or talk to us.
License
Apache-2.0. See LICENSE. Bundled third-party software is listed in NOTICE. Styri comes with no warranty and no safety certification: see SAFETY.md.
Nothing phones home
- Every asset is served locally: fonts, icons, scripts. No CDN.
- No telemetry, no license server, no account.
- Unplug the internet and it still works.
Verify it yourself:
sudo tcpdump -i any 'not net 10.0.0.0/8 and not net 172.16.0.0/12 and not net 192.168.0.0/16 and not host 127.0.0.1 and not net 224.0.0.0/4'
Nothing should appear while Styri runs. (DDS discovery uses LAN multicast, 224.0.0.0/4, which never leaves your network.)
How it works
ROS 2 nodes ──DDS──▶ Styri bridge ──local WebSocket──▶ Styri panel ──LAN──▶ any browser
│
└──▶ local activity log (SQLite)
One container: a small bridge subscribes to your ROS 2 topics and serves a static web panel. Nothing leaves the machine except to browsers on your LAN.
Configuration
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Description | |
| Checkout URI | https://github.com/styri-dev/styri.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-13 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| styri_bridge | 2.0.1 |
README
Styri
Styri — one offline operator panel for ROS 2 and VDA 5050 robots. See, send and stop a mixed fleet from any browser on site. No cloud, no account. Free for up to 3 robots.
Watch the 1-minute demo with sound. Simulated robots and site shown.
Quickstart
Run it on any Linux box on the robots’ network (amd64 or arm64):
docker run --rm --network host ghcr.io/styri-dev/styri-core:v2.0.1
Open http://<this machine’s IP>:8080. Host networking lets Styri see DDS discovery on your LAN. Open source: read the code before you run it.
A mixed fleet, no hardware? One ROS 2 robot and two VDA 5050 vehicles on one map, all simulated:
cd examples/mixed-fleet && docker compose up
The first run builds the simulated robots, which takes a few minutes. Open http://localhost:8080 and log in with styri-demo. docker compose down -v resets the demo, map edits included.
On a Mac? Run Styri on the robot or any Linux machine on its network, and open the panel from any browser, Mac included. Docker on macOS can’t see a robot on another machine, but the mixed-fleet demo runs there too.
What you get
- Mixed-fleet map — ROS 2 and VDA 5050 robots on one site map, each with its verdict and battery
- Command status — a goal shows Sent, Accepted, Running, Done, or why it failed, from what the robot reports
- Operator stop with confirmation — per robot or Stop all, then “Stopped”, “No reply from robot” or “Stop NOT confirmed”
-
Roles — viewer, operator and admin accounts, on the Users screen or with
styri users - Audit log — every command and refusal in a local append-only log
-
styri check— tests your config against the live robots and broker, PASS or FAIL per line
Control and safety
Control is off until an admin turns it on. Operator stop is a software stop, not a safety function. Read SAFETY.md before you turn control on.
Compatibility
docs/COMPATIBILITY.md lists what Styri supports. So far it has been tested against simulators only: Nav2’s loopback simulator, Styri’s own ROS 2 sim and vda-5050-lib’s virtual AGV, not a real vendor robot.
Editions
| Robots | Price | ||
|---|---|---|---|
| Core | Up to 3, one site | Free, open source (Apache-2.0) | You’re here |
| Pilot | Up to 20, one site | $360/month or $3,600/year | Buy or talk to us |
| Enterprise | More robots, multiple sites | Talk to us | Talk to us |
More than three robots? Styri Pilot is the public ghcr.io/styri-dev/styri-pro image plus a license file: docs/PILOT.md.
VDA 5050 bench
Free VDA 5050 bench: styri-vda-bench, an unofficial self-check.
Help
Guides: styri.dev/help. Something not showing up? See docs/TROUBLESHOOTING.md.
Setup
Deploying to a client fleet? We can set it up for you. Styri Setup or talk to us.
License
Apache-2.0. See LICENSE. Bundled third-party software is listed in NOTICE. Styri comes with no warranty and no safety certification: see SAFETY.md.
Nothing phones home
- Every asset is served locally: fonts, icons, scripts. No CDN.
- No telemetry, no license server, no account.
- Unplug the internet and it still works.
Verify it yourself:
sudo tcpdump -i any 'not net 10.0.0.0/8 and not net 172.16.0.0/12 and not net 192.168.0.0/16 and not host 127.0.0.1 and not net 224.0.0.0/4'
Nothing should appear while Styri runs. (DDS discovery uses LAN multicast, 224.0.0.0/4, which never leaves your network.)
How it works
ROS 2 nodes ──DDS──▶ Styri bridge ──local WebSocket──▶ Styri panel ──LAN──▶ any browser
│
└──▶ local activity log (SQLite)
One container: a small bridge subscribes to your ROS 2 topics and serves a static web panel. Nothing leaves the machine except to browsers on your LAN.
Configuration
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Description | |
| Checkout URI | https://github.com/styri-dev/styri.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-13 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| styri_bridge | 2.0.1 |
README
Styri
Styri — one offline operator panel for ROS 2 and VDA 5050 robots. See, send and stop a mixed fleet from any browser on site. No cloud, no account. Free for up to 3 robots.
Watch the 1-minute demo with sound. Simulated robots and site shown.
Quickstart
Run it on any Linux box on the robots’ network (amd64 or arm64):
docker run --rm --network host ghcr.io/styri-dev/styri-core:v2.0.1
Open http://<this machine’s IP>:8080. Host networking lets Styri see DDS discovery on your LAN. Open source: read the code before you run it.
A mixed fleet, no hardware? One ROS 2 robot and two VDA 5050 vehicles on one map, all simulated:
cd examples/mixed-fleet && docker compose up
The first run builds the simulated robots, which takes a few minutes. Open http://localhost:8080 and log in with styri-demo. docker compose down -v resets the demo, map edits included.
On a Mac? Run Styri on the robot or any Linux machine on its network, and open the panel from any browser, Mac included. Docker on macOS can’t see a robot on another machine, but the mixed-fleet demo runs there too.
What you get
- Mixed-fleet map — ROS 2 and VDA 5050 robots on one site map, each with its verdict and battery
- Command status — a goal shows Sent, Accepted, Running, Done, or why it failed, from what the robot reports
- Operator stop with confirmation — per robot or Stop all, then “Stopped”, “No reply from robot” or “Stop NOT confirmed”
-
Roles — viewer, operator and admin accounts, on the Users screen or with
styri users - Audit log — every command and refusal in a local append-only log
-
styri check— tests your config against the live robots and broker, PASS or FAIL per line
Control and safety
Control is off until an admin turns it on. Operator stop is a software stop, not a safety function. Read SAFETY.md before you turn control on.
Compatibility
docs/COMPATIBILITY.md lists what Styri supports. So far it has been tested against simulators only: Nav2’s loopback simulator, Styri’s own ROS 2 sim and vda-5050-lib’s virtual AGV, not a real vendor robot.
Editions
| Robots | Price | ||
|---|---|---|---|
| Core | Up to 3, one site | Free, open source (Apache-2.0) | You’re here |
| Pilot | Up to 20, one site | $360/month or $3,600/year | Buy or talk to us |
| Enterprise | More robots, multiple sites | Talk to us | Talk to us |
More than three robots? Styri Pilot is the public ghcr.io/styri-dev/styri-pro image plus a license file: docs/PILOT.md.
VDA 5050 bench
Free VDA 5050 bench: styri-vda-bench, an unofficial self-check.
Help
Guides: styri.dev/help. Something not showing up? See docs/TROUBLESHOOTING.md.
Setup
Deploying to a client fleet? We can set it up for you. Styri Setup or talk to us.
License
Apache-2.0. See LICENSE. Bundled third-party software is listed in NOTICE. Styri comes with no warranty and no safety certification: see SAFETY.md.
Nothing phones home
- Every asset is served locally: fonts, icons, scripts. No CDN.
- No telemetry, no license server, no account.
- Unplug the internet and it still works.
Verify it yourself:
sudo tcpdump -i any 'not net 10.0.0.0/8 and not net 172.16.0.0/12 and not net 192.168.0.0/16 and not host 127.0.0.1 and not net 224.0.0.0/4'
Nothing should appear while Styri runs. (DDS discovery uses LAN multicast, 224.0.0.0/4, which never leaves your network.)
How it works
ROS 2 nodes ──DDS──▶ Styri bridge ──local WebSocket──▶ Styri panel ──LAN──▶ any browser
│
└──▶ local activity log (SQLite)
One container: a small bridge subscribes to your ROS 2 topics and serves a static web panel. Nothing leaves the machine except to browsers on your LAN.
Configuration
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Description | |
| Checkout URI | https://github.com/styri-dev/styri.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-13 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| styri_bridge | 2.0.1 |
README
Styri
Styri — one offline operator panel for ROS 2 and VDA 5050 robots. See, send and stop a mixed fleet from any browser on site. No cloud, no account. Free for up to 3 robots.
Watch the 1-minute demo with sound. Simulated robots and site shown.
Quickstart
Run it on any Linux box on the robots’ network (amd64 or arm64):
docker run --rm --network host ghcr.io/styri-dev/styri-core:v2.0.1
Open http://<this machine’s IP>:8080. Host networking lets Styri see DDS discovery on your LAN. Open source: read the code before you run it.
A mixed fleet, no hardware? One ROS 2 robot and two VDA 5050 vehicles on one map, all simulated:
cd examples/mixed-fleet && docker compose up
The first run builds the simulated robots, which takes a few minutes. Open http://localhost:8080 and log in with styri-demo. docker compose down -v resets the demo, map edits included.
On a Mac? Run Styri on the robot or any Linux machine on its network, and open the panel from any browser, Mac included. Docker on macOS can’t see a robot on another machine, but the mixed-fleet demo runs there too.
What you get
- Mixed-fleet map — ROS 2 and VDA 5050 robots on one site map, each with its verdict and battery
- Command status — a goal shows Sent, Accepted, Running, Done, or why it failed, from what the robot reports
- Operator stop with confirmation — per robot or Stop all, then “Stopped”, “No reply from robot” or “Stop NOT confirmed”
-
Roles — viewer, operator and admin accounts, on the Users screen or with
styri users - Audit log — every command and refusal in a local append-only log
-
styri check— tests your config against the live robots and broker, PASS or FAIL per line
Control and safety
Control is off until an admin turns it on. Operator stop is a software stop, not a safety function. Read SAFETY.md before you turn control on.
Compatibility
docs/COMPATIBILITY.md lists what Styri supports. So far it has been tested against simulators only: Nav2’s loopback simulator, Styri’s own ROS 2 sim and vda-5050-lib’s virtual AGV, not a real vendor robot.
Editions
| Robots | Price | ||
|---|---|---|---|
| Core | Up to 3, one site | Free, open source (Apache-2.0) | You’re here |
| Pilot | Up to 20, one site | $360/month or $3,600/year | Buy or talk to us |
| Enterprise | More robots, multiple sites | Talk to us | Talk to us |
More than three robots? Styri Pilot is the public ghcr.io/styri-dev/styri-pro image plus a license file: docs/PILOT.md.
VDA 5050 bench
Free VDA 5050 bench: styri-vda-bench, an unofficial self-check.
Help
Guides: styri.dev/help. Something not showing up? See docs/TROUBLESHOOTING.md.
Setup
Deploying to a client fleet? We can set it up for you. Styri Setup or talk to us.
License
Apache-2.0. See LICENSE. Bundled third-party software is listed in NOTICE. Styri comes with no warranty and no safety certification: see SAFETY.md.
Nothing phones home
- Every asset is served locally: fonts, icons, scripts. No CDN.
- No telemetry, no license server, no account.
- Unplug the internet and it still works.
Verify it yourself:
sudo tcpdump -i any 'not net 10.0.0.0/8 and not net 172.16.0.0/12 and not net 192.168.0.0/16 and not host 127.0.0.1 and not net 224.0.0.0/4'
Nothing should appear while Styri runs. (DDS discovery uses LAN multicast, 224.0.0.0/4, which never leaves your network.)
How it works
ROS 2 nodes ──DDS──▶ Styri bridge ──local WebSocket──▶ Styri panel ──LAN──▶ any browser
│
└──▶ local activity log (SQLite)
One container: a small bridge subscribes to your ROS 2 topics and serves a static web panel. Nothing leaves the machine except to browsers on your LAN.
Configuration
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Description | |
| Checkout URI | https://github.com/styri-dev/styri.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-13 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| styri_bridge | 2.0.1 |
README
Styri
Styri — one offline operator panel for ROS 2 and VDA 5050 robots. See, send and stop a mixed fleet from any browser on site. No cloud, no account. Free for up to 3 robots.
Watch the 1-minute demo with sound. Simulated robots and site shown.
Quickstart
Run it on any Linux box on the robots’ network (amd64 or arm64):
docker run --rm --network host ghcr.io/styri-dev/styri-core:v2.0.1
Open http://<this machine’s IP>:8080. Host networking lets Styri see DDS discovery on your LAN. Open source: read the code before you run it.
A mixed fleet, no hardware? One ROS 2 robot and two VDA 5050 vehicles on one map, all simulated:
cd examples/mixed-fleet && docker compose up
The first run builds the simulated robots, which takes a few minutes. Open http://localhost:8080 and log in with styri-demo. docker compose down -v resets the demo, map edits included.
On a Mac? Run Styri on the robot or any Linux machine on its network, and open the panel from any browser, Mac included. Docker on macOS can’t see a robot on another machine, but the mixed-fleet demo runs there too.
What you get
- Mixed-fleet map — ROS 2 and VDA 5050 robots on one site map, each with its verdict and battery
- Command status — a goal shows Sent, Accepted, Running, Done, or why it failed, from what the robot reports
- Operator stop with confirmation — per robot or Stop all, then “Stopped”, “No reply from robot” or “Stop NOT confirmed”
-
Roles — viewer, operator and admin accounts, on the Users screen or with
styri users - Audit log — every command and refusal in a local append-only log
-
styri check— tests your config against the live robots and broker, PASS or FAIL per line
Control and safety
Control is off until an admin turns it on. Operator stop is a software stop, not a safety function. Read SAFETY.md before you turn control on.
Compatibility
docs/COMPATIBILITY.md lists what Styri supports. So far it has been tested against simulators only: Nav2’s loopback simulator, Styri’s own ROS 2 sim and vda-5050-lib’s virtual AGV, not a real vendor robot.
Editions
| Robots | Price | ||
|---|---|---|---|
| Core | Up to 3, one site | Free, open source (Apache-2.0) | You’re here |
| Pilot | Up to 20, one site | $360/month or $3,600/year | Buy or talk to us |
| Enterprise | More robots, multiple sites | Talk to us | Talk to us |
More than three robots? Styri Pilot is the public ghcr.io/styri-dev/styri-pro image plus a license file: docs/PILOT.md.
VDA 5050 bench
Free VDA 5050 bench: styri-vda-bench, an unofficial self-check.
Help
Guides: styri.dev/help. Something not showing up? See docs/TROUBLESHOOTING.md.
Setup
Deploying to a client fleet? We can set it up for you. Styri Setup or talk to us.
License
Apache-2.0. See LICENSE. Bundled third-party software is listed in NOTICE. Styri comes with no warranty and no safety certification: see SAFETY.md.
Nothing phones home
- Every asset is served locally: fonts, icons, scripts. No CDN.
- No telemetry, no license server, no account.
- Unplug the internet and it still works.
Verify it yourself:
sudo tcpdump -i any 'not net 10.0.0.0/8 and not net 172.16.0.0/12 and not net 192.168.0.0/16 and not host 127.0.0.1 and not net 224.0.0.0/4'
Nothing should appear while Styri runs. (DDS discovery uses LAN multicast, 224.0.0.0/4, which never leaves your network.)
How it works
ROS 2 nodes ──DDS──▶ Styri bridge ──local WebSocket──▶ Styri panel ──LAN──▶ any browser
│
└──▶ local activity log (SQLite)
One container: a small bridge subscribes to your ROS 2 topics and serves a static web panel. Nothing leaves the machine except to browsers on your LAN.
Configuration
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Description | |
| Checkout URI | https://github.com/styri-dev/styri.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-13 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
| Name | Version |
|---|---|
| styri_bridge | 2.0.1 |
README
Styri
Styri — one offline operator panel for ROS 2 and VDA 5050 robots. See, send and stop a mixed fleet from any browser on site. No cloud, no account. Free for up to 3 robots.
Watch the 1-minute demo with sound. Simulated robots and site shown.
Quickstart
Run it on any Linux box on the robots’ network (amd64 or arm64):
docker run --rm --network host ghcr.io/styri-dev/styri-core:v2.0.1
Open http://<this machine’s IP>:8080. Host networking lets Styri see DDS discovery on your LAN. Open source: read the code before you run it.
A mixed fleet, no hardware? One ROS 2 robot and two VDA 5050 vehicles on one map, all simulated:
cd examples/mixed-fleet && docker compose up
The first run builds the simulated robots, which takes a few minutes. Open http://localhost:8080 and log in with styri-demo. docker compose down -v resets the demo, map edits included.
On a Mac? Run Styri on the robot or any Linux machine on its network, and open the panel from any browser, Mac included. Docker on macOS can’t see a robot on another machine, but the mixed-fleet demo runs there too.
What you get
- Mixed-fleet map — ROS 2 and VDA 5050 robots on one site map, each with its verdict and battery
- Command status — a goal shows Sent, Accepted, Running, Done, or why it failed, from what the robot reports
- Operator stop with confirmation — per robot or Stop all, then “Stopped”, “No reply from robot” or “Stop NOT confirmed”
-
Roles — viewer, operator and admin accounts, on the Users screen or with
styri users - Audit log — every command and refusal in a local append-only log
-
styri check— tests your config against the live robots and broker, PASS or FAIL per line
Control and safety
Control is off until an admin turns it on. Operator stop is a software stop, not a safety function. Read SAFETY.md before you turn control on.
Compatibility
docs/COMPATIBILITY.md lists what Styri supports. So far it has been tested against simulators only: Nav2’s loopback simulator, Styri’s own ROS 2 sim and vda-5050-lib’s virtual AGV, not a real vendor robot.
Editions
| Robots | Price | ||
|---|---|---|---|
| Core | Up to 3, one site | Free, open source (Apache-2.0) | You’re here |
| Pilot | Up to 20, one site | $360/month or $3,600/year | Buy or talk to us |
| Enterprise | More robots, multiple sites | Talk to us | Talk to us |
More than three robots? Styri Pilot is the public ghcr.io/styri-dev/styri-pro image plus a license file: docs/PILOT.md.
VDA 5050 bench
Free VDA 5050 bench: styri-vda-bench, an unofficial self-check.
Help
Guides: styri.dev/help. Something not showing up? See docs/TROUBLESHOOTING.md.
Setup
Deploying to a client fleet? We can set it up for you. Styri Setup or talk to us.
License
Apache-2.0. See LICENSE. Bundled third-party software is listed in NOTICE. Styri comes with no warranty and no safety certification: see SAFETY.md.
Nothing phones home
- Every asset is served locally: fonts, icons, scripts. No CDN.
- No telemetry, no license server, no account.
- Unplug the internet and it still works.
Verify it yourself:
sudo tcpdump -i any 'not net 10.0.0.0/8 and not net 172.16.0.0/12 and not net 192.168.0.0/16 and not host 127.0.0.1 and not net 224.0.0.0/4'
Nothing should appear while Styri runs. (DDS discovery uses LAN multicast, 224.0.0.0/4, which never leaves your network.)
How it works
ROS 2 nodes ──DDS──▶ Styri bridge ──local WebSocket──▶ Styri panel ──LAN──▶ any browser
│
└──▶ local activity log (SQLite)
One container: a small bridge subscribes to your ROS 2 topics and serves a static web panel. Nothing leaves the machine except to browsers on your LAN.
Configuration
File truncated at 100 lines see the full file
