poke-cli
poke-cli copied to clipboard
A hybrid CLI/TUI tool written in Go for viewing Pokémon data from the terminal!
trafficstars
Pokémon CLI
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 | --helpflag that is built-in with Golang'sflagpackage.
View future plans in the Roadmap section.
Demo

Installation
- Binary
- Docker Image
- Homebrew
- Source
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.- Optional.
-i: Interactive mode, keeps STDIN open for input.- Necessary.
-t: Allocates a terminal (TTY) for a terminal-like session.- Necessary.
- 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:
- [x]
ability: get data about a specific ability.- [x]
-p | --pokemon: display Pokémon that learn this ability.
- [x]
- [ ]
berry: get data about a specific berry. - [ ]
item: get data about a specific item. - [x]
move: get data about a specific move.- [ ]
-p | --pokemon: display Pokémon that learn this move.
- [ ]
- [x]
natures: get data about natures. - [x]
pokemon: get data about a specific Pokémon.- [x]
-a | --abilities: display the Pokémon's abilities. - [x]
-i | --image: display a pixel image of the Pokémon. - [x]
-s | --stats: display the Pokémon's base stats. - [x]
-t | --types: display the Pokémon's typing. - [ ]
-m | --moves: display learnable moves.
- [x]
- [x]
search: search for a resource (ability,berry,pokemon,move) - [ ]
speed: compare speed stats between two Pokémon. - [x]
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 |