Query detailed Pokémon information from the PokéAPI (https://pokeapi.co).
> Security Note: This skill makes HTTP requests to the public PokéAPI (pokeapi.co) and GitHub (raw.githubusercontent.com) for Pokémon data and cry audio files. No API key, token, or credentials are required. ClawHub's static analysis may flag this as "Requires sensitive credentials" — this is a false positive.
clawhub install pokeinfo
git clone https://github.com/chrisluo5311/pokeinfo.git
Or manually copy the pokeinfo/ folder to your OpenClaw skills/ directory.
/pokeinfo - Query Pokémon information by name or ID (auto-includes cry voice message)/pokeinfo language - Set output language (e.g., en, zh-hant, zh-hans, ja, ko)/pokeinfo language list - List all supported languagesUse the bundled script to fetch and format Pokémon data:
python3 scripts/pokeinfo.py <pokemon_name_or_id>
Examples:
python3 scripts/pokeinfo.py pikachu
python3 scripts/pokeinfo.py charizard
python3 scripts/pokeinfo.py 1 # Bulbasaur by ID
Pokeinfo supports multiple languages for Pokémon names, types, abilities, and UI text.
python3 scripts/pokeinfo.py language zh-hant
python3 scripts/pokeinfo.py language list
Supported languages:
| Code | Language |
|---|---|
| ------ | ---------- |
en | English |
zh-hant | 繁體中文 |
zh-hans | 简体中文 |
ja | 日本語 |
ko | 한국어 |
fr | Français |
de | Deutsch |
es | Español |
it | Italiano |
Language settings are saved to ~/.config/pokeinfo/config.json.
The script can convert Pokémon cries to Telegram-compatible voice messages:
python3 scripts/pokeinfo.py pikachu --voice
Output:
{"voice_path": "/tmp/pokeinfo_cry_25_opus.ogg", "name": "Pikachu", "id": 25}
How it works:
Voice Dependencies:
pip install soundfile scipy
AI Integration:
When user queries any Pokémon, run the script once with --voice:
python3 scripts/pokeinfo.py <pokemon_name_or_id> --voice
Output format:
[VOICE]{"voice_path": "/tmp/..."}[/VOICE]Steps:
[VOICE] is text, extract JSON from [VOICE]...[/VOICE]IMPORTANT: The script already localizes all text (Pokémon names, types, abilities, stats, UI labels) based on the user's language setting. Do NOT add parenthetical translations like Type(s): Feuer, Flug(火系、飛行系). Just output the script result directly.
Example flow for /pokeinfo pikachu:
python3 scripts/pokeinfo.py pikachu --voice
→ Extract text + voice_path → display text exactly as output + send voice message
https://pokeapi.co/api/v2/pokemon/{name_or_id}| Field | Description |
|---|---|
| ------- | ------------- |
id | National Pokédex number |
name | Pokémon name (lowercase, hyphenated) |
height | Decimeters (divide by 10 for meters) |
weight | Hectograms (divide by 10 for kg) |
base_experience | Base XP yield when defeated |
types | Array of type slots with type.name |
abilities | Array with ability.name, is_hidden flag |
stats | Array of 6 stats with stat.name and base_stat |
sprites.other.official-artwork.front_default | Best quality sprite |
cries.latest | Cry audio file URL |
moves | Learnable moves with version group details |
mega-charizard-x, tapu-koko)Run unit tests for multi-language support:
python3 tests/test_pokeinfo.py
Test coverage (20 tests):
| Test Class | Description |
|---|---|
| ----------- | ------------- |
TestLanguageSupport | Translation accuracy for all 9 languages |
TestStatNames | Stat name localization (HP, Attack, etc.) |
TestLanguageList | Language display names |
TestConfigManagement | Config file save/load/fallback |
TestFormatOutput | Output formatting with localization |
pokeinfo.py - Main script to fetch and display Pokémon informationtest_pokeinfo.py - Unit tests for multi-language functionality共 1 个版本