Claude
Skills
Sign in
Back

pp-pokeapi

Included with Lifetime
$97 forever

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`.

Backend & APIs

What this skill does

<!-- 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/". -->

# PokéAPI — Printing Press CLI

## Prerequisites: Install the CLI

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:

1. Install via the Printing Press installer. It defaults binaries to `$HOME/.local/bin` on macOS/Linux and `%LOCALAPPDATA%\Programs\PrintingPress\bin` on Windows:
   ```bash
   npx -y @mvanhorn/printing-press-library install pokeapi --cli-only
   ```
2. Verify: `pokeapi-pp-cli --version`
3. Ensure the reported install directory is on `$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.3 or newer):

```bash
go install github.com/mvanhorn/printing-press-library/library/media-and-entertainment/pokeapi/cmd/pokeapi-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

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.

## 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.

### Local store that compounds
- **`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._

  ```bash
  pokeapi-pp-cli pokemon by-ability levitate --json --select name,types
  ```
- **`move 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._

  ```bash
  pokeapi-pp-cli move find --effect paralyze --type-target steel --json
  ```
- **`team 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._

  ```bash
  pokeapi-pp-cli team suggest pikachu,charizard --slots 6 --json --select name,types,score
  ```
- **`pokemon 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._

  ```bash
  pokeapi-pp-cli pokemon diff-learnset charizard charizard-mega-x --json
  ```
- **`pokemon 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?')._

  ```bash
  pokeapi-pp-cli pokemon history clefairy --json
  ```
- **`pokemon 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._

  ```bash
  pokeapi-pp-cli pokemon forms vulpix --json
  ```
- **`evolve 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._

  ```bash
  pokeapi-pp-cli evolve into umbreon --json
  ```
- **`team 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?'_

  ```bash
  pokeapi-pp-cli team gaps pikachu,charizard,blastoise --json
  ```
- **`encounters 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._

  ```bash
  pokeapi-pp-cli encounters by-region kanto --version red --json
  ```

### Agent-native plumbing
- **`search`** — 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._

  ```bash
  pokeapi-pp-cli search "flame" --type move --limit 10 --json
  ```
- **`sql`** — 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._

  ```bash
  pokeapi-pp-cli sql "SELECT id FROM resources WHERE resource_type='pokemon' ORDER BY id LIMIT 10" --json
  ```

### Battle math
- **`damage`** — 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?'_

  ```bash
  pokeapi-pp-cli damage charizard blastoise hydro-pump --level1 50 --level2 50 --json
  ```
- **`pokemon 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?'_

  ```bash
  pokeapi-pp-cli pokemon top --by special-attack --type ghost --limit 10 --json
  ```

## Command Reference

**ability** — 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 be

Related in Backend & APIs