Ros2_info — a terminal workspace lens for ROS 2 (TUI + optional local AI)

Hi all,

Sharing a tool I’ve been building: ros2_info — a fastfetch-style ROS 2 workstation dashboard with a full-screen terminal UI. Written in Rust, so it runs headless over SSH and on Pi/Jetson-class hardware without any Electron/webview overhead.

Repo: GitHub - Gaurav-x111/ros2_info: fastfetch for ROS2 — distro info, live nodes, workspaces, web dashboard. One command. Everything you need. · GitHub

It’s not trying to replace your editor or your terminal — it’s trying to replace the five terminals you already have open during bring-up and debugging:

  • Live dashboards — nodes, topics, services, actions, workspace + build status, DDS/domain/sourcing state, all on one screen instead of five.
  • Integrated PTY terminalros2, colcon build, ros2 launch run live alongside everything else, not in a separate window.
  • Multi-tab editor with Neovim keybindings, for when you need to touch a file without leaving the session.
  • Local AI assistant (Ollama, fully offline, opt-in)ai scan / ai fix / ai explain for build errors. Every suggested change is diff-gated before anything is applied, and the tool works exactly the same with this switched off entirely.
    Build-error triage — ai scan / ai fix / ai explain, diff-gated so nothing is applied without review
  • In-TUI chat assistant, plus a standalone AI web chat if you’d rather work outside the terminal
  • Autonomous coding mode — give it a goal, it iterates on the code toward that goal inside the same sandbox + diff-gate rails as everything else (this writes/edits code autonomously, it doesn’t drive the robot at runtime)
  • so i prefer you small model like vibethinker 3b or gemma E2B, E4B
  • ROS 2 graph canvas, git/gh integration, and a namespaced sandbox mode (/sandbox) for experimenting without touching the real graph.
  • In-process plugin API for extending it further.

Honest pitch: you can do all of this with the raw CLI plus your editor of choice — I’m not claiming to be smarter than either. It’s just that during active bring-up and debugging, having graph state, build output, and a terminal in one screen is faster than context-switching across five.

Single static binary, MIT licensed, supports Humble/Jazzy/Iron/Rolling. Feedback and PRs welcome — happy to answer questions.

3 Likes

Nice work — the pty terminal and the plugin API especially. Question: does the collector see nodes/topics across Docker container boundaries? I run ROS 2 systems split over several containers (docker-compose, one subsystem each), and I’m wondering if the dashboards would show the whole system or only what’s reachable in one DDS domain.

1 Like

this is the 3rd 4th time you’ve posted about the exact same github repo in 3 days. at what point does it become considered “spam” to repeatedly post about the same topic?

why was this comment flagged? lol

i think you have mistaken this project for some one else , at night only i complied tested and checked everything , locally and then i uploaded this version and checked and updated readme , and about 3 to 4 time let me clarify , its 3 rd time and all time i updated , worked and evoloped my project

thank you for your question , and suggestion and i thought yah i can add this so thanks to you i added that features
Run it on the Docker host (where docker is reachable):
ros2_info compose # whole-system table across all containers
ros2_info compose --json # raw JSON (also GET /api/compose for the dashboard)
It docker execs ros2 node/topic list inside each running container and merges them — so the dashboards show the whole system, not just one DDS domain, even when containers are on isolated networks or different ROS_DOMAIN_IDs
again thank you