Fake data for the rest of us.
A bash-first fake data generator — source it as a library, call it from the CLI, or wire it up as an MCP server so Claude can generate test data without spending tokens.
$ bash seed.sh user --count 3 --format json
{"name":"Amy Peterson","email":"amy.peterson@generated.io","phone":"941-212-9025","dob":"1992-12-22","username":"amy.peterson"}
{"name":"Joshua Campbell","email":"j.campbell@testmail.net","phone":"765-893-8309","dob":"1947-10-02","username":"joshua.campbell"}
{"name":"Angela Bell","email":"angela.bell@trial.co","phone":"752-176-9946","dob":"1952-05-14","username":"angela.bell"}No runtime. No package manager. No dependencies beyond bash and awk.
37 generators across 8 categories, 4 output formats, an MCP server that turns Claude into a data factory, and a schema wizard to build custom .seed files.
| Category | Generators |
|---|---|
| Scalar | name email phone uuid date number lorem ip url bool first_name last_name |
| Record | user address company db_credentials |
| Ecommerce | product category order order_item coupon cart |
| CRM | contact lead deal activity note tag |
| Geo | coordinates country |
| Finance | credit_card |
| DevOps | log_entry error_log api_key |
| TUI | filenames dirtree menu_items |
git clone https://github.com/fissible/seed ~/lib/fissible/seedThat's it. No build step.
Source seed.sh and call any seed_* function:
source ~/lib/fissible/seed/seed.sh
seed_name # Patricia Torres
seed_email # patricia.torres@fakecorp.dev
seed_uuid # 4f9a1c2e-8b3d-47f0-a561-dc9e2b8f1034
seed_bool # truebash seed.sh <generator> [flags]
bash seed.sh name --count 5
bash seed.sh user --format json
bash seed.sh product --count 10 --format csv
bash seed.sh order --format sql --count 3
bash seed.sh filenames --count 20Generate a custom .seed file interactively:
$ bash seed.sh new custom-schema
Table name: app_users
Generators:
1) first_name 2) last_name 3) name
4) email 5) phone 6) uuid
7) date 8) number 9) bool
10) lorem 11) ip 12) url
Column name: id
Select generator [1-12, Enter to finish]: 6
Column name: email
Select generator [1-12, Enter to finish]: 4
Column name: age
Select generator [1-12, Enter to finish]: 8
Min value [1]: 18
Max value [100]: 80
Column name:
...
Written.The wizard writes a tests/fixtures/app_users.seed file ready for use with seed_custom (coming soon).
All record generators support --format json|kv|csv|sql. Default is JSON.
$ bash seed.sh order
{"order_id":"27ba8115-eb1c-44a0-bbb9-a9681275bfba","customer_email":"andrew.henderson@samplelink.net","status":"cancelled","total":1951.20,"created_at":"2020-07-27"}$ bash seed.sh user --count 3 --format csv
name,email,phone,dob,username
"Joshua Campbell","jeffrey.torres@testmail.net","765-893-8309","1947-10-02","joshua.campbell"
"Angela Bell","michael.jackson@trial.co","752-176-9946","1952-05-14","angela.bell"
"Patrick Martinez","mark.white@fakecorp.dev","796-750-6687","1977-04-20","patrick.martinez"$ bash seed.sh order --format sql
INSERT INTO orders (order_id, customer_email, status, total, created_at) VALUES ('407c15a9-d62c-434f-90fb-5575d901de46', 'stephanie.russell@fakemailbox.net', 'shipped', 8154.95, '2009-02-15');$ bash seed.sh user --format kv
NAME="Amy Peterson"
EMAIL="amy.peterson@generated.io"
PHONE="941-212-9025"
DOB="1992-12-22"
USERNAME="amy.peterson"$ bash seed.sh cart --items 2
{
"cart_id": "a0abf54b-b3d5-46b8-a8c5-f8bd67ced3a1",
"customer_email": "michelle.alexander@trial.co",
"subtotal": 2626.93,
"items": [
{"order_id": "a0abf54b...", "product_sku": "WEE-20993", "qty": 9, "unit_price": 155.33, "line_total": 1397.97},
{"order_id": "a0abf54b...", "product_sku": "QUI-21548", "qty": 4, "unit_price": 307.24, "line_total": 1228.96}
]
}line_total is always qty × unit_price. subtotal is always the sum of line_totals. Math is real.
$ bash seed.sh filenames --count 5
draft-widget-2019.csv
latest-dataset-2025.json
optimized-queue-2025.json
quick-block-2024.txt
old-detail-2020.txt
$ bash seed.sh dirtree --count 3
network/asset/log
client/dataset/node
quick/block/archive
$ bash seed.sh menu_items --count 4
Dynamic Widget
Latest Dataset
Optimized Queue
Quick BlockTUI generators don't support --format — they output plain lines, ready for your TUI list.
| Flag | Default | Applies to |
|---|---|---|
--count <n> |
1 (TUI: 10) | all generators |
--format json|kv|csv|sql |
json | record generators |
--min <n> / --max <n> |
1 / 100 | seed_number |
--from <date> / --to <date> |
2000-01-01 / today | seed_date |
--words <n> |
— | seed_lorem |
--sentences <n> |
— | seed_lorem |
--items <n> |
3 (max 10) | seed_cart |
--seed <n> |
— | all generators (reproducible output) |
--prefix <str> |
sk_ |
seed_api_key |
Wire seed up as an MCP tool so Claude can generate fake data on demand, without spending tokens inventing it.
1. Clone the repo (if you haven't):
git clone https://github.com/fissible/seed ~/lib/fissible/seed
pip3 install mcp2. Add to your project's .mcp.json:
{
"mcpServers": {
"seed": {
"command": "python3",
"args": ["/path/to/fissible/seed/mcp/server.py"]
}
}
}Replace /path/to/fissible/seed with your actual clone path (e.g. ~/lib/fissible/seed).
3. Restart Claude Code.
Claude will now have seed_name, seed_user, seed_product, and all other generators available as tools. When you ask for fake data, it calls the tools instead of hallucinating records — saving tokens and giving you consistent, realistic output.
- Bash 3.2+ — works on macOS (native bash), Linux, Docker, WSL
- No external deps — just
bash,awk,od, and standard coreutils - MCP server — requires Python 3.x and
pip3 install mcp
seed/
├── seed.sh ← entrypoint (library + CLI)
├── src/
│ ├── scalar.sh ← name, email, uuid, date, number, lorem, ip, url, bool
│ ├── record.sh ← user, address, company, db_credentials + format helpers
│ ├── ecommerce.sh ← product, category, order, order_item, coupon, cart
│ ├── crm.sh ← contact, lead, deal, activity, note, tag
│ ├── geo.sh ← coordinates, country
│ ├── finance.sh ← credit_card
│ ├── devops.sh ← log_entry, error_log, api_key
│ ├── tui.sh ← filenames, dirtree, menu_items
│ └── new.sh ← seed new custom-schema wizard
├── data/ ← names, domains, cities, nouns, adjectives, lorem…
├── mcp/
│ ├── server.py ← FastMCP adapter (one tool per generator)
│ └── requirements.txt
└── tests/
├── unit/ ← per-module bash tests (300 assertions)
├── fixtures/ ← .seed files for seed_custom (generated by wizard)
├── integration/ ← end-to-end CLI tests
└── mcp/ ← Python unit tests for the MCP adapter
MIT — use it, fork it, embed it.