I converted all Pokémon sprites to ANSI, so you can view them in you terminal (or browser).

Get a random Pokémon in your terminal:

curl pkmn.li

Get a specific Pokémon:

curl pkmn.li/25/

You can also view it in the browser: pkmn.li

You will need true color support in your terminal.

Other languages

If you want to have the names and flavor text in another language you can use the lang parameter:

curl pkmn.li/?lang=de
curl pkmn.li/25/?lang=es

The following languages are available:

  • ja-Hrkt
  • roomaji
  • ko
  • zh-Hant
  • fr
  • de
  • es
  • it
  • en
  • cs
  • ja
  • zh-Hans
  • pt-BR


I am using the PokeAPI sprites for the images and the PokeAPI api-data for the flavor text (Pokédex entries). I am generating all Pokémon from the static data in the repositories. I am not actually using the PokeAPI.

Creating ANSI from the sprites

To create the ANSI from the sprites I am using the Rust program viu. Generating html from ANSI is actually rather difficult. Unlike with aare.li, where I am using ansi-escape-to-html directly in the PHP script, this doesn't work with the Pokémon sprites as they are true color (24 million colors). I haven't found a php package that supports true color ANSI. But the Python package ansi2html does, so I am using that.