CLI Reference¶
hylo is one command whose subcommands come from the installed Hylo packages (the hylo.commands entry-point group): what is listed here depends on which repositories are installed. Every page below is the command's own --help.
| Command | What it does |
|---|---|
hylo artifact |
verify a sealed artifact and print its manifest |
hylo bench |
benchmark protocols, scorecards and leaderboards |
hylo calibrate |
calibrate a success judge against simulator outcomes |
hylo conformance |
check a config's environment (and agent) against the contracts |
hylo contamination |
check external runs against gate / held-out init states |
hylo evolve |
improvement campaigns: run, status, approve, rollback, shadow |
hylo ingest |
ingest an external data source as a run |
hylo label |
label an ingested run with a calibrated success judge |
hylo learn |
run a learner job (TrainJob JSON) and seal its artifact |
hylo playground |
run the playground: run explorer, live sandbox, campaigns and the workcell control plane |
hylo plugin |
scaffold a plugin package (new) or check one (check) |
hylo plugins |
list plugins |
hylo profile |
show or edit this machine's execution profile (runtimes) |
hylo run |
run an experiment config |
hylo schema |
print a contract JSON Schema |
hylo serve |
serve a policy, a workcell, or one env / agent component |
hylo skills |
archive -> skill library |
hylo store |
the run and artifact store: ids, references, deletion protection, sync between machines |
hylo trace |
summarise a run or an episode trace |
hylo artifact¶
usage: hylo artifact [-h] path
positional arguments:
path
options:
-h, --help show this help message and exit
hylo bench¶
usage: hylo bench [-h] {list,show,run,leaderboard,compare} ...
hylo bench: benchmark protocols, scorecards and leaderboards.
positional arguments:
{list,show,run,leaderboard,compare}
list protocols that ship with hylo-bench
show a protocol's definition and digest
run run a policy under a protocol and write its scorecard
leaderboard rank scorecards per protocol
compare paired comparison of two scorecards of one protocol
options:
-h, --help show this help message and exit
hylo bench list¶
hylo bench show¶
usage: hylo bench show [-h] protocol
positional arguments:
protocol
options:
-h, --help show this help message and exit
hylo bench run¶
usage: hylo bench run [-h] --policy POLICY --name NAME [--out OUT]
[--workers WORKERS] [--set KEY=VALUE] [--notes NOTES]
protocol
positional arguments:
protocol protocol name or YAML path
options:
-h, --help show this help message and exit
--policy POLICY agent spec JSON, experiment config YAML, or plugin name
--name NAME the policy's name on the leaderboard
--out OUT runs go to OUT/runs, scorecards to OUT/scorecards
--workers WORKERS
--set KEY=VALUE execution only: env.remote.* (e.g.
env.remote.runtime=NAME)
--notes NOTES
hylo bench leaderboard¶
usage: hylo bench leaderboard [-h] [--json] [dirs ...]
positional arguments:
dirs
options:
-h, --help show this help message and exit
--json
hylo bench compare¶
usage: hylo bench compare [-h] candidate baseline
positional arguments:
candidate
baseline
options:
-h, --help show this help message and exit
hylo calibrate¶
usage: hylo calibrate [-h] --judge JUDGE --runs RUNS [RUNS ...]
[--splits SPLITS [SPLITS ...]] [--limit LIMIT]
[--seed SEED] [--task-prefix TASK_PREFIX]
[--target-precision TARGET_PRECISION]
[--artifact ARTIFACT] [--out OUT]
options:
-h, --help show this help message and exit
--judge JUDGE instrument spec as JSON: {"type": ..., "params":
{...}}
--runs RUNS [RUNS ...]
--splits SPLITS [SPLITS ...]
--limit LIMIT
--seed SEED
--task-prefix TASK_PREFIX
--target-precision TARGET_PRECISION
--artifact ARTIFACT the judge's artifact (directory or store id): excludes
its training runs, stores the report
--out OUT write report + per-episode records here (JSON)
hylo conformance¶
usage: hylo conformance [-h] [--split SPLIT] [--agent] [--nondeterministic]
[--spec-budget SPEC_BUDGET] [--set KEY=VALUE]
config
positional arguments:
config
options:
-h, --help show this help message and exit
--split SPLIT
--agent also check the agent (runs two full episodes)
--nondeterministic skip the same-seed-same-episode check
--spec-budget SPEC_BUDGET
seconds spec() may take (remote envs start a process)
--set KEY=VALUE
hylo contamination¶
usage: hylo contamination [-h] [--protected PROTECTED [PROTECTED ...]]
[--tolerance TOLERANCE]
external [external ...]
positional arguments:
external
options:
-h, --help show this help message and exit
--protected PROTECTED [PROTECTED ...]
--tolerance TOLERANCE
hylo evolve¶
usage: hylo evolve [-h] [--set KEY=VALUE] [--reason REASON]
[--candidate CANDIDATE] [--split SPLIT] [--publish]
{run,status,approve,rollback,shadow} target
positional arguments:
{run,status,approve,rollback,shadow}
target evolve config YAML, or a campaign directory
options:
-h, --help show this help message and exit
--set KEY=VALUE
--reason REASON
--candidate CANDIDATE
shadow: the candidate to run alongside the active
version
--split SPLIT shadow: benchmark split (default: the config's)
--publish status: also (re)write the campaign's active.json
hylo evolve run¶
usage: hylo evolve [-h] [--set KEY=VALUE] [--reason REASON]
[--candidate CANDIDATE] [--split SPLIT] [--publish]
{run,status,approve,rollback,shadow} target
positional arguments:
{run,status,approve,rollback,shadow}
target evolve config YAML, or a campaign directory
options:
-h, --help show this help message and exit
--set KEY=VALUE
--reason REASON
--candidate CANDIDATE
shadow: the candidate to run alongside the active
version
--split SPLIT shadow: benchmark split (default: the config's)
--publish status: also (re)write the campaign's active.json
hylo evolve status¶
usage: hylo evolve [-h] [--set KEY=VALUE] [--reason REASON]
[--candidate CANDIDATE] [--split SPLIT] [--publish]
{run,status,approve,rollback,shadow} target
positional arguments:
{run,status,approve,rollback,shadow}
target evolve config YAML, or a campaign directory
options:
-h, --help show this help message and exit
--set KEY=VALUE
--reason REASON
--candidate CANDIDATE
shadow: the candidate to run alongside the active
version
--split SPLIT shadow: benchmark split (default: the config's)
--publish status: also (re)write the campaign's active.json
hylo evolve approve¶
usage: hylo evolve [-h] [--set KEY=VALUE] [--reason REASON]
[--candidate CANDIDATE] [--split SPLIT] [--publish]
{run,status,approve,rollback,shadow} target
positional arguments:
{run,status,approve,rollback,shadow}
target evolve config YAML, or a campaign directory
options:
-h, --help show this help message and exit
--set KEY=VALUE
--reason REASON
--candidate CANDIDATE
shadow: the candidate to run alongside the active
version
--split SPLIT shadow: benchmark split (default: the config's)
--publish status: also (re)write the campaign's active.json
hylo evolve rollback¶
usage: hylo evolve [-h] [--set KEY=VALUE] [--reason REASON]
[--candidate CANDIDATE] [--split SPLIT] [--publish]
{run,status,approve,rollback,shadow} target
positional arguments:
{run,status,approve,rollback,shadow}
target evolve config YAML, or a campaign directory
options:
-h, --help show this help message and exit
--set KEY=VALUE
--reason REASON
--candidate CANDIDATE
shadow: the candidate to run alongside the active
version
--split SPLIT shadow: benchmark split (default: the config's)
--publish status: also (re)write the campaign's active.json
hylo evolve shadow¶
usage: hylo evolve [-h] [--set KEY=VALUE] [--reason REASON]
[--candidate CANDIDATE] [--split SPLIT] [--publish]
{run,status,approve,rollback,shadow} target
positional arguments:
{run,status,approve,rollback,shadow}
target evolve config YAML, or a campaign directory
options:
-h, --help show this help message and exit
--set KEY=VALUE
--reason REASON
--candidate CANDIDATE
shadow: the candidate to run alongside the active
version
--split SPLIT shadow: benchmark split (default: the config's)
--publish status: also (re)write the campaign's active.json
hylo ingest¶
usage: hylo ingest [-h] [--python PYTHON] spec
positional arguments:
spec JSON: {"source": {"type", "params"}, "name", "licence",
"out", "image_every", "assume_success"}
options:
-h, --help show this help message and exit
--python PYTHON interpreter whose venv has the source's dependencies
hylo label¶
usage: hylo label [-h] --judge JUDGE [--judge-type JUDGE_TYPE]
[--threshold THRESHOLD]
run
positional arguments:
run
options:
-h, --help show this help message and exit
--judge JUDGE the judge's artifact (directory or store id)
--judge-type JUDGE_TYPE
--threshold THRESHOLD
hylo learn¶
usage: hylo learn [-h] [--python PYTHON] [--timeout TIMEOUT] job
positional arguments:
job
options:
-h, --help show this help message and exit
--python PYTHON interpreter to run the learner with (its venv); default:
in this process
--timeout TIMEOUT
hylo playground¶
usage: hylo-playground [-h] [--root ROOT] [--repo REPO] [--host HOST]
[--port PORT] [--token TOKEN] [--judge JUDGE]
[--workcell NAME=URL[#TOKEN]]
[--policy NAME=WS_URL[#TOKEN]]
[--role-token ROLE=TOKEN]
options:
-h, --help show this help message and exit
--root ROOT runs directory (relative to --repo)
--repo REPO repository root (for examples/ and job working
directory)
--host HOST
--port PORT
--token TOKEN require this token on every API call (x-token header
or ?token=)
--judge JUDGE success-judge artifact used for progress curves
--workcell NAME=URL[#TOKEN]
a workcell service
--policy NAME=WS_URL[#TOKEN]
a policy server endpoint
--role-token ROLE=TOKEN
viewer / operator / approver tokens (none given: the
local user has every role)
hylo plugin¶
usage: hylo plugin [-h] [--dir DIR] [--params PARAMS]
[--experiment EXPERIMENT]
{new,check}
{guard,gate_test,learner,online_learner,datasource,judge,generator,policy,agent}
name
positional arguments:
{new,check}
{guard,gate_test,learner,online_learner,datasource,judge,generator,policy,agent}
name plugin name (new) or registered name / module:attr
(check)
options:
-h, --help show this help message and exit
--dir DIR new: where to create the package
--params PARAMS check: constructor params as JSON
--experiment EXPERIMENT
check: the experiment config to check on (default:
MuJoCo planar reach if installed, else the test
double)
hylo plugin new¶
usage: hylo plugin [-h] [--dir DIR] [--params PARAMS]
[--experiment EXPERIMENT]
{new,check}
{guard,gate_test,learner,online_learner,datasource,judge,generator,policy,agent}
name
positional arguments:
{new,check}
{guard,gate_test,learner,online_learner,datasource,judge,generator,policy,agent}
name plugin name (new) or registered name / module:attr
(check)
options:
-h, --help show this help message and exit
--dir DIR new: where to create the package
--params PARAMS check: constructor params as JSON
--experiment EXPERIMENT
check: the experiment config to check on (default:
MuJoCo planar reach if installed, else the test
double)
hylo plugin check¶
usage: hylo plugin [-h] [--dir DIR] [--params PARAMS]
[--experiment EXPERIMENT]
{new,check}
{guard,gate_test,learner,online_learner,datasource,judge,generator,policy,agent}
name
positional arguments:
{new,check}
{guard,gate_test,learner,online_learner,datasource,judge,generator,policy,agent}
name plugin name (new) or registered name / module:attr
(check)
options:
-h, --help show this help message and exit
--dir DIR new: where to create the package
--params PARAMS check: constructor params as JSON
--experiment EXPERIMENT
check: the experiment config to check on (default:
MuJoCo planar reach if installed, else the test
double)
hylo plugins¶
usage: hylo plugins [-h] [--all] [--json]
options:
-h, --help show this help message and exit
--all include the test doubles (testing.*)
--json
hylo profile¶
usage: hylo profile [-h] {show,set-runtime,remove-runtime} ...
Execution profiles (hylo.profile/v0.1): where components run on this machine,
kept out of experiment configs.
positional arguments:
{show,set-runtime,remove-runtime}
show print the profile and where it is
set-runtime add or replace a runtime
options:
-h, --help show this help message and exit
hylo profile show¶
hylo profile set-runtime¶
usage: hylo profile set-runtime [-h] --python PYTHON [--env KEY=VALUE] name
positional arguments:
name
options:
-h, --help show this help message and exit
--python PYTHON
--env KEY=VALUE
hylo profile remove-runtime¶
usage: hylo profile remove-runtime [-h] name
positional arguments:
name
options:
-h, --help show this help message and exit
hylo run¶
usage: hylo run [-h] [--split SPLIT] [--output OUTPUT] [--set KEY=VALUE]
config
positional arguments:
config
options:
-h, --help show this help message and exit
--split SPLIT
--output OUTPUT
--set KEY=VALUE dotted-path override, e.g. --set
benchmark.params.suite=libero_goal --set workers=16
hylo schema¶
usage: hylo schema [-h]
[{agent-spec,benchmark,candidate,env-spec,experiment,memory-item,task}]
positional arguments:
{agent-spec,benchmark,candidate,env-spec,experiment,memory-item,task}
options:
-h, --help show this help message and exit
hylo schema agent-spec¶
usage: hylo schema [-h]
[{agent-spec,benchmark,candidate,env-spec,experiment,memory-item,task}]
positional arguments:
{agent-spec,benchmark,candidate,env-spec,experiment,memory-item,task}
options:
-h, --help show this help message and exit
hylo schema benchmark¶
usage: hylo schema [-h]
[{agent-spec,benchmark,candidate,env-spec,experiment,memory-item,task}]
positional arguments:
{agent-spec,benchmark,candidate,env-spec,experiment,memory-item,task}
options:
-h, --help show this help message and exit
hylo schema candidate¶
usage: hylo schema [-h]
[{agent-spec,benchmark,candidate,env-spec,experiment,memory-item,task}]
positional arguments:
{agent-spec,benchmark,candidate,env-spec,experiment,memory-item,task}
options:
-h, --help show this help message and exit
hylo schema env-spec¶
usage: hylo schema [-h]
[{agent-spec,benchmark,candidate,env-spec,experiment,memory-item,task}]
positional arguments:
{agent-spec,benchmark,candidate,env-spec,experiment,memory-item,task}
options:
-h, --help show this help message and exit
hylo schema experiment¶
usage: hylo schema [-h]
[{agent-spec,benchmark,candidate,env-spec,experiment,memory-item,task}]
positional arguments:
{agent-spec,benchmark,candidate,env-spec,experiment,memory-item,task}
options:
-h, --help show this help message and exit
hylo schema memory-item¶
usage: hylo schema [-h]
[{agent-spec,benchmark,candidate,env-spec,experiment,memory-item,task}]
positional arguments:
{agent-spec,benchmark,candidate,env-spec,experiment,memory-item,task}
options:
-h, --help show this help message and exit
hylo schema task¶
usage: hylo schema [-h]
[{agent-spec,benchmark,candidate,env-spec,experiment,memory-item,task}]
positional arguments:
{agent-spec,benchmark,candidate,env-spec,experiment,memory-item,task}
options:
-h, --help show this help message and exit
hylo serve¶
usage: hylo serve [-h] {policy,workcell} ...
positional arguments:
{policy,workcell}
policy serve an agent over /wc and /openpi
workcell run episodes next to a robot / simulator with a remote
policy
options:
-h, --help show this help message and exit
also: hylo serve env|agent ... serves one environment or agent plugin over
WebSocket (hylo serve env --help)
hylo serve policy¶
usage: hylo serve policy [-h]
(--agent AGENT | --config CONFIG | --campaign CAMPAIGN)
[--host HOST] [--port PORT] [--token TOKEN]
[--openpi-inputs OPENPI_INPUTS]
options:
-h, --help show this help message and exit
--agent AGENT agent spec as JSON: {"type": ..., "params": {...}}
--config CONFIG experiment config whose agent to serve
--campaign CAMPAIGN campaign directory: serve its active version,
following promotions
--host HOST
--port PORT
--token TOKEN require 'Authorization: Bearer <token>' (or openpi's
'Api-Key <token>')
--openpi-inputs OPENPI_INPUTS
preset name or JSON mapping of openpi keys to
observation fields
hylo serve workcell¶
usage: hylo serve workcell [-h] --config CONFIG [--host HOST] [--port PORT]
[--token TOKEN]
options:
-h, --help show this help message and exit
--config CONFIG workcell config (YAML or JSON), see hylo.serve.workcell
--host HOST
--port PORT
--token TOKEN
hylo skills¶
usage: hylo evolve skills [-h] --out OUT [--tags [TAGS ...]] [--env ENV]
[--prefix PREFIX]
archive
positional arguments:
archive campaign directory (with archive.jsonl) or an
archive.jsonl file
options:
-h, --help show this help message and exit
--out OUT skill library directory
--tags [TAGS ...]
--env ENV
--prefix PREFIX
hylo store¶
usage: hylo store [-h] [--root ROOT]
{init,where,index,ls,show,ref,rm,push,pull,adopt} ...
the run and artifact store: ids, references, deletion protection, sync between
machines
positional arguments:
{init,where,index,ls,show,ref,rm,push,pull,adopt}
init make PATH this machine's store (recorded in the
profile) and index it
where print the store directory
index rebuild the index
ls list runs and artifacts
show an entry, its path and what refers to it
ref the id of a run or artifact directory
rm delete a run or artifact (refused while something
refers to it)
push copy runs and artifacts from here to another store
pull copy runs and artifacts from another store to here
adopt seal a directory built before artifacts had manifests
(RFC-0004)
options:
-h, --help show this help message and exit
--root ROOT the store directory (default: this machine's profile,
$HYLO_STORE, ./runs)
hylo store init¶
usage: hylo store init [-h] path
positional arguments:
path
options:
-h, --help show this help message and exit
hylo store where¶
hylo store index¶
hylo store ls¶
usage: hylo store ls [-h] [--kind {run,artifact}] [--name NAME] [--json]
options:
-h, --help show this help message and exit
--kind {run,artifact}
--name NAME
--json
hylo store show¶
usage: hylo store show [-h] ref
positional arguments:
ref
options:
-h, --help show this help message and exit
hylo store ref¶
usage: hylo store ref [-h] path
positional arguments:
path
options:
-h, --help show this help message and exit
hylo store rm¶
usage: hylo store rm [-h] [--force] [--reason REASON] ref
positional arguments:
ref
options:
-h, --help show this help message and exit
--force
--reason REASON
hylo store push¶
usage: hylo store push [-h] [--with-sources] [--dry-run]
[--remote-command REMOTE_COMMAND]
location [ids ...]
positional arguments:
location PATH or HOST:PATH
ids what to copy (default: everything)
options:
-h, --help show this help message and exit
--with-sources also what the selected artifacts were built from
--dry-run
--remote-command REMOTE_COMMAND
the hylo command on the other machine
hylo store pull¶
usage: hylo store pull [-h] [--with-sources] [--dry-run]
[--remote-command REMOTE_COMMAND]
location [ids ...]
positional arguments:
location PATH or HOST:PATH
ids what to copy (default: everything)
options:
-h, --help show this help message and exit
--with-sources also what the selected artifacts were built from
--dry-run
--remote-command REMOTE_COMMAND
the hylo command on the other machine
hylo store adopt¶
usage: hylo store adopt [-h] --kind KIND --role
{behaviour,instrument,proposal,data} [--name NAME]
[--source RUN_DIR|run:ID]
path
positional arguments:
path
options:
-h, --help show this help message and exit
--kind KIND
--role {behaviour,instrument,proposal,data}
--name NAME
--source RUN_DIR|run:ID
a run it was built from (repeat); without any, the
provenance is recorded as unknown