A command-line Pokémon encyclopedia that brings pocket monsters to your terminal. Search, browse, and discover Pokémon with user friendly interfaces powered by PokéAPI.
- Quick lookup:
pokec get pikachu - Detailed stats:
pokec get charizard --detailed - Simple output:
pokec get bulbasaur --simple
- Interactive menus: Navigate with numbered options
- Rich visuals: Color-coded types, stat bars, and clean layouts
- Multiple search methods: By name, Pokédex number, or type
- Random Pokémon: Discover new Pokémon with the random feature
- Progress indicators: Visual feedback during API calls
- Robust error handling: Network issues, invalid names, API errors
- Intelligent name cleaning: Handles special characters and formatting
- Modular design: Clean separation of API, display, and interface logic
- Extensible architecture: Easy to add new features and commands
- Clone the repository:
git clone https://github.com/amilliiee/pokemon_cli.git
cd pokemon_cli- Create virtual environment (recommended):
python3 -m venv venv
source venv/bin/activate # For windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Install in development mode:
pip install -e .# Get basic Pokémon info
pokec get pikachu
# Get detailed stats with bars
pokec get charizard --detailed
# Simple one-line output
pokec get bulbasaur --simple
# Show help
pokec --help
pokec get --helppokec tuiThen navigate the menu with number keys.
pokemon_cli/
├── src/
│ ├── __init__.py # Package exports
│ ├── cli.py # Click CLI commands
│ ├── tui.py # Rich TUI interface
│ ├── api.py # PokeAPI interactions
│ └── display.py # Output formatting
├── pokec # Main entry point (CLI)
├── requirements.txt # Dependencies
├── setup.py # Package configuration
└── README.md # This file- Install development dependencies (if not already done):
pip install -r requirements.txt- Run tests:
# Run the CLI tests
python3 -m src.cli get pikachu
python3 -m src.cli get charizard --detailed
# Run the TUI
python3 -m src.tui- New CLI command:
- Add function in
cli.pywith@cli.command()decorator - Import necessary modules from
api.py
- New TUI feature:
- Add method to
PokeTUIclass intui.py - Add menu option in
main_menu()
- API enhancements:
- Add functions to
api.py - Update
__init__.pyexports
- Search by name - Enter any Pokémon name
- Search by number - Enter Pokédex ID (1-1010)
- Browse by type - Select from 18 Pokémon types
- Random Pokémon - Discover a random Pokémon
- Favorites - Save and view favorite Pokémon (coming soon)
- Compare - Compare two pokemon side-by-side (coming soon)
- Exit - Quit the application
- Color-coded types: Each type has its canonical Pokémon color
- Stat visualization: Bar graphs show relative stat values (may change this in the future for readability)
- Clean layout: Panels and tables for organization
PokéCLI uses the official PokéAPI with:
- Rate limiting: Built-in timeout and error handling
- Data caching: Optional local caching
- Comprehensive data: Access to all attributes
- Favorites system: Save and manage favorite Pokémon
- Comparison tool: Side-by-side stat comparison
- Type effectiveness calculator: Damage multiplier calculator
- Evolution chains: Display evolution families
- Generation filters: Filter Pokémon by generation
- Local cache: Reduce API calls with local caching
- ASCII art sprites
- Team builder functionality
- Move lists
- Ability information
- Shiny form display
This project is licensed under the MIT License - see LICENSE.md for details