🎨 Paint on Wordle
Make Wordle look exactly how you want!
Paint on Wordle is a powerful solver tool that allows you to reverse-engineer the game. Instead of guessing words to find a solution, you provide the colors (pattern) and the solution word, and the tool tells you exactly which words you need to type to create that pattern on the grid.
Perfect for creating specific shapes/pixel art on your Wordle grid or solving tricky scenarios.
Features
- 🧙 Interactive Wizard: A step-by-step graphical terminal interface to build your grid visually.
- ⚡ Instant Solution Mode: Get immediate results by providing arguments directly in the command line.
- 🧠 Flexible Matching: Smart algorithm that prioritizes exact matches but can swap Yellow/Green colors to find the closest possible word for your pattern.
- 🔍 Exhaustive Search: Ability to list all valid candidates for a pattern, not just the best one.
Installation
Install the package directly from PyPI:
pip install paint-on-wordle
Usage
Once installed, you can run the tool using the command paint-wordle.
1. Interactive Wizard (Default)
Run without any arguments to start the interactive mode. The tool will guide you through setting the target word and painting the grid row by row.
paint-wordle
Controls:
- Arrows / WASD: Move cursor between tiles.
- Space: Toggle tile color (⬛ Gray -> 🟨 Yellow -> 🟩 Green).
- Enter: Confirm pattern and find matching words.
- Esc: Exit the program.
2. Instant Solution Mode
Use command-line arguments to skip the wizard and get immediate answers. This is useful for scripting or quick lookups.
Required Arguments:
--word/-w: The hidden target word (the solution) relative to which patterns are calculated.--pattern/-p: One or more color patterns to match (e.g.,20010).
Pattern Legend:
0= Gray (Miss)1= Yellow (Wrong Spot)2= Green (Exact Match)
Advanced Options:
-
--flexible/-f(Smart Matching) By default, the solver is strict. If you use this flag, it treats Green and Yellow as interchangeable hits while strictly enforcing Gray spots.Logic: It searches for an exact match first. If none exists, it finds the closest match by performing the minimum number of color swaps necessary.
-
--find-all/-aLists all valid candidates found for each pattern instead of showing only the single best word.
Examples
Basic Exact Match: Find a word that generates "Green, Gray, Gray, Gray, Gray" when the solution is "apple":
paint-wordle --word apple --pattern 20000
Multiple Patterns: Check three different rows at once:
paint-wordle -w apple -p 20000 00100 22222
Using Flexible Mode: You want a specific pattern, but you don't care if some Yellows become Greens (or vice versa), as long as the Grays stay Gray:
paint-wordle -w apple -p 21001 --flexible
List All Candidates: Show every single word that fits the pattern, not just the first one found:
paint-wordle -w apple -p 00000 --find-all
Development
If you want to contribute or run the code from source:
-
Clone the repository:
git clone https://github.com/KMChris/paint-on-wordle.git cd paint-on-wordle
-
Install dependencies:
pip install -r requirements.txt
-
Run via module:
python -m src.main
Project Structure
src/main.py: Entry point. Handles argument parsing and mode selection.src/cli.py: Handles the interactive wizard interface and user input.src/solution.py: Core logic, pattern calculation, and word filtering algorithms.src/data/words.txt: The dictionary of valid 5-letter words.
Metadata
Release files for paint-on-wordle 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| paint_on_wordle-1.2.0.tar.gz | 55.7 kB | Without provenance | Details for paint_on_wordle-1.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| paint_on_wordle-1.2.0-py3-none-any.whl | Python 3 | none | any | Details for paint_on_wordle-1.2.0-py3-none-any.whl |
Total release size: 112.5 kB
Release files / paint_on_wordle-1.2.0.tar.gz
| Download URL | paint_on_wordle-1.2.0.tar.gz |
|---|---|
| Size | 55.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2d66e5d6d0c3c8c712caa21b6d65b0239188421c6b1a71e21cc7bed97ad487e3
|
|
BLAKE2b-256 checksum How to use checksums |
fdcd777e1709d090c2e25f03c46db6583df8155f024cffa2f15b146b88b245c6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / paint_on_wordle-1.2.0-py3-none-any.whl
| Download URL | paint_on_wordle-1.2.0-py3-none-any.whl |
|---|---|
| Size | 56.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c70c219e70e2680cb84baf8f426236d151b5bf005a6ad23f2d403e504980b32e
|
|
BLAKE2b-256 checksum How to use checksums |
9f4435e8e4d8742ccc45f42bfbd52fb1109a21775d6da9084a9a4657c970864b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Security for paint-on-wordle 1.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.