Catalog PyPI
Back to packageRELEASE DETAILS

1.0.0

PyPI

aigen-cli

Zero-API browser-based AI dataset generation. No API keys needed — just a browser and a prompt.

aichatgptclidatasetgeminigenerationllmno-codesynthetic-data
Published29 Apr 2026
Direct dependencies22
Transitive dependenciesNot calculated

README

Version 1.0.0 documentation

aigen-cli

Zero-API, browser-based AI dataset generation.

Turn any web AI (Gemini, ChatGPT, Claude, Perplexity) into a batch generation engine. No API keys. No per-call costs. Just your browser and a config file.

$20/mo subscription → unlimited generations
vs
$0.001–$0.024 per API call → ~$5 for 200 items

Install

Via NPM (no Python setup needed)

npx aigen-cli auth gemini
npx aigen-cli run aigen.yaml

# Or install globally:
npm install -g aigen-cli
aigen auth gemini

The NPM wrapper auto-installs the Python package on first run.

Via pip

pip install aigen-cli

# With semantic dedup + quality scoring:
pip install aigen-cli[ml]

# With Playwright backend:
pip install aigen-cli[playwright]

# Everything:
pip install aigen-cli[all]

Quick Start

1. Authenticate once

aigen auth gemini

A Chrome window opens — sign in, then close it. Your session is saved encrypted.

2. Create a config

aigen init

Interactive wizard generates aigen.yaml.

3. Generate

aigen run aigen.yaml

Headless browsers start, data flows into output/dataset.json.


Commands

CommandDescription
aigen auth <platform>One-time login. Saves encrypted browser session. Platforms: gemini, chatgpt, claude, perplexity
aigen run <config.yaml>Primary command. Auth-first headless generation from config
aigen generateLegacy generation via an already-running Chrome debug session
aigen initInteractive wizard to create a generation config
aigen doctorSystem health check (Chrome, Python, keyring, optional deps)
aigen statusShow generation stats for an output directory
aigen packsList built-in domain config packs (medical, legal, ecommerce, code)
aigen push-hfPush a completed dataset to HuggingFace Hub
aigen sessionsList, export, or import browser sessions
aigen scheduleAdd/remove/run cron-scheduled generation jobs
aigen mcpRun as an MCP server for AI agent integration

Run aigen --help or aigen <command> --help for full options.


Config File

project: "My Dataset"
description: "Short description"
target: 100              # Total items to generate
batch_size: 5            # Items per browser request
agents: 2                # Parallel browser tabs
platforms:
  - gemini
  - chatgpt

schema:
  fields: [question_text, expected_answer, difficulty, marks]
  required: [question_text, expected_answer, difficulty]

topic_pool:
  - chapter: "Chapter 1"
    topic: "Algebra"
    question_type: short_answer
    difficulty: easy
    marks: 3

output:
  format: json           # json | csv | jsonl
  path: output
  filename: dataset.json

# Optional: push to HuggingFace after generation
huggingface:
  repo_id: "your-username/dataset-name"
  private: false

# Optional: quality + compliance
quality:
  enabled: true          # requires pip install aigen-cli[ml]
  mode: heuristic
  threshold: 6.0

compliance:
  pii_detection: true
  auto_redact: true

Domain Packs

Ready-made configs for common use cases:

aigen packs                          # list available packs
aigen generate --pack medical_mcq    # run a built-in pack

Built-in packs: medical_mcq, legal_qa, ecommerce, code_review


Architecture

┌─────────────────────────────────────────────────────────┐
│                      aigen-cli                           │
│                                                          │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐ │
│  │ Gemini   │  │ ChatGPT  │  │  Claude  │  │Perplexity│ │
│  │  Tab     │  │   Tab    │  │   Tab    │  │   Tab    │ │
│  └────┬─────┘  └────┬─────┘  └────┬─────┘  └────┬─────┘ │
│       └──────────────┴─────────────┴──────────────┘       │
│                          │                                │
│              ┌───────────▼───────────┐                    │
│              │    BrowserPool        │                    │
│              │  (auth-first agents)  │                    │
│              └───────────┬───────────┘                    │
│                          │                                │
│              ┌───────────▼───────────┐                    │
│              │  GenerationEngine     │                    │
│              └───────────┬───────────┘                    │
│                          │                                │
│    ┌─────────────────────┼─────────────────────┐         │
│    │                     │                     │         │
│ ┌──▼──┐  ┌───────────┐ ┌▼────────┐  ┌────────▼──┐      │
│ │Parse│  │  Validate  │ │ Dedup   │  │  Output   │      │
│ │JSON │  │  (schema)  │ │ Engine  │  │ Writers   │      │
│ └─────┘  └───────────┘ └─────────┘  └───────────┘      │
└─────────────────────────────────────────────────────────┘

Why This Exists

API costs scale linearly with usage. Generating 1000 items via API can cost $20–50. The same models via web interface are included in a flat $20/month subscription.

aigen-cli automates the web interface so you get:

  • Unlimited generations — rate-limited by platform anti-bot, not your billing
  • Zero API keys — just log in once like a normal user
  • Full transparency — every raw response is saved for audit
  • No vendor lock-in — swap platforms instantly via config

License

MIT

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 26

Native requirements
22 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
selenium
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
selenium>=4.20.0runtime
webdriver-manager
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
webdriver-manager>=4.0.2runtime
typer
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
typer>=0.9.0runtime
rich
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
rich>=13.7.0runtime
pydantic
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
pydantic>=2.0.0runtime
PyYAML
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
PyYAML>=6.0runtime
textual
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
textual>=0.50.0runtime
keyring
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
keyring>=25.0.0runtime
cryptography
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
cryptography>=42.0.0runtime
platformdirs
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
platformdirs>=4.2.0runtime
psutil
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
psutil>=6.0.0runtime
notify-py
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
notify-py>=0.3.7runtime
toml
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
toml>=0.10.2runtime
jsonschema
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
jsonschema>=4.22.0runtime
click-spinner
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
click-spinner>=0.1.10runtime
huggingface-hub
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
huggingface-hub>=0.20.0runtime
APScheduler
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
APScheduler>=3.10.0runtime
croniter
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
croniter>=2.0.0runtime
numpy
Environment
{
  "extras": "",
  "marker": "extra == \"ml\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
numpy>=1.24.0; extra == "ml"runtime
scikit-learn
Environment
{
  "extras": "",
  "marker": "extra == \"ml\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
scikit-learn>=1.3.0; extra == "ml"runtime
sentence-transformers
Environment
{
  "extras": "",
  "marker": "extra == \"ml\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
sentence-transformers>=2.2.0; extra == "ml"runtime
playwright
Environment
{
  "extras": "",
  "marker": "extra == \"playwright\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
playwright>=1.40.0; extra == "playwright"runtime
numpy
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
numpy>=1.24.0; extra == "all"runtime
scikit-learn
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
scikit-learn>=1.3.0; extra == "all"runtime
sentence-transformers
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
sentence-transformers>=2.2.0; extra == "all"runtime
playwright
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": ">=3.9",
  "evaluation": "NOT_EVALUATED"
}
playwright>=1.40.0; extra == "all"runtime

Distribution files

2 collected
aigen_cli-1.0.0-py3-none-any.whl

bdist_wheel · 78.34 KB · Python py3

Source file
aigen_cli-1.0.0.tar.gz

sdist · 68.11 KB · Python source

Source file

Repository

PENDING
bhriguverma/aigen-cli

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 10:46 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:e596cbc4ba4a83395e8be5bacaeb2f11ac064d2f9a718d48cb48d97a246efb15

Other collected versions

View all collected versions →