Ways in

The CLI

The commands you use, what each is for, and the flags it takes.

Use --help on a command to check the options in your installed version. The reference below follows the current CLI. Some newer features are available in pilot builds; contact us if your installation does not include one.

Account

  • trialone login

    Connect this terminal to your account. The key is checked before it is saved.

    --no-browser--paste

  • trialone whoami

    Which account this terminal is connected to, and whether it is approved.

  • trialone update

    Install the newest version in one step.

What changed in each version, and what reads differently after an upgrade, is in the changelog.

Diagnose and check

  • trialone diagnose <recording>

    Investigate a recording and produce findings, evidence and a proposed action.

    --description--explain--fail-on--full--group-col--healthy--healthy-label--history--json--label-col--machine--max-false-alarm--max-faults--no-explain--no-push--no-upload-raw--out--project--push--robot-hint--state--summary-md--symptom--time-col--upload-raw

  • trialone verify <diagnosis.json> <new recording>

    Measure a new recording against an earlier diagnosis and rule per finding.

    --attempt--group-col--healthy--json--max-false-alarm--no-push--push

  • trialone push <diagnosis.json>

    Send a diagnosis that is already on disk to your account, without analysing again.

    --machine

  • trialone fix <diagnosis.json>

    Hand a finished diagnosis to a coding agent on this machine, after asking.

    --agent--yes

  • trialone mark

    Say that something just went wrong, now or about a recording, and get one page back.

    --json--robot

On the robot

  • trialone watch

    Watch a running robot and stay silent until something changes.

    --baud--camera--expect-silent-after--explain-budget--follow--healthy--history--incident-at--json--max-false-alarm--no-camera--no-push--no-upload-raw--project--push--replay--robot--robot-hint--seconds--serial--speed--state--time-col--topics--upload-raw--window

  • trialone learn <folder>

    Read recordings the robot already made as earlier behaviour for the watcher.

    --label--max

  • trialone install-service

    Run the watcher as a service that survives a closed terminal and a reboot.

    --github--install--project

  • trialone watch-folder <folder>

    Diagnose every new recording that lands in a folder.

    --every--github--once--project

  • trialone attach

    Record what this robot is: board, OS, ROS distribution and packages, devices. Run it again after changes.

    --json--machine

In a CI step

A completed diagnosis returns 0 whether or not it found a problem. Use --fail-on to fail a CI step on findings: fault follows the workspace alert rule, finding includes supported findings, and any also includes candidates. A matching finding returns 4. --summary-md appends a Markdown summary to a file, such as $GITHUB_STEP_SUMMARY. CI can use TRIALONE_CLI_TOKEN instead of an interactive login.

Terminal
$ trialone diagnose recording.mcap --project . --fail-on fault --summary-md "$GITHUB_STEP_SUMMARY"

Exit codes

CommandCodeMeans
diagnose0The recording was read. The report is the answer, with or without findings.
diagnose2The recording could not be read. Nothing in the output is about the machine.
diagnose --fail-on4The recording carries a finding at the level you asked for.
diagnose, verify, push3The analysis or verdict completed, but the workspace upload failed.
verify0, 1, 2Pass, fail, inconclusive.
any77This terminal is not signed in with an approved account.

Environment

VariableWhat it does
TRIALONE_MACHINEThe machine name runs are filed under, instead of the hostname.
TRIALONE_HOMEWhere TrialONE keeps its local state. Default ~/.trialone.
TRIALONE_CLI_TOKENA CLI key without trialone login, for CI and containers.

Access

Every command that starts the engine first checks that the terminal is signed in and the account is approved. It asks the website at most once a day. Without a network, the last confirmation counts for 30 days, so a robot in a hall without Wi-Fi keeps running. login, whoami, update and --help work without it.

Update or remove

trialone update installs the newest version. To remove the tool, uninstall it with pip. If the watcher runs as a service on this machine, stop it first with systemctl --user disable --now trialone-watch.service.

Terminal
$ pip uninstall trialone

Uninstalling leaves the sign-in and local state in ~/.trialone (on Windows %USERPROFILE%\.trialone); delete that folder too for a clean start. Revoke the key of a machine you no longer use under Settings, CLI keys.

Something missing or wrong here? Tell us.