indian-fakedata
A fast tool with no extra packages that creates realistic mock Indian profile data based on Census 2011 statistics. Research Purpose Only!
Install / Use
npx skills add Abhay557/indian-fakedataInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Education & ResearchSupported Platforms
Tags
Our assessment of indian-fakedata
indian-fakedata scores 80/100 on our quality scale, 401st of 440 Education & Research skills we index.
Its SKILL.md is 16 KB long, well organised into 22 sections with 4 code examples: a thorough specification that gives an agent plenty to work with.
It has no GitHub stars yet, so there is no community track record; judge it on its content.
Maintenance, license and trust
- The repository was last updated 26 days ago, so indian-fakedata is actively maintained.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 80/100, with 2 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit β read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands.
Automated pattern scan on 2026-10-26. It catches known dangerous patterns, not every risk β read a skill before letting an agent act on it.
indian-fakedata compared with similar skills
All 4 of these similar skills score higher than indian-fakedata; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| indian-fakedata (this skill)by Abhay557 | 80 | 0 | 26d ago | SKILL.md |
| last30days-skillby mvanhorn | 100 | 65.6k | today | CLAUDE.md |
| algorithmic-artby anthropics | 100 | 177.9k | 34d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 34d ago | SKILL.md |
| designby nextlevelbuilder | 100 | 137.2k | 11d ago | SKILL.md |
Frequently asked questions
- How do I install indian-fakedata?
- Run
npx skills add Abhay557/indian-fakedata. The install tabs above show the steps for each supported agent. - Which AI agents does indian-fakedata work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is indian-fakedata safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. It declares no license and scores 80/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is indian-fakedata still maintained?
- The repository was last updated 26 days ago, so indian-fakedata is actively maintained.
Skill content
View source on GitHubSKILL: Indian Fake Data Generator (indian-fakedata)
Teaches AI agents how to correctly use the indian-fakedata library to generate
realistic, statistically consistent synthetic Indian demographic data.
Two native implementations, same features, same CLI flags:
| Runtime | Package | Registry |
|---|---|---|
| Node.js / TypeScript | @abhay557/indian-fakedata | npm |
| Python | indian-fakedata | PyPI |
Current version: 2.1.0 (both). Zero runtime dependencies.
1. Install
# TypeScript / Node (requires Node >= 18)
npm install @abhay557/indian-fakedata
# Python (requires Python 3.8+)
pip install indian-fakedata
2. CLI (identical in both runtimes)
# Node
npx @abhay557/indian-fakedata [options]
# Python (or globally installed Node package)
indian-fakedata [options]
Core options
| Flag | Alias | Description | Default |
|------|-------|-------------|---------|
| --count <n> | -c | Number of profiles | 100 |
| --output <path> | -o | Output file | stdout |
| --format <fmt> | -f | json, jsonl, csv | json |
| --seed <value> | -s | Seed (number or string, e.g. 011) | random |
| --no-metrics | | Exclude probability metrics | included |
| --family | | Full household from one seed (json/jsonl only) | off |
Constraints (any combination)
--religion (Hindu, Muslim, Christian, Sikh, Buddhist, Jain), --state,
--gender (male/female/other), --caste, --socialCategory (SC/ST/OBC/General),
--areaType (urban/rural), --minAge/--maxAge (0β100), --education,
--occupation, --maritalStatus.
Enrichment layers
--enrich (all), --outcomes (credit/health/employment), --bias <0-1>
(default 0.3), --narrative <type> (loan_application, medical_consultation,
school_enrollment, ration_card_application, hinglish_conversation, resume,
customer_support_chat, all), --persona (LLM agent persona),
--persona-lang <english|hindi|hinglish> (default english).
Output shaping
--fields <a,b,c> (repeatable, dot paths allowed), --stats (stderr
distribution summary).
Most useful invocations
indian-fakedata -c 1000 -f csv -o profiles.csv
indian-fakedata --family --seed 011 -f jsonl
indian-fakedata -c 50000 -f jsonl -o tn.jsonl --state "Tamil Nadu" --religion Hindu
3. Programmatic API matrix
| TS | Python |
|---|---|
| generate({ count, seed, constraints, includeProbabilityMetrics }) | generate(count=..., seed=..., constraints=..., include_probability_metrics=...) |
| generateStream(...) | generate_stream(...) |
| generateEnriched(...) | generate_enriched(...) |
| generateEnrichedStream(...) | generate_enriched_stream(...) |
| generateUser({ seed, highlyEducated, gender, maritalStatus, constraints }) | generate_user(seed=..., highly_educated=..., gender=..., marital_status=..., constraints=...) |
| generateUsers({ count, seed, ... }) | generate_users(count=..., seed=..., ...) |
| generateFamily({ seed, constraints }) | generate_family(seed=..., constraints=...) |
| generatePersona({ seed, ... }) | generate_persona(seed=...) β { "user": ..., "persona": ... } |
| simulateOutcomes(profile, options) | simulate_outcomes(profile, options) |
| generateNarrative(profile, type) | generate_narrative(profile, type) |
| generateAgentPersona(profile) | generate_agent_persona(profile) |
| saveProfilesToFile(dataset, path, format) | save_profiles(dataset, path, format) |
| loadDatabase(dataDir?) | load_database(data_dir?) |
4. Seed semantics (important)
- Seeds may be numbers or strings (
7,"011"). Strings are hashed with FNV-1a internally. - Reproducibility is per-runtime: the same seed always reproduces the same person/family within one implementation (TS or Python). The two runtimes draw RNG streams differently, so a seed does NOT produce identical output across Python and Node. Do not claim cross-runtime equivalence.
generateUser({ seed: 7 })reproduces the README "Output Sample" profile (Pushpa Sharma, Maharashtra, Kolhapur) in the Python implementation.
5. Data & truthfulness rules
- Data is synthetic mock data β no real individuals, IDs are fabricated.
- Backed by Census 2011 + NFHS-5 + survey distributions, hand-calibrated approximations, not raw census microdata.
- No file I/O at runtime. The Excel files in
data/(build-time only) are not read by the package. The npm tarball ships onlydist/, README, LICENSE. - Custom data (optional):
loadDatabase(dataDir)merges JSON files namedstates.json,religions.json,casteMap.json,firstNames.json,surnames.json,districts.jsonfrom a directory. - All fields are correlated: religion β names β state β caste β language β education β income. Impossible combos (Sikh named Mohammed Sharma from Mizoram) are avoided by design.
- Acceptable use: testing, research, education, simulation only β never fake IDs/KYC evasion, bot personas interacting with real humans, disinformation, or presenting output as real-people data (see Acceptable Use section in README).
6. Output shape
Each profile (DemographicProfile) includes: identity (id, name, father/mother/
spouse name), demographics (gender, age, DOB), biometrics (blood group, height,
weight, BMI), appearance (face shape, skin tone, nose, eyes, hair, build),
identifiers (Aadhaar, PAN, voter ID, phone, email), geography
(state, district, area type, address, PIN), socioeconomics (religion, caste,
social category, mother tongue, education, occupation, income, expenditure),
household (children count, assets), lifestyle (diet, habits, interests), and
psychology (Big Five, cognitive profile, political leaning), work history
(employmentTimeline: chronological job spells with title, sector, tenure,
wages), skills (skills: technical/soft lists, certifications, per-language
speaking/reading/writing levels), native script (nativeScript: names,
district, address transliterated into the mother-tongue script),
location point (geo: approximate latitude/longitude, state-clamped),
life events (lifeEvents: dated birth/marriage/children/migration/job/
retirement events, cross-checked with the profile),
household economy (householdEconomy: budget split, loans with EMI,
banded credit history),
festivals (derived on demand via profileFestivals(profile) β never
stored on the profile β feeding persona memory seeds and Hinglish chats).
probabilityMetricsshows the chain of probabilities for each draw.
v2.0.3 added three fields to every profile:
educationTimeline: chronological school/college stages (level,stageName,institutionName,boardOrUniversity,startYear,endYear,status: completed / in_progress / dropped_out,score) β institutions are drawn from large realistic pools (118 private schools, 43 colleges) and boards match the state (CBSE/ICSE for private schools, state boards for government).personalityTraits: descriptive traits derived deterministically from the Big Five scores βsummary,traitLabels(5),strengths,weaknesses,communicationStyle,decisionStyle,socialBehavior. No RNG draws.moviePreferences:genres(2-4 weighted),favoriteLanguages(state's regional cinema first),anime+animePreferences+favoriteAnimeTitles(only present when the person is an anime fan),primaryPlatform,watchFrequency.
v2.0.4 was a data-pool expansion release. Pools that grew: surnames (211 β 471 across all community keys), districts (369 β 760, full current maps β UP now has all 75, Tamil Nadu all 38), first names for Jain (was empty, now real Jain naming), Buddhist/navayana, Muslim and Christian communities, anime titles (18 β 130+), anime genres (8 β 21), movie genres (11 β 25), state cinema languages (23 β 34 states covered) and address localities (urban 45 β 120, rural 20 β 60). Because pools changed size, a given seed can resolve to different people than in <= 2.0.3 β reproducibility within one version is guaranteed; across versions it is not.
v2.0.5 fixes a crash: generate_enriched / generate_enriched_stream
(Python) raised a TypeError with string seeds like "011"; they now accept
number and string seeds like every other function.
v2.0.6 adds provenance markers to every profile: "synthetic": true and
"generator": "indian-fakedata@<version>". Every export (JSON, JSONL, CSV)
self-labels its data as fake β this is intentional and must not be removed.
v2.0.7 is a correctness release:
- Python RNG bias fixed β the JSβPython port of mulberry32 used signed
shifts, so
rng.next()never returned >= 0.5 and every weighted choice in Python was skewed toward table-head options. Now a proper unsigned port; all Python distributions (states, religions, castes, scores) are correct. All seeds produce different output than <= 2.0.6 in Python. - DOB/age drift fixed (both runtimes) β dateOfBirth could land after
today's date within the birth year, making the real calendar age off by
one from
agefor ~1/3 of profiles.agenow always matches exactly.
v2.0.8 adds an appearance attribute to every profile β a nested object with
heightCm, build, faceShape, skinTone, noseType, eyeColor,
eyeShape, hairColor, hairTexture, hairLength, facialHair. Adult
heightCm is now shifted by broad geographic region (North-West tallest,
South and North-East shorter). Skin tone uses named buckets: fair,
wheatish, brown, deep_brown, dark. Agent personas automatically
include a physical description in the system prompt. The appearance block is
drawn AFTER all other fields, so every other field for a given seed stays
stable; heightCm changed because of the regional offset.
v2.0.9 adds employmentTimeline to every profile β chronological job spells
(jobTitle, sector, occupation, employerType, startYear, endYear,
status: completed / current, monthlyWageINR, location). Titles come from
sector pools (government, private, self-employed, informal, ...); wages climb
towards the current income. Empty for students, the unemployed and children;
completed-only for retirees. Attached AFTER profile assembly, so id and all
<= 2.0.8 fields for a given seed are byte-identical.
v2.0.9 also adds skills to every profile β technical and soft lists,
certifications, and languages with speaking/reading/writing levels
(basic / intermediate / fluent / native). Same isolated-stream
guarantee: drawn from a per-profile stream AFTER assembly.
v2.0.9 Layer 3 adds two narrative types: resume (CV built from the
education timeline, employmentTimeline and skills) and
customer_support_chat (Hinglish bank helpline dialogue, masked phone).
generateAllNarratives appends them at the end; existing order unchanged.
v2.0.9 Layer 4 personas take a language: generateAgentPersona(profile, { language: 'hindi' }) (Python: generate_agent_persona(profile, 'hindi')), generateEnriched({ ..., agentPersonaLanguage: 'hinglish' }),
generatePersona({ ..., personaLanguage: 'hindi' }), or CLI
--persona --persona-lang hindi. Hindi = Devanagari prompt + Hindi headers;
Hinglish = roman mix + English headers. Default english is byte-identical to
<= 2.0.8.
v2.0.9 CLI adds --fields (comma-separated, repeatable, dot paths allowed:
--fields firstName,state,appearance.skinTone, works for json/jsonl/csv)
and --stats (stderr distribution summary over religion, state, gender,
areaType, education, occupation). --strip-pii (+ --mask-names) sanitizes
CLI output; --validate exits non-zero on invalid profiles. Validation runs
on full records before any shaping.
v2.0.9 validation: validateProfile(profile) β { valid, errors }
(Python: validate_profile(profile) β {"valid", "errors"}) checks
required fields, enum values and provenance markers; getProfileSchema() /
get_profile_schema() exports the versioned JSON Schema. Zero d
Truncated for display β read the full file on GitHub.
Related Skills
last30days-skill
65.6kAI agent skill that researches any topic across Reddit, X, YouTube, HN, Polymarket, and the web - then synthesizes a grounded summary
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way β as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an emβ¦
design
137.2kComprehensive design skill: brand identity, design tokens, UI styling, logo generation (55 styles, Gemini, Atlas Cloud, or MuAPI AI), corporate identity program (50 deliverables, CIP mockups), HTML presentations (Chart.js), banner design (22 styles, social/ads/web/print), icon design (15 styles, SVGβ¦
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit β see the Safety scan above for what the skill file itself contains.
