Test Against Reality. Not Mocks!

Mocks can pass in CI but fail in production. Kopi gives you a secure, idempotent, lightweight replica of your actual database environment in seconds - schema, constraints, triggers, everything - so you can build/test/ship with confidence.

★ Pro/Team/Enterprise Tiers

Decaf Mode (Anonymization)

The biggest problem with test data is that it doesn't look real. Apps break because generated names are too long, addresses are invalid, or business logic fails.

Decaf Mode (kopi up -decaf) solves this by mirroring your production data while surgically removing PII automatically. It reads real rows, detects sensitive columns, and transforms them deterministically.

  • Zero Config: Auto-detects names, emails, phones and much more.
  • Consistent: "Mick" always becomes "Arthur".
  • Safe: PII is scrubbed in-memory, never written to disk.
Production (Source)
ID: 101 Mick Jagger mick@stones.com
ID: 102 Keith Richards keith@stones.com
Decaf Replica
ID: 101 Arthur Dent arthur@fake.com
ID: 102 Zaphod Beeblebrox zaphod@fake.com
Local AI Orchestration
$ kopi ai
→ Orchestrating via Microsoft Semantic Kernel...
→ Hybrid offloading: 45 layers GPU, 19 layers CPU RAM
→ Analyzing schema constraints for [dbo].[BicycleParts]

<think>
Columns: PartType, Material, Weight_g. If PartType = 'Frame'
and Material = 'Carbon', Weight_g should be 800-1200.
Applying topological DAG resolution to preserve FKs...
</think>

✔ 5,000 highly-correlated synthetic rows generated.

The Workflow: kopi ai pre-generates your complex synthetic datasets offline and caches them locally. It runs on your local workstation CPU or GPU. When you run kopi up, the engine automatically injects this cached AI data into your local database, entirely bypassing the production source for those specific columns.

★ Pro/Team/Enterprise Tiers

Zero-Trust Local AI (Synthetic Data)

"Lorem ipsum" is dead. Your application deserves realistic, relationally-aware test data that actually looks and behaves like your production environment.

Kopi integrates Microsoft Semantic Kernel to orchestrate local, offline LLMs (like DeepSeek-R1 or Qwen) directly on your hardware. It analyzes your schema, understands complex domain constraints, and generates perfectly correlated synthetic arrays deterministically.

  • Air-Gapped: Runs 100% offline via LLamaSharp. Your schema never touches OpenAI or the cloud.
  • Context-Aware: Knows a "Mountain Bike" needs "Knobby Tires", not "Slicks".
  • Hardware Adaptive: Auto-scales from 8GB GPUs to heavy CPU RAM offloading.
★ Pro/Team/Enterprise Tiers

Stop Flaky Tests

Random data is great for exploration, but terrible for automated testing.

With Deterministic Seeding, Kopi freezes time. By passing a seed, you guarantee that the exact same data (e.g. names, dates, amounts, and UUIDs) is generated every single time, on every machine.

If a test fails on Tuesday, you can reproduce it perfectly on Wednesday.

CI Pipeline (GitHub Actions)
# Step 1: Provision Database with Seed
$ kopi up --seed 8675309

# Step 2: Run Tests
$ dotnet test
✔ Test User 'Alice' exists........... PASSED
✔ Order #500 total is $99.00......... PASSED
✔ Invoice PDF generation............. PASSED

Total: 3 tests passed. Time: 4.2s
kopi.json
{ // 1. Passthrough (Copy Real Data) "passthroughTables": [ "dbo.Countries", "Sales.Currency", "Ref.*" ], // 2. Regex (Generate Strict Patterns) "regex": { "Product.SKU": "^SKU-[A-Z]{3}-\d{3}$", "Orders.Code": "^ORD-\d{9}$" } }
★ Pro/Team/Enterprise Tiers

Precision Control

Sometimes "Random" isn't enough. Your application logic depends on specific data formats or exact reference tables.

1. Reverse Regex

Need an SKU that matches ^SKU-[A-Z]{3}-\d{3}$? Just put that regex in your config, and Kopi will generate data that passes your strict validation rules.

2. Passthrough Tables

Don't generate fake Countries or Currencies. Tell Kopi to treat them as Reference Data, and it will copy them row-for-row from production.

Ready to upgrade?

Request to join the beta and experience the difference.

Request to join beta