The official Python CLI for TrajectoryRL — an open skill factory that uses Bittensor's distributed compute and incentive layer to produce state-of-the-art agent skills.
trajrl watches live SN11 state: winner, challenger, queue, validators, miners, packs, eval logs, and deep validator analysis.
CLI output is Rich tables in a TTY and JSON when piped.
For generic Bittensor on-chain queries (metagraph, hyperparams) use btcli — the official Bittensor CLI.
pip install trajrltrajrl challenge # in-flight epoch — challenger pack + per-validator scores so far
trajrl winner # current seated winner + last 5 change events
trajrl winner --history 20 # show more history
trajrl queue # pending eval queue
trajrl queue --eligible-only # filter to submissions eligible right nowtrajrl validators # roster table
trajrl validators --detail # adds stake / weightTargets / benchVersion
trajrl miner --uid 63 # miner detail by UID
trajrl miner HOTKEY
trajrl pack HOTKEY PACK_HASH # specific pack + eval results
trajrl submissions # recent submissions across the network
trajrl submissions --failedtrajrl analyze # last 24h, all reports
trajrl analyze --epochs 50 # explicit epoch window
trajrl analyze --last 6 # last 6 hours
trajrl analyze --scenario cancel-async-tasks # focus per-scenario report
trajrl analyze --no-compare # skip the validator-sync table
trajrl analyze --deep # drill into eval logs for top packsanalyze produces, in one report:
- Throughput — epochs in window, decisions submitted, decisions/hour, rejection rate
- Competition Health — distinct challenger packs/miners, outcomes (held/replaced), replace rate, current winner tenure, mean inter-replacement gap
- Score Distribution — N qualified, mean, p50/p75/p90/p99, histogram of consensus_score
- Per-Scenario — pass rate, mean score, eval count, top-scoring pack per scenario (filterable with
--scenario) - Top 10 Challenger Packs — best consensus_score in window, with outcome
- Rejection Breakdown — bucketed reasons (integrity:copy, eval_error, schema_validation, etc.) with sample details
- Miner Pool — distinct miners, distinct packs, top-10 most-active
- Validator Sync — per-validator mean Δ vs peer mean; outlier flag with adaptive threshold (1.5× network median)
- Recent Winner Changes — last 10 replacement events
- With
--deep: drill into eval logs for the top challenger packs in the window
trajrl stats # network totals (reports, cost USD, LLM calls, tokens)
trajrl epoch 12345 # full epoch detail + per-validator submissions
trajrl leaderboard # v6 leaderboard — winner + ranked miners
trajrl events --limit 20 # recent eval events (validator → miner reports)
trajrl events --since 2026-05-21T00:00:00Z
trajrl winners # winner takeover history + cumulative α emission
trajrl prices # TAO + SN11 alpha price strip + 30d stake APY
trajrl nodes # node heartbeat summary
trajrl nodes --type validatortrajrl scores HOTKEY # one validator's recent per-miner reports (last 24h)
trajrl scores --uid 7
trajrl progress # per-validator progress through current cycle
trajrl activity HOTKEY --limit 50 # per-epoch participation historytrajrl bench # per-scenario quality leaderboard (latest spec)
trajrl bench --spec 7
trajrl bench-miner HOTKEY # one miner's per-scenario best scores
trajrl bench-miner HOTKEY --spec 7trajrl logs --validator HOTKEY --limit 20
trajrl logs --eval-id 20260329_1430_w42 --show
trajrl logs --eval-id 20260329_1430_w42 --dump-to ./debug/A miner eval archive contains:
SKILL.md # miner's product
JUDGE.md # scoring rubric used
metadata.json # final_score, delta, episode qualities
world.json # scenario context + salt
episodes/episode_N/
testee_transcript.txt # agent's session log
judge_transcript.txt # judge agent's grading log
evaluation.json # per-criterion scores + summary
episode.json # fixtures + instruction
Every command accepts:
| Option | Description |
|---|---|
--json / -j |
Force JSON output (auto when piped) |
--base-url |
Override API base URL (env: TRAJRL_BASE_URL) |
--version / -v |
Print version and exit |
Piped output is JSON for every command — handy with jq:
trajrl winner | jq '.current.winner.uid'
trajrl queue --eligible-only | jq '.queue | length'
trajrl validators | jq '.validators[] | {uid, name, version, weightTargets}'v1.x shipped three binaries: trajrl, trajectoryrl-inspector, bittensor-subnet-inspector. v2.0 collapses everything into one trajrl binary.
| v1.x | v2.0 |
|---|---|
trajectoryrl-inspector status |
trajrl validators |
trajectoryrl-inspector download HOTKEY HASH |
trajrl pack HOTKEY HASH |
trajectoryrl-inspector download --uid N |
trajrl miner --uid N |
trajectoryrl-inspector analyze HOTKEY |
trajrl analyze HOTKEY |
trajectoryrl-inspector logs ... |
trajrl logs ... |
trajectoryrl-inspector submissions |
trajrl submissions |
bittensor-subnet-inspector metagraph -u 11 |
btcli subnet metagraph --netuid 11 (no longer in trajrl) |
bittensor-subnet-inspector emission -u 11 |
btcli subnet hyperparameters --netuid 11 (no longer in trajrl) |
New v2.0 commands: trajrl challenge, trajrl winner, trajrl queue (v6 dual-seat winner-challenger).
v2.1 (this release): removed trajrl chain group — it was redundant with btcli and pulled in the heavy bittensor SDK as a hard dependency. v2.1 has no chain-query commands; use btcli subnet metagraph / btcli subnet hyperparameters instead. Result: much lighter install (no substrate-interface, scalecodec, websockets, etc.).
- Subnet repo: https://github.com/trajectoryRL/trajectoryRL — incentive mechanism, evaluation framework
- Bench: https://github.com/trajectoryRL/trajrl-bench — eval sandbox
- Website: https://trajrl.com — leaderboard, live subnet data, skill hub
- Public API: PUBLIC_API.md — read-only, no auth, base URL
https://trajrl.com