{"id":25413827,"url":"https://github.com/musq/github-available-usernames","last_synced_at":"2026-02-10T17:31:01.173Z","repository":{"id":53150919,"uuid":"188109030","full_name":"musq/github-available-usernames","owner":"musq","description":"Find out available usernames on GitHub","archived":false,"fork":false,"pushed_at":"2022-12-08T07:44:01.000Z","size":41,"stargazers_count":1,"open_issues_count":2,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-02-01T15:18:33.050Z","etag":null,"topics":["dictionary","github","pronounceable","username-checker"],"latest_commit_sha":null,"homepage":"https://musq.github.io/posts/github-usernames","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/musq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-05-22T20:28:21.000Z","updated_at":"2025-03-02T23:17:09.000Z","dependencies_parsed_at":"2022-09-13T17:50:30.023Z","dependency_job_id":null,"html_url":"https://github.com/musq/github-available-usernames","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/musq/github-available-usernames","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/musq%2Fgithub-available-usernames","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/musq%2Fgithub-available-usernames/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/musq%2Fgithub-available-usernames/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/musq%2Fgithub-available-usernames/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/musq","download_url":"https://codeload.github.com/musq/github-available-usernames/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/musq%2Fgithub-available-usernames/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29309593,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T16:09:25.305Z","status":"ssl_error","status_checked_at":"2026-02-10T16:08:52.170Z","response_time":65,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["dictionary","github","pronounceable","username-checker"],"created_at":"2025-02-16T14:32:05.143Z","updated_at":"2026-02-10T17:31:01.132Z","avatar_url":"https://github.com/musq.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Github available usernames\n\nFind out available usernames in Github.\n\nIt works by iterating over a list of words which fit the specified parameters and pinging Github to check if the profile page of these words (usernames) exist. If it does not exist, this word is stored as an available username.\n\n### Requirements\n\n- python 3.6+\n- pipenv\n\n### Installation\n\n1. Clone this repository and `cd` into it\n1. Create a virtualenv using `python3 -m venv vendor`\n1. Activate the virtualenv using `source vendor/bin/activate`\n1. Run `pipenv install` to install dependencies\n1. Run `python main.py` to begin extraction\n\n### Issues\n\nIf you face issues with *nltk*, please get a shell of your virtualenv's python by typing `python` and then follow these ---\n\n```\nimport nltk\nnltk.download('words')\nnltk.download('cumdict')\n```\n\nYou'll need to do this only once.\n\n### Configuration\n\nThere are two modes to choose candidates for potential usernames. Check the `main()` function in `main.py`.\n\n1. **Dictionary** *(default)* --- Use words from a dictionary\n1. **Pronounceable** --- Use random pronounceable words with a threshold on syllables. Use following parameters:\n    - USERNAME_MAX_SYLLABLE_COUNT - Maximum syllables count\n    - MAX_DESIRED_RESULTS - Number of usernames to scout\n\nOther generic parameters ---\n\n- USERNAME_MAX_LENGTH - Length of desired username\n- SLEEP_INTERVAL - Break after each Github ping. (Keep this greater than 200ms to avoid being blacklisted by Github)\n- GITHUB_AVAILABLE_USERNAMES_FILE - File name to store the available usernames\n- GITHUB_REQUESTS_FILE - File name to store all tried words\n\n### Optimizations\n\n- Check if the current word has already been pinged. If yes, do not ping it again.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmusq%2Fgithub-available-usernames","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmusq%2Fgithub-available-usernames","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmusq%2Fgithub-available-usernames/lists"}