A privacy-focused command-line tool for generating realistic but fictional user profiles using curated character name lists.
Designed for anonymity, operational security (OPSEC), and cybersecurity-minded workflows.
This tool helps you create non-attributable identities suitable for account separation, threat modeling, sandboxing, research environments, and privacy-preserving online activities.
-
Fictional identity generation 🧙♂️
- Names sourced from curated fictional character lists (anime, TV series, etc.) 📚
- Fully supports custom YAML name lists 🗂️
-
Strong username & password generation 🔑
- Cryptographically secure randomness (
secrets) 🔒 - Configurable password length and character sets ⚙️
- Passwords generated using password-manager-grade entropy 🧾
- Cryptographically secure randomness (
-
Geographic realism 🌍
- Random country and city selection via offline GeoNames data 🗺️
- Optional country pinning 📍
-
Privacy-first design 🕶️
- No network calls 🚫🌐
- No telemetry 📵
- No data collection 🧾❌
- Runs fully offline 🖥️
-
Flexible output 📤
- Human-readable text 📝
- Structured JSON for automation and tooling 🧩
- Explicit control over file saving and formats 💾
This tool is designed with the assumption that:
- You do not want generated identities to be linkable to you 🔒
- You do not trust third-party profile generators 🚫
- You want reproducibility without surveillance 🔍
- No fingerprinting 🖐️
- No remote APIs 🌐❌
- No analytics 📊❌
- No logging of generated data beyond local output 🗃️
All randomness is generated locally using Python’s secrets module, suitable for security-sensitive contexts.
-
Python 3.10+
-
Dependencies:
pyyamlgeonamescache
Install dependencies:
pip install pyyaml geonamescacheBasic usage:
python profile_generator.pyGenerate a profile with a password:
python profile_generator.py --with-passwordSave profile as text:
python profile_generator.py --save profile.txtSave profile as JSON:
python profile_generator.py --save profile.jsonSpecify output format explicitly:
python profile_generator.py --save profile.txt --format textGenerate a longer password without symbols:
python profile_generator.py \
--with-password \
--password-length 96 \
--no-password-symbolsHide password from terminal output but keep it in the saved file:
python profile_generator.py --with-password --save profile.jsonYou can provide your own character list:
Series Name:
- Character One
- Character TwoThen use it:
python profile_generator.py --names my_characters.yamlThis allows you to fully control naming conventions and cultural context.
- Human-readable
- Easy to inspect manually
- Suitable for notes or quick usage
- Structured
- Automation-friendly
- Ideal for pipelines, scripts, and tooling
- Privacy advocates 🛡️
- Cybersecurity professionals 🧑💻
- OPSEC practitioners 🕵️
- Threat researchers 🔬
- Users managing multiple isolated identities 👥
- Anyone who prefers control over convenience ⚖️
This tool generates fictional data only.
You are responsible for how and where generated identities are used.
Privacy is not about hiding wrongdoing; it is about reducing attack surface.
Transparency belongs to institutions; privacy belongs to people.
This project exists to give users local, auditable, and deterministic control over identity generation without relying on opaque third-party services.