Skip to main content

Terminal credential generator with a curses-based TUI.

Project description

Generate It

A terminal credential generator and local manager with a curses-based UI.

It can generate:

  • Random passwords (choose a length and character categories)
  • Random passphrases (random words separated by hyphens)
  • Random usernames (adjective+noun, random characters, or word combinations)

New: Now features a secure local vault to save and manage your credentials directly from the TUI.

Install

From PyPI (recommended)

Requires Python 3.10 or later and pip.

pip install generate-it

Then run:

generate-it

From source (for development)

git clone https://github.com/j-kemble/Generate-It.git
cd Generate-It
python3 -m venv .venv

# Linux/macOS
source .venv/bin/activate

# Windows (PowerShell)
# .\venv\Scripts\Activate.ps1

pip install -e .

Then run:

generate-it

Features

Secure Vault

Generate It includes an encrypted local vault to store your generated credentials.

  • Encryption: Uses AES-256 (via cryptography) to secure your data locally.
  • Master Password: You create a master password on first run. This key is never stored; it unlocks your vault each session.
  • Offline: Your data stays on your machine (~/.local/share/generate-it/ on Linux).
  • Clipboard: Quickly copy passwords or usernames with hotkeys.

Controls

  • General Navigation:

    • Tab / Shift-Tab or Arrow keys: move focus
    • Space: toggle checkboxes / options
    • Left/Right: adjust numeric values
    • Enter: confirm action
    • q (or ESC): quit
  • Hotkeys:

    • g: Generate new credential
    • v: Open Vault Explorer

Vault Explorer (v)

  • ↑/↓: Navigate your saved credentials
  • Enter: View credential details
  • c: Copy Password to clipboard
  • u: Copy Username to clipboard
  • d: Delete credential (requires confirmation)
  • Esc: Close vault

Saving Credentials

When you generate a credential you will:

  1. Select [ Save ] (or navigate to it).
  2. Enter a Service Name (e.g., "GitHub").
  3. Enter a Username or Password (whichever wasn't generated).
    • Pro Tip: Press Tab in these fields to instantly generate a random username or password on the fly!

How it works

Random passwords (characters)

  • Length options: 8–64 characters
  • Choose 2 or 3 categories from:
    • letters
    • numbers
    • special characters

Random passphrases (words)

  • Word options: 3–10 words
  • Words are joined with hyphens (e.g. forest-ember-spark)
  • Words are chosen without replacement (no repeated words within a single passphrase)
  • Optional extras:
    • add numbers (randomly inserted into words)
    • add special characters (randomly inserted into words)

Random usernames

Three generation styles:

  1. Adjective + Noun (e.g. swift_tiger, cosmic_eagle_42)

    • Memorable and easy to pronounce
    • Optionally add 2-3 digit suffix
    • Separator options: underscore or hyphen
  2. Random Characters (e.g. a7k9m2p1, ab_3d_ef)

    • Maximum security and randomness
    • Length: 3–25 characters
    • Separator options: none, underscore, or hyphen
  3. Multiple Words (e.g. swift_tiger_eagle, forest_ocean_123)

    • Memorable yet more unique
    • Word count: 1–3 words
    • Optionally add digit suffix
    • Separator options: underscore or hyphen

Custom word list

The included word list contains 1000 lowercase words.

Override the word list in one of these ways (highest priority first):

  1. Set GENERATE_IT_WORDLIST to a file path
  2. Put a wordlist.txt in your current working directory

Otherwise, Generate It uses the bundled default word list.

License

Generate It is licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

generate_it-0.2.0.tar.gz (66.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

generate_it-0.2.0-py3-none-any.whl (50.9 kB view details)

Uploaded Python 3

File details

Details for the file generate_it-0.2.0.tar.gz.

File metadata

  • Download URL: generate_it-0.2.0.tar.gz
  • Upload date:
  • Size: 66.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for generate_it-0.2.0.tar.gz
Algorithm Hash digest
SHA256 cbca267a5a4f4285ae16408477566753c79e804b60d899792d79c07ee31227fc
MD5 02fa3d4c77d0ea1a4a7b92dc1bbd8431
BLAKE2b-256 7f3d1f4ab53560737fa9caf335ebc6909bc10c588e76773999395125ef301dc3

See more details on using hashes here.

File details

Details for the file generate_it-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: generate_it-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 50.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for generate_it-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b2d82318c6f32ee59222a0dfe81be7ef43ba6ecfa198eec9731d71f9aaeb8bc4
MD5 d93a18ccc390d7e779a3e919a8640425
BLAKE2b-256 3bb4b8fdbe14efa429d749bc66578d1d618ce1ba85cc22ad708c093dd8f0f997

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page