Skip to content

rae89/pokedex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pokedex TUI

A terminal-based Pokédex built with Rust. Browse Gen 1 Pokémon, view colored sprite art, check type matchups, and build teams.

Pokedex TUI Screenshot

Screens

  • Pokédex — Scrollable list of 151 Pokémon with search and type labels
  • Detail — Colored sprite art, base stats with bar charts, abilities, height/weight
  • Type Chart — 18×18 scrollable type effectiveness matrix
  • Team Builder — 6-slot teams with Pokémon picker, move selection, and type coverage analysis

Install

Pre-built binary (macOS)

Download pokedex-macos.tar.gz from Releases, then:

tar -xzf pokedex-macos.tar.gz
xattr -d com.apple.quarantine pokedex
./pokedex

The xattr command removes the macOS quarantine flag that blocks downloaded binaries. If you get "No such xattr", the file is already fine to run.

Build from source

Requires Rust (1.70+).

git clone https://github.com/rae89/pokedex.git
cd pokedex
cargo build --release
./target/release/pokedex

Build a universal macOS binary (Apple Silicon + Intel)

rustup target add x86_64-apple-darwin
cargo build --release
cargo build --release --target x86_64-apple-darwin
lipo -create target/release/pokedex target/x86_64-apple-darwin/release/pokedex -output pokedex

The resulting pokedex binary works on both Apple Silicon and Intel Macs.

Testing

Run the unit test suite:

cargo test

Generate code coverage report:

cargo install cargo-tarpaulin
cargo tarpaulin --out Html --output-dir coverage/

Releasing

To publish a new release, trigger the Release workflow from the GitHub Actions tab:

  1. Go to Actions → Release → Run workflow
  2. Enter the version number (e.g. 1.0.0)
  3. Click Run workflow

This builds a universal macOS binary (Apple Silicon + Intel), tags the commit as v{version}, and creates a GitHub Release with pokedex-macos.tar.gz attached.

Controls

Key Action
Tab / Shift+Tab Cycle screens
14 Jump to screen
↑↓ / jk Navigate lists
/ Search
Enter Select / view details
Esc Back / close modal
a Add Pokémon to team (detail screen)
d Remove from team (team builder)
n New team
←→ / hl Switch teams / scroll type chart
q Quit

How it works

  • Data is fetched from PokéAPI and cached locally for instant subsequent loads
  • Sprites are rendered as colored Unicode half-block characters (▀▄█) with true-color RGB
  • Teams are saved to ~/Library/Caches/pokemon-tui/teams.json (macOS)

Roadmap

See our GitHub Milestones for planned features and progress.

Tech Stack

Rust, Ratatui, Crossterm, Tokio, Reqwest, Serde, image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages