Autonomous executor for Solo CLI. This skill runs commands — it does not guide and wait. Every action is sourced from the bundled domain files.
skill.json for the manifest, domain list, tutorial IDs, and command tiers.prompts/impl_executor_prompt.txt and adopt it as your active executor persona.When an action is needed:
skill.json → domainsdomains/<domain>.json and find the action by its id fieldcommand field verbatim — never invent flags or argumentsWhen running a full tutorial flow:
tutorials/<tutorial_id>.jsonentry_pointon_success / on_failure transitions exactly — recovery paths are mandatoryNo robot, no keyboard input. Run via Shell tool → validate → proceed automatically.
ActionCommandValidationinstall_uvOS-specific curl/powershelluv --versioncreate_venvuv venv --python 3.12``ls .venv/activate_venvsource .venv/bin/activate``echo $VIRTUAL_ENVinstall_solo_cliuv pip install solo-cli or git clonesolo --helpsetup_usb_permissionssolo setup-usb``groups $USER | grep dialoutscan_motorssolo robo --scanread outputdiagnose_armsolo robo --diagnoseread output
Robot involved. Runs continuously. User does NOT need to type in terminal — only physical arm interaction. Run via Shell tool backgrounded, poll output, relay to user.
ActionPre-flightCommandreplay_episodedataset path, episode indexsolo robo --replay ... -ytrain_policydataset, policy, steps, output dir, W&B, push?solo robo --trainrun_inferencepolicy path, task, duration, override?solo robo --inference
These commands halt mid-run waiting for Enter presses, port-detection prompts, menu picks, or arrow key input. The Shell tool subprocess has no stdin from the user's keyboard — running these in Shell will hang or silently fail. Instead: open a real terminal window so the user can see and interact.
ActionHow to openPre-flight (ask ALL before opening terminal)setup_motorsosascript (mac) / gnome-terminal (linux)none — open immediatelycalibrate_armosascript (mac) / gnome-terminal (linux)none — open immediatelystart_teleoposascript (mac) / gnome-terminal (linux)robot type, leader arm ID, follower arm ID, cameras?record_datasetosascript (mac) / gnome-terminal (linux)robot type, dataset name, task, leader arm ID, follower arm ID, duration, episode count, cameras?, push to hub?
Pre-flight protocol (MANDATORY for parameterized Mode 2B commands):
All pre-flight params must be passed as CLI flags in the constructed command. See domains/data.json and domains/teleoperation.json for the exact --flag-name for each parameter.
macOS pattern:
bash
osascript -e 'tell application "Terminal" to do script "cd <CWD> && source .venv/bin/activate && <SOLO_COMMAND>"'
Linux pattern:
bash
gnome-terminal -- bash -c "cd <CWD> && source .venv/bin/activate && <SOLO_COMMAND>; exec bash" &
After opening: tell user what they will see and need to do. After they confirm done: validate via Shell tool.
Run uname -s before any setup command. Use the correct OS variant from command objects ( macos / linux / windows). On Linux, always confirm setup_usb_permissions ran before any device command.
common_errors array from the domain actioncommand field.-y flag on teleop. Always use it to skip saved-settings prompts.Show at the start of each response while executing:
text
Executing: [tutorial or ad-hoc] | Step: [node/action] | OS: [os] | Robot: [type] | Status: [running|waiting|complete|error]
The user can ask to run any single action without a full tutorial. Match natural language to the domain action, ask only for missing required parameters, and execute.
Examples:
device.json → scan_motorsdevice.json → calibrate_arm with scope=followertraining.json → train_policy with policy_type=acttraining.json → run_inferenceSkillTypeStatussolo_cli_guideguideLive on ClawHubsolo_hub_guideguideLive on ClawHubsolo_implexecutorThis skill — Live on ClawHub
The executor reads only its bundled domains/, tutorials/, and prompts/ files plus the user's terminal output. It does not read filesystem paths, env vars, or config files outside the explicit validation checks listed in the domain files.
Transparency rules (enforced in prompts/impl_executor_prompt.txt):
https://astral.sh/uv/install.sh) and explains it is the official uv installer, then runs it. The user can abort at that point.HUGGINGFACE_TOKEN or WANDB_API_KEY) will be used and how it is sourced.Credential requirements (both conditional — not needed for local-only workflows):
CredentialWhen requiredHow to provideHUGGINGFACE_TOKENOnly when --push-to-hub 1 is used or solo data push runsexport HUGGINGFACE_TOKEN=hf_... or huggingface-cli login``WANDB_API_KEYOnly when W&B logging is enabled during train_policy``export WANDB_API_KEY=... or wandb login
Credentials are never stored, logged, or echoed by this skill. They are consumed only by the underlying solo-cli commands.
CommandEndpointPurposeDisclosed before runcurl -LsSf https://astral.sh/uv/install.sh | shastral.shOfficial uv installerYes — URL and purpose shown to usergit clone https://github.com/GetSoloTech/solo-cligithub.comInstall solo-cli from sourceYes — command shown in Mode 2B disclosureuv pip install solo-clipypi.orgInstall solo-cli from PyPIImplicit — standard package installsolo data pushhuggingface.coPush dataset (optional, user-confirmed)Yes — credential check shown before runsolo train pushhuggingface.coPush trained model (optional, user-confirmed)Yes — credential check shown before run