Ports, sockets and environment variables
On this page
- Unix sockets
- TCP ports
- Dev stack (dev-stack.sh)
- rt-control and installed units
- Offline programming server
- Weld planner
- Virtual pendant
This page lists the defaults from the code. Hosts are shown as they are bound. Replace rosie.local with your cell host where a remote address is meant.
Unix sockets#
| Socket | Default path | Owner | Public? |
| Native core IPC | /run/rosie-rt-core/ipc.sock (rt-control --core-socket, rtctl run --socket). Installed units use /run/rosie-rt-core/native/ipc.sock. | rosie-rt-core | No. Private between the core and rt-control. |
| Control API | /run/rosie-rt-core/control.sock (rt-control --socket, rtctl --socket). Installed units create it at /run/rosie-rt-core/public/control.sock, with a symlink at the default path. | rt-control | Yes. HTTP/JSON. |
| Jog lane | jog.sock in the same directory as control.sock | rt-control | Yes. 224-byte datagrams. |
| Dev-stack sockets | $ROSIE_LOCAL_RT_DIR/{ipc,control,jog}.sock, default ${XDG_RUNTIME_DIR:-${TMPDIR:-/tmp}}/rosie-dev-rt-$UID/ | dev-stack.sh | Local only |
Unix sockets must be on a Linux filesystem. Under WSL, /mnt/c does not work.
TCP ports#
| Port | Service | Default bind | Notes |
| 8443 | rt-control mutual-TLS listener | Off unless --remote-listen is set. Cell configs pin 127.0.0.1:8443. | Remote HTTP API and WebSocket jog. Requires a CA, server certificate and key, and a CRL. |
| 8794 | OLP server | 127.0.0.1:8794 (serve --listen, launcher OLP_LISTEN) | API under /api/offline-programming/v1/ |
| 5189 | OLP UI (Vite) | 127.0.0.1, or 0.0.0.0 under dev-stack when a Tailscale address is found | App at /offline-programming/v1/ui/. It proxies /api to the OLP server. |
| 8796 | Weld planner motion server | 0.0.0.0:8796 (--host, --port) | Listens on all interfaces by default. Pass --host 127.0.0.1 on an untrusted network. |
| 8797 | Dense trajectory daemon ingest | 127.0.0.1:8797 | Length-framed TCP, one request per connection |
| 51711 | Virtual pendant UI (Vite) | 127.0.0.1 | Page at /steamdeck/virtual/v1/ |
| 51712 | Virtual pendant bridge | 127.0.0.1 (must be loopback) | /healthz, /api/v1/* |
| 14222, 18222 | NATS server (dev stack only) | 127.0.0.1 | Client and monitoring ports |
| 8787 | Program catalog and daemon state (optional) | — | Not part of this repository's public path. The dev-stack catalog service is skipped unless you supply its script. |
The Cartesian motion server listens for UDP intent packets only on the address you pass with --udp-listen HOST:PORT. It has no default port. Its status file defaults to /run/robot-v4-cartesian/status.json.
Dev stack (dev-stack.sh)#
| Variable | Default | Effect |
ROSIE_DEV_STACK_DIR | $RUN_BASE/rosie-stack-$UID | Pid files, logs and readiness files. RUN_BASE is $XDG_RUNTIME_DIR, else $TMPDIR, else /tmp. |
ROSIE_LOCAL_RT_DIR | $RUN_BASE/rosie-dev-rt-$UID | Simulator and rt-control sockets |
ROSIE_LOCAL_RT_BUILD | rt-core/build/dev-stack | Compiled config and consumer bindings |
DEV_STACK_BACKEND | rt_core | The only accepted value. Anything else exits with backend_retired. |
DEV_STACK_MACHINE_CONFIG | rt-core/config/machines/simulation/simulation-program.json | The simulated machine, read by local-rt-core.sh prepare |
DEV_STACK_UI_HOST | 127.0.0.1; 0.0.0.0 if Tailscale is up | UI bind host |
DEV_STACK_UI_MODE | dev; built if Tailscale is up | dev (hot reload) or built (compressed bundle) |
DEV_STACK_FIREWALL | 1 | 0 skips adding a ufw rule for remote UI access |
DEV_STACK_PENDANT_PORT | 51712 | Virtual pendant bridge port |
DEV_STACK_DENSE_INGEST | 127.0.0.1:8797 | Dense daemon listen address |
DEV_STACK_DENSE_NATS_URL | nats://127.0.0.1:14222 | Dense daemon NATS URL |
DEV_STACK_DENSE_BIN_DIR | make -C motion-server/joint-trajectory/v1 print-bin-dir (rt-core/build/dense) | Where the dense daemon binary is |
DEV_STACK_NATS_BIN | ~/.rosie/bin/nats-server | NATS server binary |
DEV_STACK_OLP_CELLS | unset | A cell catalogue file (offline-programming.cell-catalogue.v1). Its cells are added after the local simulation. |
DEV_STACK_OLP_REMOTE | unset | A remote rt-core binding file for OLP. Its address must be https://. |
CATALOG_DAEMON_SCRIPT | ~/.cache/rosieos-olp/catalog-daemon/start-catalog-daemon.sh | Start script for the optional catalog service |
STACK_WAIT_SECS | 300 | Health wait for start |
local-rt-core.sh bind writes binding.env into ROSIE_LOCAL_RT_BUILD. It exports these variables:
ROSIE_RT_CONTROL_SOCKET and ROSIE_RT_JOG_SOCKET
ROSIE_RT_PAIR_ID (local-dev) and ROSIE_RT_PAIR_REVISION (1)
ROSIE_RT_CONFIGURATION_SHA256
ROSIE_RT_URDF and ROSIE_RT_URDF_SHA256
OFFLINE_PROGRAMMING_RT_CORE_CONFIG
rt-control and installed units#
| Variable or file | Used by | Meaning |
ROSIE_RT_COMPILED_CONFIG | rt-control | Default for --compiled-config, the compiled digest directory containing resources.json |
/etc/rosie-rt-core/control.env | rosie-rt-core.service, rosie-rt-control.service | Sets ROSIE_RT_CONFIGURATION_SHA256, ROSIE_RT_PAIR_ID, ROSIE_RT_PAIR_REVISION, ROSIE_RT_REMOTE_ARGS (extra rt-control flags) and ROSIE_RT_CORE_ARGS (core arguments) |
/etc/rosie-rt-core/natspublisher.env | rosie-rt-natspublisher.service | NATS publisher settings |
rt-control flags are in rt-control HTTP API, and rtctl flags in rtctl.
Offline programming server#
| Variable | Flag it defaults | Meaning |
OFFLINE_PROGRAMMING_WELD_PLANNER_MOTION_ORIGIN | --weld-planner-motion-origin | Weld planner origin, usually http://127.0.0.1:8796. It is used by the server only, to plan and to fetch .rdt files. |
OFFLINE_PROGRAMMING_EXECUTION_BACKEND | --execution-backend | rt_core, the only backend |
OFFLINE_PROGRAMMING_JOG_BACKEND | — | Must be rt_core |
OFFLINE_PROGRAMMING_RT_CORE_CONFIG | --rt-core-config | JSON binding for the local rt-core: socket, pair, digests, axis mask |
OFFLINE_PROGRAMMING_CELLS | — | Cell catalogue for the machine list |
OFFLINE_PROGRAMMING_PROGRAM_CATALOG_ORIGIN | --program-catalog-origin | Optional program catalog origin |
OFFLINE_PROGRAMMING_DAEMON_STATE_URL | --daemon-state-url | Optional daemon state URL |
OFFLINE_PROGRAMMING_EXECUTION_STATE_DIR | --execution-state-dir | Directory for execution audit state |
OFFLINE_PROGRAMMING_JOG_BINARY | — | Path to robot-v4-cartesiand |
OLP_CARTESIAN_RESOLVER, OLP_CARTESIAN_RESOLVER_REPO | — | Override the Cartesian resolver binary and the repository it loads robots from |
SEAM_WORKER_PYTHON, SEAM_WORKER_SPARES | — | Python for the seam worker subprocess, and how many spare workers to keep warm |
CADQUERY_TOPOLOGY_PYTHON | — | Python for the CadQuery tessellation subprocess |
ROSIE_REPO | — | Repository root, if the server cannot find it |
ROSIE_RT_CONTROL_SOCKET, ROSIE_RT_PAIR_ID, ROSIE_RT_PAIR_REVISION | — | Local rt-control binding |
Launcher only (start-offline-programming.sh):
| Variable | Default | Meaning |
OLP_LISTEN | 127.0.0.1:8794 | Server listen address |
OLP_UI_HOST, OLP_UI_PORT | 127.0.0.1, 5189 | The UI URL it prints |
OLP_SIM_WAIT_SECS | 270 | Wait for the local simulator to become ready |
OLP_RESTART_SERVE | unset | 1 restarts a server that is already running |
ROSIEOS_OLP_CACHE | ~/.cache/rosieos-olp | Build cache for the server and motion-server binaries |
OFFLINE_PROGRAMMING_RT_CORE_REMOTE | unset | A remote rt-core binding file for dense execution |
OLP UI: OFFLINE_PROGRAMMING_API_URL sets where Vite proxies /api. It defaults to http://127.0.0.1:8794.
Weld planner#
| Variable or flag | Default | Meaning |
--host, --port | 0.0.0.0, 8796 | Listen address |
--dense-store-dir, WELD_PLANNER_DENSE_STORE_DIR | ~/.cache/rosieos-olp/weld-planner-dense | Where dense .rdt files are written for OLP to fetch |
AMR_WELD_PLANNER_SOURCE_REVISION | Set by pixi run -e motion motion-serve to git rev-parse HEAD | Stamped into results so you can tell which code planned them |
Virtual pendant#
| Variable | Default | Meaning |
STEAMDECK_VIRTUAL_BRIDGE_URL | http://127.0.0.1:51712 | Where the UI's Vite server proxies /healthz and /api/v1 |