DevelopersSeptember 14, 2026by
Ailoos
Ailoos

The Ailoos CLI: 107 Commands, Seven Roles, Five Network Scales

Phones train; laptops and servers train, validate, serve, archive and relay. The Ailoos CLI is the operator's surface for all of that. This post is what it does and the two things about it that the September 2026 audit changed.

The reference cannot drift

CLI_COMMANDS_REFERENCE.md lists 107 commands in 17 groups — node, train, inference, serve, federated, missions, model, dataset, wallet, rewards, governance, marketplace, p2p, agent, config, logs, support. It is generated by introspecting the live command tree, so a command that exists is documented and a documented command exists. A TUI that duplicated the CLI was removed in August 2026; eight command groups replaced it with full parity.

Roles

RoleWhat the node does
TrainerRuns training sessions on assigned datasets
ValidatorValidates uploaded adapters before merge
OracleServes inference requests
ArchivalKeeps model and adapter history
RelayForwards traffic for nodes behind restrictive networks
Coordinator-adjacent rolesScheduling and aggregation support

Until 5 September 2026 these were a label. The role loops were fully implemented inside the node SDK's start(), but the headless command only ran initialize() and slept forever. Meanwhile ailoos node roles certified to the operator that each loop ran every 60 seconds. It did not. Fixed; the status command now reports the loops that are actually alive.

Network scales

Five, from a single machine to a multi-region deployment, each with documented resource expectations and which roles make sense at that scale. Hardware detection validates the role a node claims against what it has.

Three training circuits

Documented in CLI_TRAINING_CIRCUITS.md: local (train a model on this machine from a catalogued dataset — verified live with a real Hugging Face dataset pull, real training with decreasing loss, and a checkpoint), federated (join a coordinator-run session as a trainer), and split (split learning across devices). The local circuit is the one to start with.

ailoos dataset pull <name>          # from the 421-dataset catalogue, filtered by size
ailoos train start --dataset <name> --model empoorio_lm_small_v1
ailoos node headless --roles trainer,validator
ailoos node roles                    # now reports what is actually running

Wallet and rewards

The CLI binds a node to an Eoonia account through the same challenge–response protocol the apps use, and reads reward state from pallet-ailoos-rewards. Rewards are per era and proportional to verified units; no rate is promised. A signing bug found in September — the Python Substrate library omitted the chain's CheckPqcPolicy extension and its codec ignored a type-registry class — means the CLI's direct chain signing is being fixed; reads work.

Deploying

The coordinator's code is mounted into its container, not baked in. Deploy is copy-then-restart — and, when an environment variable changes, docker compose up -d --no-deps <service>, because docker restart does not reread the env file. Both are written down because both were learned the hard way. Postgres user and database are ailoos_coordinator; the catalogue sync is idempotent on every start and never touches datasets users uploaded.

Honest capability

The models are small (25–64M). The network has trained real adapters on real phones and merged them. It has not paid its first on-chain reward on the public testnet. Its API is live and measured. That is the CLI's world.

Based on CLI_COMMANDS_REFERENCE.md, CLI_ROLES_AND_NETWORK_SCALES.md, CLI_TRAINING_CIRCUITS.md and the Ailoos production audit (2026-09-05).

Share this article