{"id":17623751,"url":"https://github.com/wiseaidev/deepwordle","last_synced_at":"2025-10-30T01:12:27.028Z","repository":{"id":42173443,"uuid":"475168345","full_name":"wiseaidev/deepwordle","owner":"wiseaidev","description":"deepwordle is a wordle clone game powered by deepgram, textual, tweepy, and friends.","archived":false,"fork":false,"pushed_at":"2025-03-31T19:21:43.000Z","size":260,"stargazers_count":3,"open_issues_count":8,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-01T09:16:42.497Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pypi.org/project/deepwordle/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wiseaidev.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-28T20:27:56.000Z","updated_at":"2023-03-08T20:33:44.000Z","dependencies_parsed_at":"2023-09-27T08:36:54.659Z","dependency_job_id":"8be04d2c-b8ca-47e1-95fc-2dd40b19e78b","html_url":"https://github.com/wiseaidev/deepwordle","commit_stats":null,"previous_names":["harmouch101/deepwordle"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wiseaidev%2Fdeepwordle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wiseaidev%2Fdeepwordle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wiseaidev%2Fdeepwordle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wiseaidev%2Fdeepwordle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wiseaidev","download_url":"https://codeload.github.com/wiseaidev/deepwordle/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251850182,"owners_count":21653978,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-22T21:42:43.291Z","updated_at":"2025-10-30T01:12:26.959Z","avatar_url":"https://github.com/wiseaidev.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"deepwordle\n==========\n\n.. image:: https://img.shields.io/pypi/v/deepwordle.svg\n    :target: https://pypi.org/project/deepwordle/\n\n.. image:: https://results.pre-commit.ci/badge/github/Harmouch101/deepwordle/main.svg\n   :target: https://results.pre-commit.ci/latest/github/Harmouch101/deepwordle/main\n   :alt: pre-commit.ci status\n\n.. image:: https://circleci.com/gh/Harmouch101/deepwordle/tree/main.svg?style=svg\n   :target: https://circleci.com/gh/Harmouch101/deepwordle/tree/main\n   :alt: circleci status\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n    :target: https://github.com/psf/black\n\n.. image:: https://drive.google.com/uc?export=view\u0026id=10WA7pRI8C7FyfCrK394hpInTIxgYk0Uf\n   :target: https://drive.google.com/uc?export=view\u0026id=10WA7pRI8C7FyfCrK394hpInTIxgYk0Uf\n   :alt: Deepwordle Console\n\n**deepwordle** is a TUI clone of the famous wordle game powered by Python, Deepgram, Textual, Tweepy, and friends.\n\n\n1. Configurations\n-----------------\n\n1.1. Tweepy:\n~~~~~~~~~~~~\n\n1.1.1. Twitter Developer Account:\n+++++++++++++++++++++++++++++++++\n\n* Create an account on https://developer.twitter.com/, and click on ``Sign Up``\n\n.. image:: https://drive.google.com/uc?export=view\u0026id=1pgGcVv-YuFZmsjU7KabiM0lQ7kMgQBMe\n   :target: https://drive.google.com/uc?export=view\u0026id=1pgGcVv-YuFZmsjU7KabiM0lQ7kMgQBMe\n   :alt: Developer Account SignUp\n\n* Fill out the required information and submit your request.\n\n.. image:: https://drive.google.com/uc?export=view\u0026id=1W_x9n7_VXpfV_dskY-7D8UMpJAPtn0r5\n   :target: https://drive.google.com/uc?export=view\u0026id=1W_x9n7_VXpfV_dskY-7D8UMpJAPtn0r5\n   :alt: Developer Portal\n\n* Once approved, you can continue with the app setup.\n\n.. image:: https://drive.google.com/uc?export=view\u0026id=14d9g_83joI0QoUmU25ZBSdt5Yh7mGzYY\n   :target: https://drive.google.com/uc?export=view\u0026id=14d9g_83joI0QoUmU25ZBSdt5Yh7mGzYY\n   :alt: Verify Email\n\n\nNote 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.\n\n1.1.2. Create an App:\n+++++++++++++++++++++\n\nOnce your request gets approved, you will be prompted to create an app as shown in the image below:\n\n.. image:: https://drive.google.com/uc?export=view\u0026id=17wsWPWNAZqhuALieMOO2SLnOFp6u_hP6\n   :target: https://drive.google.com/uc?export=view\u0026id=17wsWPWNAZqhuALieMOO2SLnOFp6u_hP6\n   :alt: Create App\n\nAlternatively, you can go to: https://developer.twitter.com/en\n\n* click on the ``developer portal`` panel. By doing so, you will be redirected to your dashboard.\n\n\n\n* Navigate to the ``Projects \u0026 Apps`` --\u003e ``Overview``, Scroll to the bottom of the page and click on ``Create App``.\n\n.. image:: https://drive.google.com/uc?export=view\u0026id=1U8gb7WDR_BYaA7jVNhKBHMqdlSYVSzrP\n   :target: https://drive.google.com/uc?export=view\u0026id=1U8gb7WDR_BYaA7jVNhKBHMqdlSYVSzrP\n   :alt: Apps Overview\n\n* Choose an app name and click ``Complete``. By default, the app will be created in read-only mode.\n\n.. image:: https://drive.google.com/uc?export=view\u0026id=1HEz8QpsU-zaK9L2o4bhvPfVTQbcJeK0Q\n   :target: https://drive.google.com/uc?export=view\u0026id=1HEz8QpsU-zaK9L2o4bhvPfVTQbcJeK0Q\n   :alt: Read only mode\n\n* 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``.\n\n.. image:: https://drive.google.com/uc?export=view\u0026id=1SrP1-6U0XiyJVD0ecu6QK3YLgHMBriM8\n   :target: https://drive.google.com/uc?export=view\u0026id=1SrP1-6U0XiyJVD0ecu6QK3YLgHMBriM8\n   :alt: User authentication settings\n\n* Toggle the ``OAuth 1.0a`` button and change app permissions to ``Read and Write``.\n\n.. image:: https://drive.google.com/uc?export=view\u0026id=1IrWtgMmILPKMxjfAFDgr6wpDB_Z2_U_g\n   :target: https://drive.google.com/uc?export=view\u0026id=1IrWtgMmILPKMxjfAFDgr6wpDB_Z2_U_g\n   :alt: Read and Write permissions\n\n* Now your app will get its permissions elevated to ``Read and Write``.\n\n.. image:: https://drive.google.com/uc?export=view\u0026id=1LQpDI1zxP5tftPek9FELane4W9bqEs_c\n   :target: https://drive.google.com/uc?export=view\u0026id=1LQpDI1zxP5tftPek9FELane4W9bqEs_c\n   :alt: Read and Write permissions\n\nEach app is associated with three sets of keys: an API Key, an API Key Secret, and a Bearer Token.\n\n1.1.3. Store secrets:\n+++++++++++++++++++++\n\nYou need to store keys and secrets of the app as environment variables in order to authenticate and\npublish tweets. To do so, open your terminal, and type the following(change each ``XXXXXXXXXX``\nvalue accordingly):\n\n.. code-block:: bash\n\n   export CONSUMER_KEY=\"XXXXXXXXXX\"\n   export CONSUMER_SECRET=\"XXXXXXXXXX\"\n   export ACCESS_TOKEN=\"XXXXXXXXXX-XXXXXXXXXX\"\n   export ACCESS_TOKEN_SECRET=\"XXXXXXXXXX\"\n\n\n1.2. Deepgram:\n~~~~~~~~~~~~~~\n\n1.2.1. Create an API Key:\n+++++++++++++++++++++++++\n\nIn order to interact with the Deepgram API, you need to grab some keys. To do so, follow along the\n`deepgram official docs`_ to create an ``API Key``.\n\nNow, you need to store your ``API Key`` as environment variable in order to authenticate and\ntranscribe audio data. To do so, open your terminal, and type the following(change the ``XXXXXXXXXX``\nvalue accordingly):\n\n.. code-block:: bash\n\n   export DEEPGRAM_API_KEY=\"XXXXXXXXXX\"\n\n\n2. Requirements\n---------------\n\n2.1. Python Interpreter:\n~~~~~~~~~~~~~~~~~~~~~~~~\n\n**deepwordle** was tested and built with Python 3.10.1.\n\nTo install Python 3.10.1, I recommend using `pyenv`_.\n\n.. code-block:: bash\n\n   git clone https://github.com/pyenv/pyenv ~/.pyenv\n\nConfigure `pyenv` on zsh:\n\n.. code-block:: bash\n\n   cat \u003c\u003c EOF \u003e\u003e ~/.zshrc\n   # pyenv config\n   export PATH=\"${HOME}/.pyenv/bin:${PATH}\"\n   export PYENV_ROOT=\"${HOME}/.pyenv\"\n   eval \"$(pyenv init -)\"\n   EOF\n\nOr if you are using the default bash shell, run the following command instead:\n\n.. code-block:: bash\n\n   cat \u003c\u003c EOF \u003e\u003e ~/.bashrc\n   # pyenv config\n   export PATH=\"${HOME}/.pyenv/bin:${PATH}\"\n   export PYENV_ROOT=\"${HOME}/.pyenv\"\n   eval \"$(pyenv init -)\"\n   EOF\n\nClose your terminal and open a new shell session. Now, you can install `Python3.10.1`.\n\n.. code-block:: bash\n\n   pyenv install 3.10.1\n\nMake the interpreter available globally:\n\n.. code-block:: bash\n\n   pyenv global system 3.10.1\n\n\n2.2. Virtual Environment:\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\nTo manage and set up Python 3.10.1 in a virtual environment, I recommend using `poetry`_.\n\nYou can install poetry by running the following command:\n\n.. code-block:: bash\n\n   curl -sSL https://install.python-poetry.org | python3 -\n\nTo test if everything was installed correctly, run the following:\n\n.. code-block:: bash\n\n   poetry env use 3.10.1\n\nHowever, if you are using virtualenv installed via apt, you are most likely to run into\nthe following:\n\n.. code-block:: bash\n\n   Creating virtualenv deepwordle-dxc671ba-py3.10 in ~/.cache/pypoetry/virtualenvs\n\n   ModuleNotFoundError\n\n   No module named 'virtualenv.seed.via_app_data'\n\n   at \u003cfrozen importlib._bootstrap\u003e:973 in _find_and_load_unlocked\n\nTo resolve this issue, you need to reinstall virtualenv through pip:\n\n.. code-block:: bash\n\n   sudo apt remove --purge python3-virtualenv virtualenv\n   python3 -m pip install -U virtualenv\n\nHaving virtualenv set up, you can use poetry to create a new project along with a virtual environment:\n\n.. code-block:: bash\n\n   poetry new deepwordle \u0026\u0026 cd deeepwordle\n\nNow, you need to let poetry know which version of python to run:\n\n.. code-block:: bash\n\n   poetry env use 3.10.1\n\nThen, you can create and activate a virtual environment to use for this project:\n\n.. code-block:: bash\n\n   poetry shell\n\nNow, at any point in the future, you want to use a virtual environment created by poetry, you can look up\nfor installed virtual environments under :code:`~/.cache/pypoetry/virtualenvs`:\n\n.. code-block:: bash\n\n   ls ~/.cache/pypoetry/virtualenvs\n\nTo activate a virtual environment, run the following:\n\n.. code-block:: bash\n\n   source ~/.cache/pypoetry/virtualenvs/\u003cyour_virtual_environment_name\u003e/bin/activate\n\n\n2.3. PortAudio:\n~~~~~~~~~~~~~~~\n\ndeepwordle depends on :code:`PyAudio` which in turn depends on another library called :code:`portaudio`.\nTo install portaudio on Linux, run the following:\n\n.. code-block:: bash\n\n   sudo apt-get install portaudio19-dev\n\n\n3. Installation\n---------------\n\ndeepwordle is currently available for Linux os. There are two main methods you can use to install and run the game\n\nWith :code:`pip`:\n\n.. code-block:: console\n\n   python3 -m pip install deepwordle\n\nWith `pipx`_:\n\n.. code-block:: console\n\n   python3 -m pip install --user pipx\n   pipx install --python python3 deepwordle\n\npipx will install and run deepwordle in your terminal, kind of similar to `npx`_ if you are familiar with it.\n\n\n3. Quickstart\n-------------\n\nHaving deepwordle installed on your machine, you can run it as a CLI from your terminal:\n\n.. code-block:: console\n\n   deepwordle\n\nor you can use poetry to run the game:\n\n.. code-block:: console\n\n   poetry run deepwordle\n\n4. Components Overview\n----------------------\n\nThere are four main textual components that build up this game:\n\n* ``rich_text``: a module to create customized text with different fonts and sizes.\n\n.. image:: https://drive.google.com/uc?export=view\u0026id=1AjW91cwX5qlly3erSWQZZSuJSx2FR3Qu\n   :target: https://drive.google.com/uc?export=view\u0026id=1AjW91cwX5qlly3erSWQZZSuJSx2FR3Qu\n   :alt: rich_text\n\n* ``message``: a widget to display rich text within a textual panel.\n\n.. image:: https://drive.google.com/uc?export=view\u0026id=1c59bdmimQsBdr3okiPGDgugcJLRmV5Pf\n   :target: https://drive.google.com/uc?export=view\u0026id=1c59bdmimQsBdr3okiPGDgugcJLRmV5Pf\n   :alt: message\n\n* ``letter``: a module to build customized buttons with different fonts, sizes, and styles.\n\n.. image:: https://drive.google.com/uc?export=view\u0026id=1xdkxHZQAvU3JVaFFDr2U2DAmWoMkNHwn\n   :target: https://drive.google.com/uc?export=view\u0026id=1xdkxHZQAvU3JVaFFDr2U2DAmWoMkNHwn\n   :alt: letter\n\n* ``letters_grid``: the main letters grid of the wordle game.\n\n.. image:: https://drive.google.com/uc?export=view\u0026id=1w5-AuKZVeHrfqtUTzj8NsX8SGZVuBcbQ\n   :target: https://drive.google.com/uc?export=view\u0026id=1w5-AuKZVeHrfqtUTzj8NsX8SGZVuBcbQ\n   :alt: letters_grid\n\n\n5. Game Workflow\n----------------\n\na- Enter the game by simply typing ``deepwordle`` on your terminal.\n\n.. image:: https://drive.google.com/uc?export=view\u0026id=1-Xaz1SrlMB0ZKvV8eEjd02xLbLly-kfp\n   :target: https://drive.google.com/uc?export=view\u0026id=1-Xaz1SrlMB0ZKvV8eEjd02xLbLly-kfp\n   :alt: start game\n\nb- Press ``r`` to record a word for two seconds.\n\nc- You will be prompted to either submit the word by pressing enter or remove the letters by pressing backspace.\n\n.. image:: https://drive.google.com/uc?export=view\u0026id=1UZ06LqL286-8PNq5yQtnNGSEnQAk6CsX\n   :target: https://drive.google.com/uc?export=view\u0026id=1UZ06LqL286-8PNq5yQtnNGSEnQAk6CsX\n   :alt: enter or backspace\n\nd- Repeat steps ``b`` and ``c`` until you complete the game.\n\n.. image:: https://drive.google.com/uc?export=view\u0026id=17EQGC6mPJ3bYX8ZrRm7CF8xeufhVHMsY\n   :target: https://drive.google.com/uc?export=view\u0026id=17EQGC6mPJ3bYX8ZrRm7CF8xeufhVHMsY\n   :alt: guesses\n\ne- If you guessed the secret word, you will be asked to press ``t`` to tweet your results.\n\n.. image:: https://drive.google.com/uc?export=view\u0026id=1Mm5ZHPEPBH0ACJWO_aDQ7nrh3jIYFfvo\n   :target: https://drive.google.com/uc?export=view\u0026id=1Mm5ZHPEPBH0ACJWO_aDQ7nrh3jIYFfvo\n   :alt: tweet\n\n\n👋 Contribute\n-------------\n\nIf you are looking for a way to contribute to the project, please refer to the `Guideline`_.\n\n📝 License:\n-----------\n\nMIT licensed. See the bundled `licence`_ file for more details.\n\n.. _pipx: https://github.com/pypa/pipx\n.. _npx: https://docs.npmjs.com/cli/v7/commands/npx\n.. _pyenv: https://github.com/pyenv/pyenv\n.. _poetry: https://github.com/python-poetry/poetry\n.. _licence: https://github.com/Harmouch101/deepwordle/blob/main/LICENSE\n.. _deepgram official docs: https://developers.deepgram.com/documentation/getting-started/authentication/#create-an-api-key\n.. _Guideline: https://github.com/Harmouch101/deepwordle/blob/main/CONTRIBUTING.rst\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwiseaidev%2Fdeepwordle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwiseaidev%2Fdeepwordle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwiseaidev%2Fdeepwordle/lists"}