Automated Steam account generation
Find a file
illumfx aa3aa01d54
All checks were successful
/ test (push) Successful in 20s
Added license
2026-02-20 01:26:52 +01:00
.forgejo/workflows Fixed runs-on 2026-02-20 01:16:00 +01:00
.env.example Added click cli, generation of (or more) 2 accounts 2026-02-20 00:53:32 +01:00
.gitignore Added account creator 2026-02-20 00:29:10 +01:00
adjectives.txt Added account creator 2026-02-20 00:29:10 +01:00
LICENSE Added license 2026-02-20 01:26:52 +01:00
main.py Added click cli, generation of (or more) 2 accounts 2026-02-20 00:53:32 +01:00
nouns.txt Added account creator 2026-02-20 00:29:10 +01:00
README.md Added license 2026-02-20 01:26:52 +01:00
requirements.txt Added click cli, generation of (or more) 2 accounts 2026-02-20 00:53:32 +01:00

stace

made-with-python

stace automates the Steam account creation flow, including email verification handling. It's experimental and intended for educational or testing purposes only — do not use it to violate Steam's terms of service.

Name

  • stace is a short, memorable name derived from the phrase "Steam Account Creator" — letters were chosen to form a concise project name.

Features

  • Automates Steam account creation flow
  • Waits for and extracts the verification link from an IMAP inbox
  • Simple username/password generation using wordlists

Requirements

  • Python 3.8+
  • See requirements.txt for dependencies

Environment Set environment variables (recommended via a .env file):

  • EMAIL_HOST (IMAP host, default: localhost)
  • EMAIL_USER (IMAP username)
  • EMAIL_PASSWORD (IMAP password)

Quick start

  1. Create and activate a virtualenv:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
  1. Add a .env file with your IMAP credentials:
EMAIL_HOST=imap.example.com
EMAIL_USER=you@example.com
EMAIL_PASSWORD=supersecret
  1. Run the script (CLI)
python main.py --help
python main.py --chrome-path /usr/bin/chromium --driver-path /tmp/chromedriver --password-length 16

Behavior notes

  • The CLI will retry the full flow a small number of times if the browser session unexpectedly closes (errors like "invalid session id" or "session deleted").
  • You can set PASSWORD_LENGTH or pass --password-length to control generated password length.

Notes & safety

  • The script uses undetected-chromedriver to reduce automation detection; this may not always work and could violate site terms.
  • Use responsibly and only against accounts/resources you own or have permission to test.

Troubleshooting

  • If you see the error "TypeError: Binary Location Must be a String" this is a known issue reported against undetected-chromedriver: https://github.com/ultrafunkamsterdam/undetected-chromedriver/issues/1544

    Workarounds:

    • Ensure the Chrome/Chromium binary path you pass to the driver is a valid string (e.g. /usr/bin/chromium).
    • If you set env vars like CHROME_PATH or CHROMEDRIVER_PATH, confirm they're non-empty strings.
    • Upgrade undetected-chromedriver to the latest version where the bug may be fixed.
    • As a temporary workaround, try using the system Chrome/Chromium binary explicitly and ensure your create_driver() call receives the correct string paths.

    See the upstream issue for discussion and additional context: https://github.com/ultrafunkamsterdam/undetected-chromedriver/issues/1544

Contributing

  • Bug reports and small improvements welcome. Keep changes focused and add tests where appropriate.

License

  • MIT License