Official Python CLI for TrajectoryRL (Bittensor SN11) — skill hub, live subnet state, validator analysis.
Project description
trajrl
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.
One install, one binary, two groups:
| Group | What it does |
|---|---|
trajrl skills ... |
Browse and install agent skills published on trajrl.com into your local agent skill dirs (Claude Code, Cursor, Codex, Hermes, OpenClaw). |
trajrl <subnet command> |
Live SN11 state — winner, challenger, queue, validators, miners, packs, eval logs, 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.
Install
pip install trajrl
Live SN11 state (v6 winner-challenger)
trajrl 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 now
Validators / miners / packs
trajrl 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 --failed
Subnet analysis
trajrl 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 packs
analyze 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
Eval logs (debug + audit)
trajrl 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
Skill hub
trajrl skills list # all available skills
trajrl skills list --tag dev-tools --tag data # filter by tags (AND)
trajrl skills search "code review"
trajrl skills show self-learning
trajrl skills add self-learning # install into every detected agent
trajrl skills add self-learning --agent cursor
trajrl skills sync # re-pull installed skills if newer upstream
Default agent skill directories (auto-detected by directory existence):
| Agent | Path |
|---|---|
| Claude Code | ~/.claude/skills/<slug>/SKILL.md |
| Cursor | ~/.cursor/skills-cursor/<slug>/SKILL.md |
| Codex | ~/.codex/skills/<slug>/SKILL.md |
| Hermes | ~/.hermes/skills/<slug>/SKILL.md |
| OpenClaw | ~/.openclaw/skills/<slug>/SKILL.md |
Global options
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 |
JSON output
Piped output is JSON for every command — handy with jq:
trajrl skills list | jq '.skills[].slug'
trajrl winner | jq '.current.winner.uid'
trajrl queue --eligible-only | jq '.queue | length'
trajrl validators | jq '.validators[] | {uid, name, version, weightTargets}'
Skills (in this repo)
skills/trajrl/SKILL.md— full agent-facing reference
Migration from v1.x
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.).
Links
- 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file trajrl-2.2.0.tar.gz.
File metadata
- Download URL: trajrl-2.2.0.tar.gz
- Upload date:
- Size: 28.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5371a6870851d01bf87b446dbdde366ea2d2beb4b96a2479d8d430fb824c30ea
|
|
| MD5 |
7ffed993a120d1349878b26ea6dedbd9
|
|
| BLAKE2b-256 |
0f1f08fb8280a6e619a167773cb0508a56ecbf91290412ea9c4bfd64bf327e05
|
Provenance
The following attestation bundles were made for trajrl-2.2.0.tar.gz:
Publisher:
publish.yml on trajectoryRL/trajrl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
trajrl-2.2.0.tar.gz -
Subject digest:
5371a6870851d01bf87b446dbdde366ea2d2beb4b96a2479d8d430fb824c30ea - Sigstore transparency entry: 1492239158
- Sigstore integration time:
-
Permalink:
trajectoryRL/trajrl@960a38c0472cbcad70a12acc63b93b453d3ce199 -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/trajectoryRL
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@960a38c0472cbcad70a12acc63b93b453d3ce199 -
Trigger Event:
push
-
Statement type:
File details
Details for the file trajrl-2.2.0-py3-none-any.whl.
File metadata
- Download URL: trajrl-2.2.0-py3-none-any.whl
- Upload date:
- Size: 30.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70878464768632ec42ec10b2018df7c48db7c97cf20cfc3a0da52e867aecd78d
|
|
| MD5 |
5411f34b67433c512fa1fbcd73ab555d
|
|
| BLAKE2b-256 |
3c466e454f5bd0f4f125a7fb26391031e0a2765253205569d61b88d8bf1c1e74
|
Provenance
The following attestation bundles were made for trajrl-2.2.0-py3-none-any.whl:
Publisher:
publish.yml on trajectoryRL/trajrl
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
trajrl-2.2.0-py3-none-any.whl -
Subject digest:
70878464768632ec42ec10b2018df7c48db7c97cf20cfc3a0da52e867aecd78d - Sigstore transparency entry: 1492239297
- Sigstore integration time:
-
Permalink:
trajectoryRL/trajrl@960a38c0472cbcad70a12acc63b93b453d3ce199 -
Branch / Tag:
refs/tags/v2.2.0 - Owner: https://github.com/trajectoryRL
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@960a38c0472cbcad70a12acc63b93b453d3ce199 -
Trigger Event:
push
-
Statement type: