Skip to main content

TUI Wordle

Play Wordle in your terminal with style

PyPI version Python License: MIT

╦ ╦╔═╗╦═╗╔╦╗╦  ╔═╗
║║║║ ║╠╦╝ ║║║  ║╣
╚╩╝╚═╝╩╚══╩╝╩═╝╚═╝

A beautiful terminal-based Wordle game with shared leaderboard, streaks, and statistics.

Installation • Features • Usage • Self-Hosting • Contributing


Features

  • Daily Wordle - New word every day at 9 AM KST
  • Google Login - One-click browser authentication
  • Global Leaderboard - Compete with players worldwide
  • Streaks & Stats - Track your winning streaks and performance
  • GitHub-style Graph - Visualize your play history
  • Auto-save - Resume your game anytime
  • Offline Mode - Play without an account
  • Beautiful TUI - Smooth animations powered by Textual

Installation

# Using pip
pip install tui-wordle

# Using uv (recommended)
uv tool install tui-wordle

# Using pipx
pipx install tui-wordle

Usage

# Start the game
wordle

# Alternative commands
tui-wordle
wd

Controls

Key Action
A-Z Type letter
Enter Submit guess
Backspace Delete letter
ESC Quit
F1 Statistics
F2 Leaderboard
F3 Help
F4 Settings

Project Structure

tui-wordle/
├── client/                 # TUI Client (Textual)
│   ├── app.py              # Main application
│   ├── screens/            # Game screens
│   │   ├── game_screen.py
│   │   ├── login_screen.py
│   │   ├── result_screen.py
│   │   ├── stats_screen.py
│   │   └── ...
│   └── widgets/            # UI components
│       ├── game_board.py
│       ├── keyboard.py
│       ├── tile.py
│       └── ...
├── server/                 # FastAPI Backend
│   ├── main.py
│   ├── auth/               # Authentication
│   ├── games/              # Game logic
│   ├── words/              # Daily words
│   ├── leaderboard/        # Rankings
│   ├── streaks/            # Streak tracking
│   └── stats/              # Statistics
├── admin-web/              # Admin Dashboard (Vue)
├── data/                   # Word lists
├── alembic/                # DB migrations
└── scripts/                # Utility scripts

Self-Hosting

Want to run your own Wordle server? See the Self-Hosting Guide.

Quick Start

# Clone the repository
git clone https://github.com/subinium/tui-wordle.git
cd tui-wordle

# Install dependencies
pip install -e ".[server]"

# Set environment variables
export DATABASE_URL="postgresql+asyncpg://user:pass@localhost/wordle"
export SECRET_KEY="your-secret-key"
export GOOGLE_CLIENT_ID="your-google-client-id"
export GOOGLE_CLIENT_SECRET="your-google-client-secret"

# Run migrations
alembic upgrade head

# Seed words
python scripts/seed_database.py

# Start server
uvicorn server.main:app --reload

Environment Variables

Variable Description Required
DATABASE_URL PostgreSQL connection string Yes
SECRET_KEY JWT secret key Yes
GOOGLE_CLIENT_ID Google OAuth client ID Yes
GOOGLE_CLIENT_SECRET Google OAuth client secret Yes
ADMIN_EMAILS Comma-separated admin emails No
CORS_ORIGINS Allowed CORS origins No

Tech Stack

Component Technology
TUI Client Textual + Rich
Backend FastAPI + SQLAlchemy
Database PostgreSQL (via Neon)
Admin Dashboard Vue 3 + Vite
Deployment Railway

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Inspired by Wordle by Josh Wardle
  • Built with Textual by Textualize

Play Now · Report Bug · Request Feature

Made with love by @subinium

Metadata

Release files for tui-wordle 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tui-wordle 0.1.3
File Size Uploaded
tui_wordle-0.1.3.tar.gz 194.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tui-wordle 0.1.3
File Interpreter ABI Platform
tui_wordle-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 344.4 kB

Release files / tui_wordle-0.1.3.tar.gz

Download URL tui_wordle-0.1.3.tar.gz
Size 194.3 kB
Tags Source
SHA-256 checksum
How to use checksums
09a8da55e20a712d977627cabd52920b48cff06d5332d353f756f32bdf75cf7f
BLAKE2b-256 checksum
How to use checksums
cb9a7516052cd273de2b37581d170a3cea60807bcc21f76c3f71e1d2712d677a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.6

Release files / tui_wordle-0.1.3-py3-none-any.whl

Download URL tui_wordle-0.1.3-py3-none-any.whl
Size 150.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
750ce23a6e887a6159c5a0d90ef9b2760e6a00931f7313a2f2ca3c70012a3760
BLAKE2b-256 checksum
How to use checksums
6b2b3b94bf6cea6b54ecd0d14493e78f1cf7fe98a774ae85fbe7a1a75e77908d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.6

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page