Mobalytics LoL — Printing Press CLI
Prerequisites: Install the CLI
This skill drives the mobalytics-lol-pp-cli binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first:
- Install via the Printing Press installer. It defaults binaries to
$HOME/.local/binon macOS/Linux and%LOCALAPPDATA%\Programs\PrintingPress\binon Windows:npx -y @mvanhorn/printing-press-library install mobalytics-lol --cli-only - Verify:
mobalytics-lol-pp-cli --version - Ensure the reported install directory is on
$PATHfor the agent/runtime that will invoke this skill.
If the npx install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.6 or newer):
go install github.com/mvanhorn/printing-press-library/library/media-and-entertainment/mobalytics-lol/cmd/mobalytics-lol-pp-cli@latest
If --version reports "command not found" after install, the runtime cannot see the binary directory on $PATH. Do not proceed with skill commands until verification succeeds.
When to Use This CLI
Use this CLI when an agent needs aggregator-quality LoL champion data without a headless browser, when you want to compose cross-champion queries (pool vs pool, patch diffs, flex pickers) no aggregator page surfaces, or when you want ARAM/SR item-sets exported to the LoL client in batch. Reach for it during draft analysis, agentic Discord-bot prompts about 'who beats X this patch', morning-ritual pool digests, or coach pre-scrim preparation. Don't use it for live game data (Riot's match API is the right source) or personal summoner profiles (Mobalytics Plus's overlay is the right tool).
When Not to Use This CLI
Do not activate this CLI for requests that require creating, updating, deleting, publishing, commenting, upvoting, inviting, ordering, sending messages, booking, purchasing, or changing remote state. This printed CLI exposes read-only commands for inspection, export, sync, and analysis.
Unique Capabilities
These capabilities aren't available in any other tool for this API.
Cross-pool draft analysis
counter-pool— Given our champion pool and the enemy pool, return the full matchup matrix ranked by WR delta with sample-size floor — the SQL coaches do in their head.Reach for this when an agent or coach needs to know 'given two confirmed champion pools, who picks into whom.' Avoids N×M page loads.
mobalytics-lol-pp-cli counter-pool --our darius,aatrox,garen --their fiora,sett,renekton --agentmeta-shift— Diff two tier_snapshots and list champions that gained or lost ≥1 tier or ≥2% WR since a prior patch, with sample-size guard.Use when an agent or coach needs to answer 'what changed this patch' without manually diffing tier-list screenshots.
mobalytics-lol-pp-cli meta-shift --since-patch 14.10 --role top --agent --select winner,loser,deltacompare— Side-by-side join across tier, build, counters, and matchups for two champions — including item-overlap percentage.Resolves draft-time 'which of these two is better right now' questions in one command.
mobalytics-lol-pp-cli compare aatrox dariusduo-finder— Best support pairings for a given ADC, restricted to a candidate support pool — coaches' player pools are fixed.Use when the support pool is fixed (coach, duo queue, ranked flex) and you need WR-ranked picks from that subset.
mobalytics-lol-pp-cli duo-finder --bot jinx --supports-from lulu,nami,leona
Build artifact export
item-set— Write LoL client item-set JSON for N champions in ARAM mode in one command, refreshing all stale files in the client config folder.Use when an ARAM player wants game-ready item-sets across their reroll pool without alt-tabbing between champ select and a website.
mobalytics-lol-pp-cli item-set --aram aatrox,jinx,lulu,yasuo,sett --to client
Daily-ritual collapse
pool-digest— For each champion in your pool: current tier, WR delta since last patch, top-1 counter, top-1 synergy — all in one composite query.Use as a morning ritual or pre-queue command to surface what changed about your specific champions.
mobalytics-lol-pp-cli pool-digest --pool darius,aatrox,garen --agent
Mobalytics signature features
power-spike— List champions ranked by early/mid/late spike strength for a chosen role — inverts Mobalytics's per-champion data into a leaderboard.Use when picking around a teammate's pick (ARAM, draft) to find spike-aligned champions.
mobalytics-lol-pp-cli power-spike --phase early --role jungle --top 20 --agent
Draft toolkit
flex— Champions that are ≥A-tier in 2+ roles for the same patch and rank — the SQL no aggregator surfaces because they index by role first.Use when drafting champions who don't tip your hand about role — invaluable for fearless-draft formats and amateur scrims.
mobalytics-lol-pp-cli flex --min-roles 2tier-list— Same patch, same rank — three regions side-by-side. Surfaces pick-priority drift between KR/EUW/NA that no aggregator defaults to.Use to spot regional meta divergence — KR is usually 2 weeks ahead of NA, and this surfaces it in one view.
mobalytics-lol-pp-cli tier-list --compare-regions kr,euw,na
HTTP Transport
This CLI uses Chrome-compatible HTTP transport for browser-facing endpoints. It does not require a resident browser process for normal API calls.
Discovery Signals
This CLI was generated with browser-observed traffic context.
- Capture coverage: 6 API entries from 6 total network entries
- Protocols: rest_json (75% confidence)
- Candidate command ideas: list_Aatrox.json — Derived from observed GET /cdn/16.10.1/data/en_US/champion/Aatrox.json traffic.; list_champion.json — Derived from observed GET /cdn/16.10.1/data/en_US/champion.json traffic.; list_item.json — Derived from observed GET /cdn/16.10.1/data/en_US/item.json traffic.; list_runesReforged.json — Derived from observed GET /cdn/16.10.1/data/en_US/runesReforged.json traffic.; list_summoner.json — Derived from observed GET /cdn/16.10.1/data/en_US/summoner.json traffic.; list_versions.json — Derived from observed GET /api/versions.json traffic.
Command Reference
cdn — Manage cdn
versions-json — Manage versions json
mobalytics-lol-pp-cli versions-json— Returns the full list of LoL patch versions known to Data Dragon, newest first. The first element is the current patch.
Finding the right command
When you know what you want to do but not which command does it, ask the CLI directly:
mobalytics-lol-pp-cli which "<capability in your own words>"
which resolves a natural-language capability query to the best matching command from this CLI's curated feature index. Exit code 0 means at least one match; exit code 2 means no confident match — fall back to --help or use a narrower query.
Recipes
Diamond+ jungle picks that spike early
mobalytics-lol-pp-cli power-spike --phase early --role jungle --top 10 --agent
Inverts Mobalytics's per-champion power-spike data into a leaderboard scoped by role and rank — useful when picking around a teammate's pick or when an agent needs to recommend early-game junglers for a side comp.
Pre-scrim pool-vs-pool matrix as JSON
mobalytics-lol-pp-cli counter-pool --our darius,aatrox,garen --their fiora,sett,renekton --agent --select our,their,wr,sample
Coaches' classic question — given our 3 picks and their 3 picks in top lane, what's the full 3×3 matchup matrix with sample sizes. The --select keeps only the four columns an agent needs.
Export ARAM item-sets to the LoL client for tonight's session
mobalytics-lol-pp-cli item-set --aram aatrox,jinx,lulu,yasuo,sett,thresh,brand --to client
Replaces the dead Championify workflow for ARAM: one command writes 7 game-ready item-set JSON files into the LoL client config folder. No browser, no copy-paste, restart client to use.
What moved up since last patch in mid lane
mobalytics-lol-pp-cli meta-shift --since-patch 16.9 --role mid --agent
Diffs the current tier_snapshots against the snapshot from patch 16.9. The --agent flag returns structured JSON of winners (gained ≥1 tier) and losers, with sample guard so noise gets filtered.
Agent draft prompt — head-to-head with field narrowing
mobalytics-lol-pp-cli compare aatrox darius --agent --select tier,winrate,top_counter,top_synergy,build_overlap_pct
A Discord-bot or Claude-driven draft assistant pipes this through jq to surface 'which is the better top pick right now' in one call. The --select keeps the payload tight enough for agent context windows even when both champions have 50+ matchup rows in the underlying tables.
Auth Setup
No authentication required.
Run mobalytics-lol-pp-cli doctor to verify setup.
Agent Mode
Add --agent to any command. Expands to: --json --compact --no-input --no-color --yes.
Pipeable — JSON on stdout, errors on stderr
Filterable —
--selectkeeps a subset of fields. Dotted paths descend into nested structures; arrays traverse element-wise. Critical for keeping context small on verbose APIs:mobalytics-lol-pp-cli versions-json --agent --select id,name,statusPreviewable —
--dry-runshows the request without sendingOffline-friendly — sync/search commands can use the local SQLite store when available
Non-interactive — never prompts, every input is a flag
Read-only — do not use this CLI for create, update, delete, publish, comment, upvote, invite, order, send, or other mutating requests
Response envelope
Commands that read from the local store or the API wrap output in a provenance envelope:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
Parse .results for data and .meta.source to know whether it's live or local. A human-readable N results (live) summary is printed to stderr only when stdout is a terminal AND no machine-format flag (--json, --csv, --compact, --quiet, --plain, --select) is set — piped/agent consumers and explicit-format runs get pure JSON on stdout.
Agent Feedback
When you (or the agent) notice something off about this CLI, record it:
mobalytics-lol-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
mobalytics-lol-pp-cli feedback --stdin < notes.txt
mobalytics-lol-pp-cli feedback list --json --limit 10
Entries are stored locally at ~/.mobalytics-lol-pp-cli/feedback.jsonl. They are never POSTed unless MOBALYTICS_LOL_FEEDBACK_ENDPOINT is set AND either --send is passed or MOBALYTICS_LOL_FEEDBACK_AUTO_SEND=true. Default behavior is local-only.
Write what surprised you, not a bug report. Short, specific, one line: that is the part that compounds.
Output Delivery
Every command accepts --deliver <sink>. The output goes to the named sink in addition to (or instead of) stdout, so agents can route command results without hand-piping. Three sinks are supported:
| Sink | Effect |
|---|---|
stdout |
Default; write to stdout only |
file:<path> |
Atomically write output to <path> (tmp + rename) |
webhook:<url> |
POST the output body to the URL (application/json or application/x-ndjson when --compact) |
Unknown schemes are refused with a structured error naming the supported set. Webhook failures return non-zero and log the URL + HTTP status on stderr.
Named Profiles
A profile is a saved set of flag values, reused across invocations. Use it when a scheduled agent calls the same command every run with the same configuration - HeyGen's "Beacon" pattern.
mobalytics-lol-pp-cli profile save briefing --json
mobalytics-lol-pp-cli --profile briefing versions-json
mobalytics-lol-pp-cli profile list --json
mobalytics-lol-pp-cli profile show briefing
mobalytics-lol-pp-cli profile delete briefing --yes
Explicit flags always win over profile values; profile values win over defaults. agent-context lists all available profiles under available_profiles so introspecting agents discover them at runtime.
Exit Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 2 | Usage error (wrong arguments) |
| 3 | Resource not found |
| 5 | API error (upstream issue) |
| 7 | Rate limited (wait and retry) |
| 10 | Config error |
Argument Parsing
Parse $ARGUMENTS:
- Empty,
help, or--help→ showmobalytics-lol-pp-cli --helpoutput - Starts with
install→ ends withmcp→ MCP installation; otherwise → see Prerequisites above - Anything else → Direct Use (execute as CLI command with
--agent)
MCP Server Installation
- Install the MCP server:
go install github.com/mvanhorn/printing-press-library/library/media-and-entertainment/mobalytics-lol/cmd/mobalytics-lol-pp-mcp@latest - Register with Claude Code:
claude mcp add mobalytics-lol-pp-mcp -- mobalytics-lol-pp-mcp - Verify:
claude mcp list
Direct Use
- Check if installed:
which mobalytics-lol-pp-cliIf not found, offer to install (see Prerequisites at the top of this skill). - Match the user query to the best command from the Unique Capabilities and Command Reference above.
- Execute with the
--agentflag:mobalytics-lol-pp-cli <command> [subcommand] [args] --agent - If ambiguous, drill into subcommand help:
mobalytics-lol-pp-cli <command> --help.