Skip to main content
The innate CLI is your control panel. SSH into MARS and start typing.
in8 is a zsh alias for innate, available in any new shell.

Default (no args)

CommandWhat it does
innateStatus dashboard — version, mode, ROS/DDS status, quick reference

Service management

Start, stop, and inspect all ROS nodes.
CommandWhat it does
innate service startStart all ROS nodes in tmux
innate service stopKill the tmux session
innate service restartStop + start
innate service viewAttach to the tmux session

Top-level shortcuts

CommandSame as
innate viewinnate service view
innate restartinnate service restart

Build

Smart build that does the right thing automatically. If ROS nodes are running, it stops them, builds, and restarts them. If nodes aren’t running, it just builds. If the build fails, nodes are not restarted.
CommandWhat it does
innate buildBuild full workspace (stops/starts nodes if running)
innate build pkg1 pkg2Build specific packages only
innate build release [pkg ...]Build with CMAKE_BUILD_TYPE=Release (whole workspace, or the named packages)
innate cleanRemove build/, install/, log/

Examples

innate build mars_arm          # build one package (restarts nodes if they're running)
innate build                   # build everything
innate build release           # optimized release build of everything
innate build release mars_arm  # optimized release build of one package
innate clean && innate build   # full clean rebuild

Skills

List and trigger the robot’s skills straight from the terminal — handy for testing a skill without the app.
CommandWhat it does
innate skill listList the skills the robot currently publishes
innate skill type <skill-id>Print a skill’s input contract (the parameters it accepts)
innate skill run <skill-id> [@param=value ...]Run a skill by ID, passing any inputs as @key=value

Options

CommandOptions
innate skill list--timeout <sec> — how long to wait for skills to be published (default 5)
innate skill type--timeout <sec> (default 5) · --json — print the raw contract as JSON
innate skill run--timeout <sec> — wait for the skill result (0, the default, waits indefinitely) · --server-timeout <sec> — wait for the skill action server (default 5)

Examples

innate skill list                                   # see what's available
innate skill type innate-os/wave --json             # contract as JSON
innate skill run innate-os/wave                     # run a skill with no inputs
innate skill run innate-os/arm_utils @command=torque_on --timeout 0
innate skill run local/my-skill @x=1 @name=alice    # pass parameters
Skill IDs are prefixed by where they live — innate-os/ for shipped skills, local/ for your own. See Skills for how IDs are formed.

Speaker volume

CommandWhat it does
innate volumeShow the current speaker volume
innate volume <0-100>Set the speaker volume (0 mutes)

Examples

innate volume        # show current volume
innate volume 60     # set to 60%
innate volume 0      # mute

Diagnostics & updates

CommandWhat it does
innate diagHardware check (servos, PCB, lidar, cameras, speaker) — offers to stop running ROS nodes first so the check is reliable
innate update checkCheck for available updates
innate update apply [target]Apply updates (optionally pin a specific version)
innate update statusShow version + service info, and warn if installed services drift from the checkout
innate update reinstallRe-run the post-update setup (systemd units, sudoers, dependencies, rebuild) without changing version

Apply options

OptionWhat it does
--yes, -ySkip confirmation prompts
--background, -bRun the update in a background tmux session (innate_update); attach with tmux attach -t innate_update

Dev mode and branch targets

Pass --dev before the subcommand to opt into pre-release tags and branch targets. With it, apply can take a tag, a branch name, or the latest commit on a branch:
innate update --dev check             # list newer tags, including pre-releases
innate update --dev apply 0.6.0-rc1   # a specific pre-release tag
innate update --dev apply main        # latest commit on main
innate update --dev apply my-feature  # latest commit on any branch
See Updates and Maintenance for details.

Quick reference card

innate                          → status dashboard
innate service start            → launch ROS nodes
innate service stop             → kill all nodes
innate service restart          → stop + start
innate service view             → attach to tmux
innate view                     → shortcut for above
innate restart                  → shortcut for above
innate build [pkg ...]          → build (stops/starts nodes if running)
innate build release [pkg ...]  → optimized release build
innate clean                    → rm build/install/log
innate skill list               → list the robot's skills
innate skill type <id> [--json] → show a skill's input contract
innate skill run <id> [@k=v]    → run a skill by ID
innate volume [0-100]           → show or set speaker volume
innate diag                     → hardware diagnostics
innate update check [--dev]     → check for updates
innate update apply [target] [--dev] → apply updates (tag or branch with --dev)
innate update status            → version + service info
innate update reinstall         → re-run post-update setup
in8 ...                         → alias for innate

Tmux navigation

When you run innate view, you’re inside a tmux session. Here’s how to move around:
KeysAction
Ctrl+B then 06Switch to window 0–6
Ctrl+B then / Switch between left/right panes
Ctrl+B then [Enter scroll mode (navigate with arrow keys)
qExit scroll mode
Ctrl+B then DDetach from tmux (nodes keep running)
See Advanced Development for a breakdown of what runs in each window.