Overview
poke-cli is a hybrid of a classic CLI and a modern TUI tool for viewing data about Pokémon! This is my first Go project.
The architecture behind how the tool works is straight forward:
- Each command indicates which API endpoint to use.
- Flags provide more information and can be stacked together or used individually.
- Each command has a
-h | --help flag that is built-in with Golang's flag package.
View future plans in the Roadmap section.
Demo

Installation
Binary
- Head to the releases page of the project.
- Choose a version to download. The latest is best.
- Choose an operating system and click on the matching zipped folder to start the download.
- Extract the folder. The tool is ready to use.
- Either change directories into the extracted folder or move the binary to a chosen directory.
- Run the tool!
[!IMPORTANT]
For macOS, you may have to allow the executable to run as it is not signed. Head to System Settings > Privacy & Security > scroll down and allow executable to run.
View Image of Settings

Example usage
# Windows
.\poke-cli.exe pokemon charizard --types --abilities
# Unix
.\poke-cli ability airlock --pokemon
Docker Image
- Install Docker Desktop.
- Once installed, use the command below to pull the image and run the container!
--rm: Automatically remove the container when it exits.
-i: Interactive mode, keeps STDIN open for input.
-t: Allocates a terminal (TTY) for a terminal-like session.
- Choose how to interact with the container:
- Run a single command and exit:
docker run --rm -it digitalghostdev/poke-cli:v1.2.3 <command> [subcommand] flag]
- Enter the container and use its shell:
docker run --rm -it --name poke-cli --entrypoint /bin/sh digitalghostdev/poke-cli:v1.2.3 -c "cd /app && exec sh"
# placed into the /app directory, run the program with './poke-cli'
# example: ./poke-cli ability swift-swim
Homebrew
brew tap digitalghost-dev/poke-cli
brew install poke-cli
# verify
poke-cli -v
Source
- Run the following command:
go install github.com/digitalghost-dev/poke-cli@latest
- The tool is ready to use!
Usage
By running poke-cli [-h | --help], it'll display information on how to use the tool.
╭──────────────────────────────────────────────────────────╮
│Welcome! This tool displays data related to Pokémon! │
│ │
│ USAGE: │
│ poke-cli [flag] │
│ poke-cli <command> [flag] │
│ poke-cli <command> <subcommand> [flag] │
│ │
│ FLAGS: │
│ -h, --help Shows the help menu │
│ -l, --latest Prints the latest version available │
│ -v, --version Prints the current version │
│ │
│ COMMANDS: │
│ ability Get details about an ability │
│ move Get details about a move │
│ natures Get details about all natures │
│ pokemon Get details about a Pokémon │
│ search Search for a resource │
│ types Get details about a typing │
│ │
│ hint: when calling a resource with a space, use a hyphen │
│ example: poke-cli ability strong-jaw │
│ example: poke-cli pokemon flutter-mane │
╰──────────────────────────────────────────────────────────╯
Roadmap
Below is a list of the planned/completed commands and flags:
-
ability: get data about a specific ability.
-
-p | --pokemon: display Pokémon that learn this ability.
-
berry: get data about a specific berry.
-
item: get data about a specific item.
-
move: get data about a specific move.
-
-p | --pokemon: display Pokémon that learn this move.
-
natures: get data about natures.
-
pokemon: get data about a specific Pokémon.
-
-a | --abilities: display the Pokémon's abilities.
-
-i | --image: display a pixel image of the Pokémon.
-
-s | --stats: display the Pokémon's base stats.
-
-t | --types: display the Pokémon's typing.
-
-m | --moves: display learnable moves.
-
search: search for a resource (ability, berry, pokemon, move)
-
speed: compare speed stats between two Pokémon.
-
types: get data about a specific typing.
Tested Terminals
| OS |
Terminal |
Status |
Issues |
| macOS |
Ghostty |
✅ |
None |
| macOS |
Alacritty |
✅ |
None |
| macOS |
HyperJS |
✅ |
None |
| macOS |
iTerm2 |
✅ |
None |
| macOS |
macOS Terminal |
⚠️ |
Images do not render properly |
| Windows |
Windows Terminal |
✅ |
None |
| Ubuntu |
Standard Terminal |
✅ |
None |
| Ubuntu |
Tabby |
✅ |
None |