Skip to main content
Deepwordle Console

deepwordle is a TUI clone of the famous wordle game powered by Python, Deepgram, Textual, Tweepy, and friends.

1. Configurations

1.1. Tweepy:

1.1.1. Twitter Developer Account:

Developer Account SignUp
  • Fill out the required information and submit your request.

Developer Portal
  • Once approved, you can continue with the app setup.

Verify Email

Note that you need to provide detailed information about your use case for the API in order to speed up the process of reviewing your request.

1.1.2. Create an App:

Once your request gets approved, you will be prompted to create an app as shown in the image below:

Create App

Alternatively, you can go to: https://developer.twitter.com/en

  • click on the developer portal panel. By doing so, you will be redirected to your dashboard.

  • Navigate to the Projects & Apps –> Overview, Scroll to the bottom of the page and click on Create App.

Apps Overview
  • Choose an app name and click Complete. By default, the app will be created in read-only mode.

Read only mode
  • Add write permissions to the app in order to be able to publish tweets. Navigate to App Settings and scroll down to User authentication settings, then click set up.

User authentication settings
  • Toggle the OAuth 1.0a button and change app permissions to Read and Write.

Read and Write permissions
  • Now your app will get its permissions elevated to Read and Write.

Read and Write permissions

Each app is associated with three sets of keys: an API Key, an API Key Secret, and a Bearer Token.

1.1.3. Store secrets:

You need to store keys and secrets of the app as environment variables in order to authenticate and publish tweets. To do so, open your terminal, and type the following(change each XXXXXXXXXX value accordingly):

export CONSUMER_KEY="XXXXXXXXXX"
export CONSUMER_SECRET="XXXXXXXXXX"
export ACCESS_TOKEN="XXXXXXXXXX-XXXXXXXXXX"
export ACCESS_TOKEN_SECRET="XXXXXXXXXX"

1.2. Deepgram:

1.2.1. Create an API Key:

In order to interact with the Deepgram API, you need to grab some keys. To do so, follow along the deepgram official docs to create an API Key.

Now, you need to store your API Key as environment variable in order to authenticate and transcribe audio data. To do so, open your terminal, and type the following(change the XXXXXXXXXX value accordingly):

export DEEPGRAM_API_KEY="XXXXXXXXXX"

2. Requirements

2.1. Python Interpreter:

deepwordle was tested and built with Python 3.10.1.

To install Python 3.10.1, I recommend using pyenv.

git clone https://github.com/pyenv/pyenv ~/.pyenv

Configure pyenv on zsh:

cat << EOF >> ~/.zshrc
# pyenv config
export PATH="${HOME}/.pyenv/bin:${PATH}"
export PYENV_ROOT="${HOME}/.pyenv"
eval "$(pyenv init -)"
EOF

Or if you are using the default bash shell, run the following command instead:

cat << EOF >> ~/.bashrc
# pyenv config
export PATH="${HOME}/.pyenv/bin:${PATH}"
export PYENV_ROOT="${HOME}/.pyenv"
eval "$(pyenv init -)"
EOF

Close your terminal and open a new shell session. Now, you can install Python3.10.1.

pyenv install 3.10.1

Make the interpreter available globally:

pyenv global system 3.10.1

2.2. Virtual Environment:

To manage and set up Python 3.10.1 in a virtual environment, I recommend using poetry.

You can install poetry by running the following command:

curl -sSL https://install.python-poetry.org | python3 -

To test if everything was installed correctly, run the following:

poetry env use 3.10.1

However, if you are using virtualenv installed via apt, you are most likely to run into the following:

Creating virtualenv deepwordle-dxc671ba-py3.10 in ~/.cache/pypoetry/virtualenvs

ModuleNotFoundError

No module named 'virtualenv.seed.via_app_data'

at <frozen importlib._bootstrap>:973 in _find_and_load_unlocked

To resolve this issue, you need to reinstall virtualenv through pip:

sudo apt remove --purge python3-virtualenv virtualenv
python3 -m pip install -U virtualenv

Having virtualenv set up, you can use poetry to create a new project along with a virtual environment:

poetry new deepwordle && cd deeepwordle

Now, you need to let poetry know which version of python to run:

poetry env use 3.10.1

Then, you can create and activate a virtual environment to use for this project:

poetry shell

Now, at any point in the future, you want to use a virtual environment created by poetry, you can look up for installed virtual environments under ~/.cache/pypoetry/virtualenvs:

ls ~/.cache/pypoetry/virtualenvs

To activate a virtual environment, run the following:

source ~/.cache/pypoetry/virtualenvs/<your_virtual_environment_name>/bin/activate

2.3. PortAudio:

deepwordle depends on PyAudio which in turn depends on another library called portaudio. To install portaudio on Linux, run the following:

sudo apt-get install portaudio19-dev

3. Installation

deepwordle is currently available for Linux os. There are two main methods you can use to install and run the game

With pip:

python3 -m pip install deepwordle

With pipx:

python3 -m pip install --user pipx
pipx install --python python3 deepwordle

pipx will install and run deepwordle in your terminal, kind of similar to npx if you are familiar with it.

3. Quickstart

Having deepwordle installed on your machine, you can run it as a CLI from your terminal:

deepwordle

or you can use poetry to run the game:

poetry run deepwordle

4. Components Overview

There are four main textual components that build up this game:

  • rich_text: a module to create customized text with different fonts and sizes.

rich_text
  • message: a widget to display rich text within a textual panel.

message
  • letter: a module to build customized buttons with different fonts, sizes, and styles.

letter
  • letters_grid: the main letters grid of the wordle game.

letters_grid

5. Game Workflow

a- Enter the game by simply typing deepwordle on your terminal.

start game

b- Press r to record a word for two seconds.

c- You will be prompted to either submit the word by pressing enter or remove the letters by pressing backspace.

enter or backspace

d- Repeat steps b and c until you complete the game.

guesses

e- If you guessed the secret word, you will be asked to press t to tweet your results.

tweet

👋 Contribute

If you are looking for a way to contribute to the project, please refer to the Guideline.

📝 License:

MIT licensed. See the bundled licence file for more details.

Metadata

Release files for deepwordle 0.1.0

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

Source distribution (sdist)

Source distribution for deepwordle 0.1.0
File Size Uploaded
deepwordle-0.1.0.tar.gz 58.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for deepwordle 0.1.0
File Interpreter ABI Platform
deepwordle-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 121.7 kB

Release files / deepwordle-0.1.0.tar.gz

Download URL deepwordle-0.1.0.tar.gz
Size 58.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a7ed427870f173cd90cbcb4743a8198a08d7e41445dbbc1e0c6d430767b9f730
BLAKE2b-256 checksum
How to use checksums
a9b5cf34b8a87be32d6a898bbdbce178c723b9311583179b96b9efb1b8a4881e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.13 CPython/3.10.1 Linux/5.13.0-39-generic

Release files / deepwordle-0.1.0-py3-none-any.whl

Download URL deepwordle-0.1.0-py3-none-any.whl
Size 63.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e40b8e05fd979661a5a3f51985c25cddd1052bdd651d1e40b23ac52c405a51f0
BLAKE2b-256 checksum
How to use checksums
415459ef2a916dd7f8cf38a7eddd042a72565994331fdf956ac92b497378d85a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.13 CPython/3.10.1 Linux/5.13.0-39-generic

Release history Release notifications | RSS feed

This release

0.1.0 This release

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