🎭 Cover Identity
Fictional legends that hold together.
"The lie isn't the name. The lie is the life that fits it."
What is it?
Generates internally consistent cover identities — and everything that keeps one alive. A legend is more than a name and a date of birth: it is a dated life history, a paper trail, a social web, a digital footprint, a routine, a budget, a passport, a medical card, a vehicle, a set of duress codes, and a plan for the day it burns. This package builds all of it, deterministically, from a single seed — then audits it, scores its risk, drills the operator on it, and stress-tests it under interrogation.
Built on Faker, seasoned with fiction. For novels, roleplay, and testing.
Features
The legend
- 🧬 Consistency engine — age matches DOB, email matches name, timeline is chronological
- 📅 Timeline generator — a dated life history anchored to the date of birth
- 🎭 Personas — archetype templates (tradesperson, creative, clerk, host, scholar)
- 🗣️ Speech kit — fillers, deflections, safe topics, and legend-leakage scoring
- 🧍 Appearance — baseline description plus a reversible disguise kit
The supporting material
- 📄 Paper trail — library card, gym membership, utility bill, work badge, receipts
- 🕸️ Network — a small social web with vouch-worthy contacts
- 🌐 Digital footprint — sparse, boring, on-legend accounts and posts
- 💰 Finance — income, budget, transactions, and a deliberately average credit profile
- ✈️ Travel — passport history scaled to the persona
- 🏠 Residence — home, safe houses, and neighborhood knowledge
- 🚗 Vehicles — a car with a plate, and routes to know cold
- 🏥 Medical — blood type, allergies, and a boring medical story
- 🗓️ Habits — a contiguous daily routine and small lived-in details
- 🌍 Languages — native tongue, accent, and honest proficiency levels
Operating it
- 🧠 Memory drill — scored memorization with a 0–100 burn meter
- 🕵️ Interrogation — adversarial probes that pull on the legend's weak threads
- 🎬 Scenarios — rehearsal cards built from the legend's own details
- 🛡️ Tradecraft — dead drops, brush passes, SDR routes, signal sites (fictional)
- 🔥 Burn plan — graded compromise response from lay-low to evacuate
- 📞 Comms — check-in schedule and missed-contact escalation ladder
- ✅ Checklists — pre-meeting, pre-travel, and post-incident walks
- 📋 Readiness — go/no-go gates before a legend goes live
- 🔄 Rotation — legend lifecycle scheduling with expiry horizons
- 🧾 Debrief — post-operation review that names the fields to fix
- 🗂️ Alias graph — cross-contamination checks between active aliases
- 📊 Metrics — generator quality and diversity over a seeded sample
- 🖥️ Handler dashboard — one status board across many legends
Storage
- 🔐 Vault — passphrase-protected, tamper-evident encrypted legend storage
Install
pip install cover-identity
From source:
git clone https://github.com/AnonymoDGH/cover-identity
cd cover-identity
pip install -e .
Quickstart
# A legend, printed plain
coverid new --seed 7
# The complete dossier — identity, paper trail, network, footprint,
# finances, travel, medical, residence, tradecraft, and more
coverid dossier --seed 7 --today 2024-06-01
# Apply an archetype
coverid persona tradesperson --seed 7
# Audit for contradictions
coverid audit --seed 7 --today 2024-06-01
# Drill until it's yours (study mode prints the answers)
coverid drill --seed 7 --study
# Exposure-risk assessment
coverid risk --seed 7 --today 2024-06-01
# Pre-deployment go/no-go gates
coverid readiness --seed 7 --today 2024-06-01 --drill-meter 90
# Encrypt a legend into a vault, then read it back
coverid vault-save berlin --passphrase "correct horse" --seed 7 --out legends.vault
coverid vault-show legends.vault --passphrase "correct horse"
# Multi-legend status board
coverid dashboard --seeds 1 2 3 --names berlin oslo kyoto --activate berlin
CLI reference
| Command | What it does |
|---|---|
coverid new |
Generate an identity |
coverid memorize |
Quiz yourself on the legend |
coverid dossier |
Assemble the complete dossier (briefing/json/markdown/cheat-sheet/redacted) |
coverid persona |
List or apply an archetype |
coverid audit |
Check an identity for contradictions |
coverid timeline |
Show the dated life history and gaps |
coverid drill |
Scored memorization drill with a burn meter |
coverid interrogate |
Adversarial probe list |
coverid risk |
Exposure-risk assessment |
coverid readiness |
Pre-deployment go/no-go gates |
coverid wallet |
Fabricate the paper trail |
coverid network |
Build the social web |
coverid footprint |
Build the digital footprint |
coverid tradecraft |
Fictional operations plan |
coverid burn |
Compromise response plan |
coverid schedule |
Check-in schedule and escalation ladder |
coverid checklist |
Pre-action checklists |
coverid scenarios |
Rehearsal scenario cards |
coverid metrics |
Generator quality metrics |
coverid debrief |
Post-operation review (stdin) |
coverid dashboard |
Multi-legend status board |
coverid vault-save / coverid vault-show |
Encrypted legend storage |
How it works
Tests
pip install pytest
pytest
423 tests cover every module, the CLI, and the end-to-end lifecycle.
License
MIT — fictional people for fictional stories. Any resemblance to real persons is the point, and also a coincidence.
Metadata
Release files for cover-identity 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| cover_identity-0.2.0.tar.gz | 101.4 kB | Without provenance | Details for cover_identity-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| cover_identity-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for cover_identity-0.2.0-py3-none-any.whl |
Total release size: 191.1 kB
Release files / cover_identity-0.2.0.tar.gz
| Download URL | cover_identity-0.2.0.tar.gz |
|---|---|
| Size | 101.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cea70ef2e0302021dd54c2a9c536e6e723fe6b7394dea61141f9cc8fa25e4ded
|
|
BLAKE2b-256 checksum How to use checksums |
f9afd0f1f7f98646256567c2f41f7b04bd4ba6da4565fa8a7a6626de9de1e5f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.3
|
Release files / cover_identity-0.2.0-py3-none-any.whl
| Download URL | cover_identity-0.2.0-py3-none-any.whl |
|---|---|
| Size | 89.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c10aea29c68db7a3bcd3e4237989512f5348ddea9bf56cfe53632301cf23d6b1
|
|
BLAKE2b-256 checksum How to use checksums |
0e98e42a849b8737b6772f15a149b9d688021bf92d61a3a75ce3c1c0853da651
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.3
|
Security for cover-identity 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.