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