If something isn’t working as expected, this page covers the most common issues and how to resolve them. Check the relevant accordion below for your error message or symptom.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/tldrwtf/pokedo/llms.txt
Use this file to discover all available pages before exploring further.
Command not found: pokedo
Command not found: pokedo
The
pokedo command is not on your PATH. This usually means the virtual environment is not active or the package was not installed correctly.- Activate your virtual environment:
- Try running PokeDo directly through Python:
- If the command is still missing, reinstall the package:
Database error on first run
Database error on first run
PokeDo requires an initialized database before any commands will work. If you see a database error on first run, the
~/.pokedo/pokedo.db file either does not exist or could not be created.- Run the initialization command:
- If the error persists, check that you have write permissions in your home directory:
If the
.pokedodirectory exists but is not writable, update its permissions or delete it and re-runinit.
Slow initialization
Slow initialization
Full initialization fetches data for all 1025 Pokemon from the PokeAPI, which can take several minutes on slower connections.Use one of these flags to speed things up:
- Gen 1 only — downloads 151 Pokemon instead of 1025:
- Specific generation — replace
Nwith the generation number (1–9): - Parallel requests — increase concurrency to fetch data faster:
Pokemon sprites not displaying
Pokemon sprites not displaying
Terminal sprite rendering requires a terminal emulator that supports inline images. Supported terminals include iTerm2, Kitty, and WezTerm. In any other terminal, PokeDo falls back to a text representation automatically — this is expected behavior and not a bug.If sprites are not loading at all, check whether the sprite cache exists:An empty directory means the sprites have not been downloaded yet. Complete a task or run
pokedo sprite <name> to trigger a download.API rate limiting
API rate limiting
The PokeAPI is free and has generous rate limits. If you see rate-limiting errors during initialization, the most likely cause is running many parallel requests at very high concurrency.Keep in mind:
- All Pokemon data is cached locally after the first successful fetch. Subsequent runs do not make API requests.
- If you suspect a stale or corrupted cache, clear it by deleting the cache directory:
The next
initor command that needs Pokemon data will re-fetch and re-cache everything.
TUI crash: TypeError cannot use Task as dict key
TUI crash: TypeError cannot use Task as dict key
Symptom: Exiting the task screen in the TUI raises:Cause: This was a naming conflict between PokeDo’s domain
Task model and Textual’s internal Widget._task asyncio lifecycle field. If a screen or widget stored a domain Task in self._task, Textual would treat it as an asyncio task, causing a crash when it tried to use it as a dictionary key.Status: Fixed in current code. State fields have been renamed to _detail_task, _editing_task, and _completed_task to avoid the collision. If you are working on a fork or customizing TUI components, do not store domain objects in self._task.If you are still seeing this error, ensure you are on the latest version:Multiplayer connection errors
Multiplayer connection errors
Battle commands require a running PokeDo server. If you see
ConnectionRefusedError or similar errors:- Confirm the server is running:
- Check the
POKEDO_SERVER_URLenvironment variable. The default ishttp://localhost:8000. If your server is on a different host or port, set it explicitly: - If a battle is stuck in
pendingstate, the opponent must accept the challenge and both players must submit their teams before the battle becomes active.