The first robot-side capability map

RoboTunnel exposes a broader capability surface, but these four skills explain most of the first developer journey: visual_debug, ros2_observe, host_debug, and monitor. They are the robot-side building blocks behind CLI and team workflows.

When to use skills

The default developer path is still CLI-first managed debugging. Reach for direct skill calls when you need deterministic robot-side actions from scripts, a second terminal, Discord workflows, or inspection that should not depend on an already-open shell session.

robotunnel skill <robot> host_debug status
robotunnel skill <robot> ros2_observe topics
robotunnel skill <robot> visual_debug status --params '{"session_id":"..."}'
For the command-level surface itself, pair this page with the CLI Reference skill section.
Developer path

visual_debug

Starts and inspects Debug Projection sessions for Foxglove, RViz, and stream-oriented workflows.

ROS inspection

ros2_observe

Discovers topics, samples data, and inspects ROS 2 state without committing to a full remote shell flow.

Host diagnostics

host_debug

Checks host health, logs, services, and shell-level diagnostics when the problem may not be in ROS itself.

Background health

monitor

Captures health snapshots and alert-oriented context for operator or team-facing workflows.

Skills in Discord

Discord is a team-facing surface over the same robot-side capability model, but it is not a full replacement for the CLI. It is strongest when a team needs shared context, quick diagnosis, and structured actions without opening an interactive shell first.

  • Discord can route status, logs, shell, monitor, compare, test, alerts, and explicit rt skill <robot> <skill> <action> calls through the same underlying skill system.
  • Natural-language prompts in Discord can resolve into safe structured skill, fleet, metadata, and context actions.
  • monitor is the most natural fit for alerting and team workflows, while host_debug and ros2_observe work well for first-line diagnosis.
  • visual_debug can support session-aware checks, but interactive connect and debug open flows remain CLI-only.
For the Discord interaction model itself, see the Discord Bot guide. Use Discord to coordinate and trigger actions, then switch to the CLI when you need hands-on session control.

visual_debug

Use this skill when the developer goal is an actual debug session rather than a raw connection. It maps most closely to the managed robotunnel debug ... workflow.

  • Best for Foxglove, RViz, and projected-session lifecycle checks.
  • Owns the robot-side Debug Projection runtime.
  • Usually the first skill a developer touches after onboarding.
robotunnel skill <robot> visual_debug status --params '{"session_id":"..."}'

ros2_observe

Use this when you need topic discovery, samples, and ROS 2 state checks before or alongside a visual session.

  • Good for answering “what topics are here?” and “what is this node publishing?”
  • Useful on constrained links when you want selective inspection before opening a heavier session.
  • Pairs naturally with Debug Projection topic policy decisions.
robotunnel skill <robot> ros2_observe topics
robotunnel skill <robot> ros2_observe sample --params '{"topic":"/scan"}'

host_debug

Use this when the suspected issue is system-level: services, process state, logs, disk, network, or host health rather than ROS message content.

  • Best for first-line diagnosis when a robot is online but “something is wrong.”
  • Useful for scripted checks and support workflows.
  • A common bridge between developer debugging and operator support.
robotunnel skill <robot> host_debug status
robotunnel skill <robot> host_debug logs --params '{"service":"robotunnel-agent"}'

monitor

Use this for background health snapshots and alert-style context. It is the skill most naturally aligned with Discord and team workflows rather than direct interactive debugging.

  • Captures health snapshots over time.
  • Supports alert delivery and monitor-style workflows.
  • Helps teams build shared operational context without replacing the CLI.
robotunnel skill <robot> monitor snapshot
robotunnel skill <robot> monitor alerts --params '{"window":"15m"}'