Talos is a terminal-native tool for observing and interacting with ROS 2 systems.
The main idea is to separate the developer workstation from the ROS 2 runtime.
The robot runs talos-agent, which talks to ROS 2 through rclrs. Developer
machines run talos-tui or talos-cli, which connect to the agent over Unix
domain sockets for local use or QUIC for remote use.
flowchart LR
subgraph Workstation["Developer machine"]
TUI["talos-tui"]
CLI["talos-cli"]
NoROS["No ROS 2 runtime needed"]
end
subgraph Target["Target device"]
Agent["talos-agent"]
Rclrs["rclrs"]
ROS["ROS 2 graph"]
end
TUI -->|"UDS or QUIC"| Agent
CLI -->|"UDS or QUIC"| Agent
Agent --> Rclrs
Rclrs --> ROS
Only the agent depends on ROS 2. The shared protocol, CLI, and TUI build and run without a ROS 2 installation.
- Topic observation with live message data rendered as generic trees.
- ROS 2 node discovery and graph inspection.
- A filterable
/rosoutlog view. - URDF-aware joint state display and joint command publishing.
- A small CLI for scripts and one-shot checks.
Talos currently focuses on observation, basic joint control, and terminal workflows. It does not try to replace RViz, provide full ROS 2 service/action proxying, or expose arbitrary dynamic message support beyond the compiled-in message conversions in the agent.
This book is the canonical project documentation. Keep it aligned with current behavior and use the design history pages for context on important choices.