pokewiki
Look things up across four Pokémon wikis — Bulbapedia (en), 神奇宝贝百科 / 52poke
(zh), PokéWiki (de), WikiDex (es) — through one English CLI: pokewiki.
pokemon-wikis-cli is an unofficial, independent tool — not affiliated with or
endorsed by any of these wikis or The Pokémon Company.
When to use this skill
Reach for it for any factual Pokémon question: a species' typing/stats/abilities, what a move does, type matchups, evolution lines, which Pokémon share a trait, or game-specific facts like a title's available roster, regional Pokédex, or current competitive regulation.
Treat the wikis as ground truth, not your memory. Pokémon detail is vast, versioned, and frequently updated — rosters change per regulation, names differ per language, a "fact" you recall may be from the wrong game or simply wrong. When accuracy matters, look it up before you answer. The cost of a lookup is one command; the cost of confidently stating a wrong type, stat, or "this Pokémon is in this game" is a wrong answer the user has to catch.
Getting the CLI
Resolve the command with the bundled script (resolve its path relative to this
SKILL.md). It prints the command to use, or exits non-zero with install
instructions:
scripts/ensure-pokewiki.sh
It checks, in order: a pokewiki already on PATH, then uvx (runs it straight
from GitHub — no install; uv caches the build after first use). If neither is
present it prints install options and exits 1 — do not install anything
yourself; surface the options and let the user choose.
All examples below write pokewiki; substitute whatever the script prints.
Pick a wiki: -w is required
Every lookup runs against exactly one wiki, chosen with -w / --wiki:
-w | wiki | use it for |
|---|---|---|
en | Bulbapedia | the broadest English coverage; default choice for English |
zh-hans | 52poke (神奇宝贝百科) | Chinese queries; simplified output |
zh-hant | 52poke | Chinese queries; traditional output |
de | PokéWiki | German; no CirrusSearch — plain search works, but search -c doesn't; use filter |
es | WikiDex | Spanish |
Match the wiki to the user's language, or to where the fact lives. A page title
is per-wiki and not translated — Pikachu on en, 皮卡丘 on zh-hans.
The four commands
| Command | Use it when |
|---|---|
search <query> | You need to find a page or don't know its exact title (fuzzy, full-text). |
filter <keys…> | You want every Pokémon matching an intersection of traits (type, generation, egg group, region, ability). |
page <title> | You know the page (or a name that redirects to it) and want its raw wikitext — stats, typing, abilities, movesets. |
keywords [axis] | You need to see the valid constraint keys for filter. |
pokewiki search "皮卡丘" -w zh-hans # find a page by fuzzy name
pokewiki page "Garchomp" -w en # raw wikitext (follows redirects)
pokewiki filter type:dragon region:hisui -w en # all Hisui-dex Dragon types
pokewiki keywords region -w en # valid region: keys on Bulbapedia
Add --format json to any command for structured output to parse; omit it to
read results yourself. See references/cli.md for every flag and exit code.
Choosing between them
- Know the exact subject (a named Pokémon, move, or ability) →
page. It follows redirects, so a bare name usually resolves to the article. - Looking for the right page / unsure of the title →
search. Thenpagethe best hit to read it. - Enumerating by trait ("all Electric gen-1", "Water/Ground types") →
filter. Keys AND-intersect; pass them space- or comma-separated. - Narrowing a text search by a trait →
search "<text>" -c type:electric(CirrusSearch wikis only — notde).
Constraint vocabulary for filter
Keys are English and resolve to each wiki's native category. Two kinds:
- Universal (identical on every wiki):
type:(18),gen:(1–9),egg:(14 egg groups). - Per-wiki (only where that wiki categorises so):
region:onen(9) andzh(10);ability:onzhonly (312). Using one on a wiki that lacks it is a clear error that names the wikis which do support it.
Run pokewiki keywords for the union of all keys, or pokewiki keywords -w <wiki>
to see one wiki's keys with their native category names. For anything outside
this vocabulary, use search.
A worked pattern: multi-step lookups
Real questions often chain the commands — and chaining is also how you avoid answering from stale memory. To find a counter to a threat within a specific game's available roster:
searchthe threat's name to confirm you have the right page.pageit to read its real typing, stats, and ability — not what you recall.pagethe game's roster/regulation article to see what is actually available (this is the step that catches "I assumed X was in this game").filterby the relevant type within that pool to enumerate real options.
Each step replaces an assumption with a fact from the wiki. When a lookup contradicts what you were about to say, trust the lookup.
Compliance (don't work around it)
This tool is deliberately polite to the wikis, and that is a feature. It uses only the MediaWiki API (never scraping), serializes and rate-limits requests, caches for 24h, and sends an identifying User-Agent. Don't try to parallelise it, bypass the cache in a loop, or add the Japanese/French/Italian wikis (excluded because they block automated access). If a request is throttled (exit code 4), wait and retry once — don't hammer it.
References
references/cli.md— every command, argument, flag, output shape, and exit code.