Orchardcore Query Indexing
OrchardCMS/OrchardCore
Works with OrchardCore queries and indexing — SQL/Lucene/Elasticsearch queries, full-text index profiles, content part/field index handlers, and search.
PokéAPI as a fully offline Pokédex with SQL, full-text search, type math, and a damage calculator no other Pokémon tool ships as a CLI.
$ npx skills add mvanhorn/printing-press-library --skill pp-pokeapi -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mvanhorn/printing-press-library pp-pokeapi --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .claude/skills && cp -r skills-src/cli-skills/pp-pokeapi .claude/skills/pp-pokeapi && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "pp-pokeapi" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-pokeapi into .claude/skills/pp-pokeapi/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-pokeapi", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-pokeapiType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add mvanhorn/printing-press-library --skill pp-pokeapi -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mvanhorn/printing-press-library pp-pokeapi --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .agents/skills && cp -r skills-src/cli-skills/pp-pokeapi .agents/skills/pp-pokeapi && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pp-pokeapi" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-pokeapi into .agents/skills/pp-pokeapi/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-pokeapi", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mvanhorn/printing-press-library --skill pp-pokeapi -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mvanhorn/printing-press-library pp-pokeapi --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/cli-skills/pp-pokeapi .cursor/skills/pp-pokeapi && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "pp-pokeapi" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-pokeapi into .cursor/skills/pp-pokeapi/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-pokeapi", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/mvanhorn/printing-press-library.git --path cli-skills/pp-pokeapi--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add mvanhorn/printing-press-library --skill pp-pokeapi -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mvanhorn/printing-press-library pp-pokeapi --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/cli-skills/pp-pokeapi .gemini/skills/pp-pokeapi && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "pp-pokeapi" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-pokeapi into .gemini/skills/pp-pokeapi/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-pokeapi", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install mvanhorn/printing-press-library pp-pokeapiInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add mvanhorn/printing-press-library --skill pp-pokeapi -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .github/skills && cp -r skills-src/cli-skills/pp-pokeapi .github/skills/pp-pokeapi && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "pp-pokeapi" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-pokeapi into .github/skills/pp-pokeapi/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-pokeapi", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mvanhorn/printing-press-library --skill pp-pokeapi -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mvanhorn/printing-press-library pp-pokeapi --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/cli-skills/pp-pokeapi .opencode/skills/pp-pokeapi && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "pp-pokeapi" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-pokeapi into .opencode/skills/pp-pokeapi/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-pokeapi", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
pp-pokeapiPokéAPI as a fully offline Pokédex with SQL, full-text search, type math, and a damage calculator no other Pokémon tool ships as a CLI.
Pp Pokeapi is an agent skill from mvanhorn/printing-press-library. PokéAPI as a fully offline Pokédex with SQL, full-text search, type math, and a damage calculator no other Pokémon tool ships as a CLI. Trigger phrases: look up a pokemon, what beats charizard, build a pokemon team, type matchup, evolution chain, use pokeapi, run pokeapi-pp-cli.
Its SKILL.md is about 7.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Backend & APIs, covering Search implementation and SQL. It works with SQL. The repository describes itself as: Official library of CLIs generated by the CLI Printing Press. Endorsed, tested, and community-contributed. The licence is Apache-2.0.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 0fdcc7a. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadBashFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
goclaudenpxFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
bulbapedia.bulbagarden.netFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Pp Pokeapi loads about 7.6k tokens when it runs. Until then it costs about 76 tokens; SKILL.md has 3,566 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, BashAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from mvanhorn/printing-press-library at commit 0fdcc7a, republished under its Apache-2.0 licence (© mvanhorn). 3,566 words, ~7,577 tokens.
.claude/skills/pp-pokeapi/SKILL.md (or your agent's skills folder).<!-- GENERATED FILE — DO NOT EDIT.
This file is a verbatim mirror of library/media-and-entertainment/pokeapi/SKILL.md,
regenerated post-merge by tools/generate-skills/. Hand-edits here are
silently overwritten on the next regen. Edit the library/ source instead.
See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->
This skill drives the pokeapi-pp-cli binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first:
$HOME/.local/bin on macOS/Linux and %LOCALAPPDATA%\Programs\PrintingPress\bin on Windows:npx -y @mvanhorn/printing-press-library install pokeapi --cli-onlypokeapi-pp-cli --version$PATH for 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/pokeapi/cmd/pokeapi-pp-cli@latestIf --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.
Reach for this CLI when you want a fully-local, fully-queryable Pokédex. It is ideal for agents answering Pokémon questions without spending live API calls, for battle-planning workflows that combine type math and learnset filtering, and for any reverse-search question (find the move, the ability, the form, the requirement) that the live REST surface doesn't natively answer. Skip it for purely image-driven workflows where another tool already handles sprite rendering.
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.
These capabilities aren't available in any other tool for this API.
pokemon by-ability — Find every Pokémon with a given ability. Live API has no reverse index — this is a single SQL query against the local store.
Reach for this when an agent needs to enumerate Pokémon by trait without making thousands of API calls.
pokeapi-pp-cli pokemon by-ability levitate --json --select name,typesmove find — Find moves by status effect, damage class, type, or target — e.g. all moves that paralyze a Steel-type.
Use this for battle planning questions framed by effect rather than by move name.
pokeapi-pp-cli move find --effect paralyze --type-target steel --jsonteam suggest — Given an in-progress team, score every remaining Pokémon by how well it covers the team's typing gaps. Returns top candidates.
Best for team-building agents that need objective gap-coverage scoring rather than vibes-based recommendations.
pokeapi-pp-cli team suggest pikachu,charizard --slots 6 --json --select name,types,scorepokemon diff-learnset — Compare the move learnsets of two Pokémon (often regional forms or megas) and surface what each can learn that the other cannot.
Useful when an agent needs to argue 'why pick form X over form Y' with concrete move evidence.
pokeapi-pp-cli pokemon diff-learnset charizard charizard-mega-x --jsonpokemon history — Show how a Pokémon has changed over generations: type changes, stat changes, ability changes, and which generation it was introduced in.
Reach for this when answering historical Pokémon questions ('was Clefairy always a Fairy type?').
pokeapi-pp-cli pokemon history clefairy --jsonpokemon forms — List every form for a species (e.g. Vulpix vs Alolan Vulpix) with type, stat, and ability deltas inline.
Use when an agent needs a species-wide answer rather than a single-form payload.
pokeapi-pp-cli pokemon forms vulpix --jsonevolve into — Given a target Pokémon, surface the species you would need to evolve and the conditions (item, level, friendship, time of day) to get there.
Pick this when the user knows the Pokémon they want and needs the path to it, not the inverse.
pokeapi-pp-cli evolve into umbreon --jsonteam gaps — List which of the 18 types your in-progress team has neither defensive resistance nor offensive super-effectiveness against.
Use when answering 'what would a hostile team most likely exploit on this lineup?'
pokeapi-pp-cli team gaps pikachu,charizard,blastoise --jsonencounters by-region — Render a region-level encounter table joining locations, areas, encounters, and species — every Pokémon you can find in (e.g.) Kanto.
When the question is regional ('what catches in Kanto?') rather than per-Pokémon.
pokeapi-pp-cli encounters by-region kanto --version red --jsonsearch — Full-text search across Pokémon, moves, abilities, items, and locations — names plus flavor text — with relevance ranking.
Agent fallback when names are partial or fuzzy; replaces multiple list calls + grep.
pokeapi-pp-cli search "flame" --type move --limit 10 --jsonsql — Read-only SQL access to the local store. Power users and agents can compose joins the CLI doesn't expose directly.
Reach for this when a one-off question doesn't have a dedicated subcommand.
pokeapi-pp-cli sql "SELECT id FROM resources WHERE resource_type='pokemon' ORDER BY id LIMIT 10" --jsondamage — Compute expected damage range for a move from one Pokémon to another, factoring in STAB, type effectiveness, level, and base stats.
Reach for this on every battle-planning question framed as 'will it KO?' or 'how hard does X hit Y?'
pokeapi-pp-cli damage charizard blastoise hydro-pump --level1 50 --level2 50 --jsonpokemon top — Rank Pokémon by a base stat (attack, special-attack, speed, hp, etc.), optionally filtered by type. Returns the top N.
Use when learning the meta or filling a role on a team where the question is 'who's the best X-type at Y?'
pokeapi-pp-cli pokemon top --by special-attack --type ghost --limit 10 --jsonability — Manage ability
pokeapi-pp-cli ability list — Abilities provide passive effects for Pokémon in battle or in the overworld. Pokémon have multiple possible...pokeapi-pp-cli ability retrieve — Abilities provide passive effects for Pokémon in battle or in the overworld. Pokémon have multiple possible...berry — Manage berry
pokeapi-pp-cli berry list — Berries are small fruits that can provide HP and status condition restoration, stat enhancement, and even damage...pokeapi-pp-cli berry retrieve — Berries are small fruits that can provide HP and status condition restoration, stat enhancement, and even damage...berry-firmness — Manage berry firmness
pokeapi-pp-cli berry-firmness list — Berries can be soft or hard. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Category:Berries_by_firmne...pokeapi-pp-cli berry-firmness retrieve — Berries can be soft or hard. Check out [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Category:Berries_by_firmne...berry-flavor — Manage berry flavor
pokeapi-pp-cli berry-flavor list — Flavors determine whether a Pokémon will benefit or suffer from eating a berry based on their nature. Check out...pokeapi-pp-cli berry-flavor retrieve — Flavors determine whether a Pokémon will benefit or suffer from eating a berry based on their nature. Check out...characteristic — Manage characteristic
pokeapi-pp-cli characteristic list — Characteristics indicate which stat contains a Pokémon's highest IV. A Pokémon's Characteristic is determined by...pokeapi-pp-cli characteristic retrieve — Characteristics indicate which stat contains a Pokémon's highest IV. A Pokémon's Characteristic is determined by...contest-effect — Manage contest effect
pokeapi-pp-cli contest-effect list — Contest effects refer to the effects of moves when used in contests.pokeapi-pp-cli contest-effect retrieve — Contest effects refer to the effects of moves when used in contests.contest-type — Manage contest type
pokeapi-pp-cli contest-type list — Contest types are categories judges used to weigh a Pokémon's condition in Pokémon contests. Check out...pokeapi-pp-cli contest-type retrieve — Contest types are categories judges used to weigh a Pokémon's condition in Pokémon contests. Check out...egg-group — Manage egg group
pokeapi-pp-cli egg-group list — Egg Groups are categories which determine which Pokémon are able to interbreed. Pokémon may belong to either one...pokeapi-pp-cli egg-group retrieve — Egg Groups are categories which determine which Pokémon are able to interbreed. Pokémon may belong to either one...encounter-condition — Manage encounter condition
pokeapi-pp-cli encounter-condition list — Conditions which affect what pokemon might appear in the wild, e.g., day or night.pokeapi-pp-cli encounter-condition retrieve — Conditions which affect what pokemon might appear in the wild, e.g., day or night.encounter-condition-value — Manage encounter condition value
pokeapi-pp-cli encounter-condition-value list — Encounter condition values are the various states that an encounter condition can have, i.e., time of day can be...pokeapi-pp-cli encounter-condition-value retrieve — Encounter condition values are the various states that an encounter condition can have, i.e., time of day can be...encounter-method — Manage encounter method
pokeapi-pp-cli encounter-method list — Methods by which the player might can encounter Pokémon in the wild, e.g., walking in tall grass. Check out...pokeapi-pp-cli encounter-method retrieve — Methods by which the player might can encounter Pokémon in the wild, e.g., walking in tall grass. Check out...evolution-chain — Manage evolution chain
pokeapi-pp-cli evolution-chain list — Evolution chains are essentially family trees. They start with the lowest stage within a family and detail evolution...pokeapi-pp-cli evolution-chain retrieve — Evolution chains are essentially family trees. They start with the lowest stage within a family and detail evolution...evolution-trigger — Manage evolution trigger
pokeapi-pp-cli evolution-trigger list — Evolution triggers are the events and conditions that cause a Pokémon to evolve. Check out...pokeapi-pp-cli evolution-trigger retrieve — Evolution triggers are the events and conditions that cause a Pokémon to evolve. Check out...gender — Manage gender
pokeapi-pp-cli gender list — Genders were introduced in Generation II for the purposes of breeding Pokémon but can also result in visual...pokeapi-pp-cli gender retrieve — Genders were introduced in Generation II for the purposes of breeding Pokémon but can also result in visual...generation — Manage generation
pokeapi-pp-cli generation list — A generation is a grouping of the Pokémon games that separates them based on the Pokémon they include. In each...pokeapi-pp-cli generation retrieve — A generation is a grouping of the Pokémon games that separates them based on the Pokémon they include. In each...growth-rate — Manage growth rate
pokeapi-pp-cli growth-rate list — Growth rates are the speed with which Pokémon gain levels through experience. Check out...pokeapi-pp-cli growth-rate retrieve — Growth rates are the speed with which Pokémon gain levels through experience. Check out...item — An item is an object in the games which the player can pick up, keep in their bag, and use in some manner. They have various uses, including healing, powering up, helping catch Pokémon, or to access a new area.
pokeapi-pp-cli item list — An item is an object in the games which the player can pick up, keep in their bag, and use in some manner. They have...pokeapi-pp-cli item retrieve — An item is an object in the games which the player can pick up, keep in their bag, and use in some manner. They have...item-attribute — Manage item attribute
pokeapi-pp-cli item-attribute list — Item attributes define particular aspects of items, e.g.'usable in battle' or 'consumable'.pokeapi-pp-cli item-attribute retrieve — Item attributes define particular aspects of items, e.g.'usable in battle' or 'consumable'.item-category — Manage item category
pokeapi-pp-cli item-category list — Item categories determine where items will be placed in the players bag.pokeapi-pp-cli item-category retrieve — Item categories determine where items will be placed in the players bag.item-fling-effect — Manage item fling effect
pokeapi-pp-cli item-fling-effect list — The various effects of the move'Fling' when used with different items.pokeapi-pp-cli item-fling-effect retrieve — The various effects of the move'Fling' when used with different items.item-pocket — Manage item pocket
pokeapi-pp-cli item-pocket list — Pockets within the players bag used for storing items by category.pokeapi-pp-cli item-pocket retrieve — Pockets within the players bag used for storing items by category.language — Manage language
pokeapi-pp-cli language list — Languages for translations of API resource information.pokeapi-pp-cli language retrieve — Languages for translations of API resource information.location — Locations that can be visited within the games. Locations make up sizable portions of regions, like cities or routes.
pokeapi-pp-cli location list — Locations that can be visited within the games. Locations make up sizable portions of regions, like cities or routes.pokeapi-pp-cli location retrieve — Locations that can be visited within the games. Locations make up sizable portions of regions, like cities or routes.location-area — Manage location area
pokeapi-pp-cli location-area list — Location areas are sections of areas, such as floors in a building or cave. Each area has its own set of possible...pokeapi-pp-cli location-area retrieve — Location areas are sections of areas, such as floors in a building or cave. Each area has its own set of possible...machine — Machines are the representation of items that teach moves to Pokémon. They vary from version to version, so it is not certain that one specific TM or HM corresponds to a single Machine.
pokeapi-pp-cli machine list — Machines are the representation of items that teach moves to Pokémon. They vary from version to version, so it is...pokeapi-pp-cli machine retrieve — Machines are the representation of items that teach moves to Pokémon. They vary from version to version, so it is...meta — Manage meta
pokeapi-pp-cli meta — Returns metadata about the current deployed version of the API, including the git commit hash, deploy date, and tag...move — Moves are the skills of Pokémon in battle. In battle, a Pokémon uses one move each turn. Some moves (including those learned by Hidden Machine) can be used outside of battle as well, usually for the purpose of removing obstacles or exploring new areas.
pokeapi-pp-cli move list — Moves are the skills of Pokémon in battle. In battle, a Pokémon uses one move each turn. Some moves (including...pokeapi-pp-cli move retrieve — Moves are the skills of Pokémon in battle. In battle, a Pokémon uses one move each turn. Some moves (including...move-ailment — Manage move ailment
pokeapi-pp-cli move-ailment list — Move Ailments are status conditions caused by moves used during battle. See...pokeapi-pp-cli move-ailment retrieve — Move Ailments are status conditions caused by moves used during battle. See...move-battle-style — Manage move battle style
pokeapi-pp-cli move-battle-style list — Styles of moves when used in the Battle Palace. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Battle_Fronti...pokeapi-pp-cli move-battle-style retrieve — Styles of moves when used in the Battle Palace. See [Bulbapedia](http://bulbapedia.bulbagarden.net/wiki/Battle_Fronti...move-category — Manage move category
pokeapi-pp-cli move-category list — Very general categories that loosely group move effects.pokeapi-pp-cli move-category retrieve — Very general categories that loosely group move effects.move-damage-class — Manage move damage class
pokeapi-pp-cli move-damage-class list — Damage classes moves can have, e.g. physical, special, or non-damaging.pokeapi-pp-cli move-damage-class retrieve — Damage classes moves can have, e.g. physical, special, or non-damaging.move-learn-method — Manage move learn method
pokeapi-pp-cli move-learn-method list — Methods by which Pokémon can learn moves.pokeapi-pp-cli move-learn-method retrieve — Methods by which Pokémon can learn moves.move-target — Manage move target
pokeapi-pp-cli move-target list — Targets moves can be directed at during battle. Targets can be Pokémon, environments or even other moves.pokeapi-pp-cli move-target retrieve — Targets moves can be directed at during battle. Targets can be Pokémon, environments or even other moves.nature — Manage nature
pokeapi-pp-cli nature list — Natures influence how a Pokémon's stats grow. See Bulbapedia for...pokeapi-pp-cli nature retrieve — Natures influence how a Pokémon's stats grow. See Bulbapedia for...pal-park-area — Manage pal park area
pokeapi-pp-cli pal-park-area list — Areas used for grouping Pokémon encounters in Pal Park. They're like habitats that are specific to Pal Park.pokeapi-pp-cli pal-park-area retrieve — Areas used for grouping Pokémon encounters in Pal Park. They're like habitats that are specific to Pal Park.pokeathlon-stat — Manage pokeathlon stat
pokeapi-pp-cli pokeathlon-stat list — Pokeathlon Stats are different attributes of a Pokémon's performance in Pokéathlons. In Pokéathlons, competitions...pokeapi-pp-cli pokeathlon-stat retrieve — Pokeathlon Stats are different attributes of a Pokémon's performance in Pokéathlons. In Pokéathlons, competitions...pokedex — Manage pokedex
pokeapi-pp-cli pokedex list — A Pokédex is a handheld electronic encyclopedia device; one which is capable of recording and retaining information...pokeapi-pp-cli pokedex retrieve — A Pokédex is a handheld electronic encyclopedia device; one which is capable of recording and retaining information...pokemon — Pokémon are the creatures that inhabit the world of the Pokémon games. They can be caught using Pokéballs and trained by battling with other Pokémon. Each Pokémon belongs to a specific species but may take on a variant which makes it differ from other Pokémon of the same species, such as base stats, available abilities and typings. See Bulbapedia for greater detail.
pokeapi-pp-cli pokemon list — Pokémon are the creatures that inhabit the world of the Pokémon games. They can be caught using Pokéballs and...pokeapi-pp-cli pokemon retrieve — Pokémon are the creatures that inhabit the world of the Pokémon games. They can be caught using Pokéballs and...pokemon-color — Manage pokemon color
pokeapi-pp-cli pokemon-color list — Colors used for sorting Pokémon in a Pokédex. The color listed in the Pokédex is usually the color most apparent...pokeapi-pp-cli pokemon-color retrieve — Colors used for sorting Pokémon in a Pokédex. The color listed in the Pokédex is usually the color most apparent...pokemon-form — Manage pokemon form
pokeapi-pp-cli pokemon-form list — Some Pokémon may appear in one of multiple, visually different forms. These differences are purely cosmetic. For...pokeapi-pp-cli pokemon-form retrieve — Some Pokémon may appear in one of multiple, visually different forms. These differences are purely cosmetic. For...pokemon-habitat — Manage pokemon habitat
pokeapi-pp-cli pokemon-habitat list — Habitats are generally different terrain Pokémon can be found in but can also be areas designated for rare or...pokeapi-pp-cli pokemon-habitat retrieve — Habitats are generally different terrain Pokémon can be found in but can also be areas designated for rare or...pokemon-shape — Manage pokemon shape
pokeapi-pp-cli pokemon-shape list — Shapes used for sorting Pokémon in a Pokédex.pokeapi-pp-cli pokemon-shape retrieve — Shapes used for sorting Pokémon in a Pokédex.pokemon-species — Manage pokemon species
pokeapi-pp-cli pokemon-species list — A Pokémon Species forms the basis for at least one Pokémon. Attributes of a Pokémon species are shared across all...pokeapi-pp-cli pokemon-species retrieve — A Pokémon Species forms the basis for at least one Pokémon. Attributes of a Pokémon species are shared across all...region — Manage region
pokeapi-pp-cli region list — A region is an organized area of the Pokémon world. Most often, the main difference between regions is the species...pokeapi-pp-cli region retrieve — A region is an organized area of the Pokémon world. Most often, the main difference between regions is the species...stat — Manage stat
pokeapi-pp-cli stat list — Stats determine certain aspects of battles. Each Pokémon has a value for each stat which grows as they gain levels...pokeapi-pp-cli stat retrieve — Stats determine certain aspects of battles. Each Pokémon has a value for each stat which grows as they gain levels...super-contest-effect — Manage super contest effect
pokeapi-pp-cli super-contest-effect list — Super contest effects refer to the effects of moves when used in super contests.pokeapi-pp-cli super-contest-effect retrieve — Super contest effects refer to the effects of moves when used in super contests.type — Manage type
pokeapi-pp-cli type list — Types are properties for Pokémon and their moves. Each type has three properties: which types of Pokémon it is...pokeapi-pp-cli type retrieve — Types are properties for Pokémon and their moves. Each type has three properties: which types of Pokémon it is...version — Manage version
pokeapi-pp-cli version game-list — Versions of the games, e.g., Red, Blue or Yellow.pokeapi-pp-cli version game-retrieve — Versions of the games, e.g., Red, Blue or Yellow.version-group — Manage version group
pokeapi-pp-cli version-group list — Version groups categorize highly similar versions of the games.pokeapi-pp-cli version-group retrieve — Version groups categorize highly similar versions of the games.When you know what you want to do but not which command does it, ask the CLI directly:
pokeapi-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.
pokeapi-pp-cli team gaps pikachu,charizard,blastoise --jsonReturns every type your team has neither resistance nor super-effective answer for. One local join.
pokeapi-pp-cli move find --effect paralyze --type-target steel --json --select name,type,power,accuracyFind paralyzing moves that hit Steel — using --select to keep the response narrow for agent context.
pokeapi-pp-cli pokemon profile pikachu --json --select name,types,stats.hp,stats.attack,abilitiesUse --select with dotted paths to pluck only high-gravity fields out of a deeply nested response — keeps the agent's context light.
pokeapi-pp-cli pokemon diff-learnset vulpix vulpix-alola --jsonSide-by-side learnset diff between Vulpix and Alolan Vulpix. One local query instead of two full API fetches.
pokeapi-pp-cli sql "SELECT id FROM resources WHERE resource_type='pokemon-species' ORDER BY id LIMIT 10" --jsonDrop down to raw SQL when there's no first-class command — read-only, direct local-store access.
No authentication required.
Run pokeapi-pp-cli doctor to verify setup.
Add --agent to any command. Expands to: --json --compact --no-input --no-color --yes.
Pipeable — JSON on stdout, errors on stderr
Filterable — --select keeps a subset of fields. Dotted paths descend into nested structures; arrays traverse element-wise. Critical for keeping context small on verbose APIs:
pokeapi-pp-cli ability list --agent --select id,name,statusPreviewable — --dry-run shows the request without sending
Offline-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
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 — piped/agent consumers get pure JSON on stdout.
When you (or the agent) notice something off about this CLI, record it:
pokeapi-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
pokeapi-pp-cli feedback --stdin < notes.txt
pokeapi-pp-cli feedback list --json --limit 10Entries are stored locally at ~/.pokeapi-pp-cli/feedback.jsonl. They are never POSTed unless POKEAPI_FEEDBACK_ENDPOINT is set AND either --send is passed or POKEAPI_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.
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.
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.
pokeapi-pp-cli profile save briefing --json
pokeapi-pp-cli --profile briefing ability list
pokeapi-pp-cli profile list --json
pokeapi-pp-cli profile show briefing
pokeapi-pp-cli profile delete briefing --yesExplicit 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.
| 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 |
Parse $ARGUMENTS:
help, or --help → show pokeapi-pp-cli --help outputinstall → ends with mcp → MCP installation; otherwise → see Prerequisites above--agent)go install github.com/mvanhorn/printing-press-library/library/media-and-entertainment/pokeapi/cmd/pokeapi-pp-mcp@latestclaude mcp add pokeapi-pp-mcp -- pokeapi-pp-mcpclaude mcp listwhich pokeapi-pp-cli
If not found, offer to install (see Prerequisites at the top of this skill).--agent flag:pokeapi-pp-cli <command> [subcommand] [args] --agentpokeapi-pp-cli <command> --help.© mvanhorn, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in cli-skills/pp-pokeapi of mvanhorn/printing-press-library.
Open the folder on GitHubat commit 0fdcc7a
Pp Pokeapi next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Pp Pokeapi this skillmvanhorn/printing-press-library | 2.1k | — | ~7.6k | Automated safety check: Notes | Apache-2.0 | |
| Orchardcore Query IndexingOrchardCMS/OrchardCore | 8.2k | — | ~1.8k | Automated safety check: Pass | BSD-3-Clause | |
| Postgrestimescale/pg-aiguide | 1.9k | — | ~941 | Automated safety check: Pass | Apache-2.0 | |
| Nuxt Contentsecondsky/claude-skills | 227 | — | ~4.3k | Automated safety check: Pass | MIT | |
| Debug Using Debugbarhexlet-volunteers/hexlet-sicp | 114 | 1 repos | ~1.5k | Automated safety check: Pass | AGPL-3.0 | |
| Databricksrocky-data/rocky | 304 | — | ~2k | Automated safety check: Pass | Apache-2.0 |
OrchardCMS/OrchardCore
Works with OrchardCore queries and indexing — SQL/Lucene/Elasticsearch queries, full-text index profiles, content part/field index handlers, and search.
timescale/pg-aiguide
A skill your agent uses for any PostgreSQL database work — table design, indexing, data types, constraints, extensions (pgvector, PostGIS, TimescaleDB), search, and migrations.
secondsky/claude-skills
Nuxt Content v3 Git-based CMS for Markdown/MDC content sites.
hexlet-volunteers/hexlet-sicp
Inspect what a Laravel request actually did — queries, exceptions, timing, cache, auth, views — by reading the profiling data Laravel Debugbar already captured, via Artisan commands.
rocky-data/rocky
Databricks REST API and SQL reference for Rocky's warehouse adapter.
DataJunction/dj
Activate this skill for querying DataJunction (DJ) — finding nodes, generating SQL, fetching metric data, exploring lineage, visualizing results — via the DJ UI, MCP tools, or REST/GraphQL APIs.
mvanhorn/printing-press-library
Desktop automation through the real Rust agent-desktop CLI, published in Printing Press through a small bridge.
mvanhorn/printing-press-library
Search, browse, and download Google Fonts from the terminal via the gfonts CLI.
mvanhorn/printing-press-library
The free, offline Trigger phrases: search 1688 for, find a factory on 1688 for, wholesale price on 1688 for, who is the cheapest supplier on 1688 for, compare 1688 suppliers for, use 1688, run 1688.
mvanhorn/printing-press-library
Inspect known Activity Japan plan IDs or URLs, compare dated prices and sessions, check language-sitemap coverage, and hand off to canonical booking pages.
mvanhorn/printing-press-library
Every Admin By Request portal action, plus a local SQLite mirror of audit, events, inventory and requests for ad-hoc...
mvanhorn/printing-press-library
macOS screen capture, window recording, GIF conversion, and agent evidence bundles from the terminal.
Works with
Categories
PokéAPI as a fully offline Pokédex with SQL, full-text search, type math, and a damage calculator no other Pokémon tool ships as a CLI. Pp Pokeapi is an agent skill from mvanhorn/printing-press-library. PokéAPI as a fully offline Pokédex with SQL, full-text search, type math, and a damage calculator no other Pokémon tool ships as a CLI.
Pp Pokeapi fits situations like: phrases: look up a pokemon; what beats charizard; build a pokemon team; evolution chain.
Run `npx skills add mvanhorn/printing-press-library --skill pp-pokeapi -a claude-code`. Or copy the skill folder (cli-skills/pp-pokeapi in mvanhorn/printing-press-library) into .claude/skills/pp-pokeapi in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mvanhorn/printing-press-library --skill pp-pokeapi -a codex`. Or copy the skill folder (cli-skills/pp-pokeapi in mvanhorn/printing-press-library) into .agents/skills/pp-pokeapi in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mvanhorn/printing-press-library --skill pp-pokeapi -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pp-pokeapi, .gemini/skills/pp-pokeapi, .github/skills/pp-pokeapi and .opencode/skills/pp-pokeapi in your project.
Going by SKILL.md and its folder, Pp Pokeapi needs the command-line tools its instructions call (go, claude and npx). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Read, Bash.
SKILL.md names 1 domain. As links in the text: bulbapedia.bulbagarden.net. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Pp Pokeapi is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 7.6k tokens (SKILL.md is roughly 30k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Pp Pokeapi: Orchardcore Query Indexing (OrchardCMS/OrchardCore, 8.2k stars), Postgres (timescale/pg-aiguide, 1.9k stars), Nuxt Content (secondsky/claude-skills, 227 stars) and Debug Using Debugbar (hexlet-volunteers/hexlet-sicp, 114 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
mvanhorn (a GitHub user) maintains it in mvanhorn/printing-press-library, which has 2,053 GitHub stars. The repository holds 505 skills in this directory. The repository was last updated on October 7, 2026.
Source: mvanhorn/printing-press-library on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.