The personal, local-first alternative to FunSearch/AlphaEvolve/EvoGens — for concepts, not code.
Getting Started · Architecture · Commands · Parameters · Related Work · Contributing
BlindMind is a lab notebook that does Blind Variation and Selective Retention (BVSR) on your ideas. Give it a seed concept (or a batch of them), and each round an LLM crosses and mutates them at high temperature into new candidates ("blind variation"), a second, low-temperature LLM pass critiques and scores each one ("selective retention") — optionally blended with your own score — and only what clears the bar survives to breed the next generation. The result is a growing, searchable tree of concepts with full parent-child lineage back to their seeds, not a single one-shot brainstorm.
FunSearch, AlphaEvolve, and research systems like EvoGens run this same LLM-evolutionary loop for code and algorithms, scored automatically. BlindMind applies it to human-facing concepts instead, as a local-first CLI with your own SQLite database and no hosted service — and it's the AI critic plus you, not the AI critic alone, that decides what survives. (For the closest existing prior art and an honest read on what's actually novel here vs. established technique, see Related Work.)
- Seed Database: Relational storage (SQLite, via SQLModel/SQLAlchemy async) tracking concepts, generations, and parent-child lineage — scoped per named
--project. - Variation Engine: Smashing disparate concepts together (Crossover) or laterally shifting a single idea (Mutation, Wildcard) using high-temperature LLM sampling.
- Retention Engine:
- Stage 1 (AI Critic): Low-temperature analytical pass scoring novelty, feasibility, and utility; survivors are persisted as soon as they clear the adaptive threshold, not just at the end of a generation.
- Stage 2 (Human-in-the-Loop): Interactive scored retention (1-10) blended with AI critique scores.
- Generational Loop: Survivors of both filters become the seeds for the next generation, allowing ideas to compound and evolve. The evolutionary directive itself adapts each generation based on what scored well.
Requires Python 3.11+ and uv.
git clone https://github.com/dcondrey/blindmind
cd blindmind
make install # uv sync
make start # launch interactive menuOn first launch, the app auto-discovers API keys, initializes the database, and offers to load seed concepts.
Every command runs through uv (uv run blindmind …); the bare name works too once
the venv is active. Most commands accept --project/-p to scope to a named project (default: default).
| Command | Description |
|---|---|
blindmind init |
Initialize the database |
blindmind run |
Start an evolutionary run |
blindmind list |
List concepts with filtering |
blindmind search <query> |
Search by keyword, domain, fitness |
blindmind view <ID> |
Inspect a concept |
blindmind tree <ID> |
Trace ancestry lineage |
blindmind stats |
Latent space metrics dashboard |
blindmind projects |
List all projects with summary stats |
blindmind export [file] |
Export all concepts to JSON |
blindmind import <file> |
Import concepts from JSON |
blindmind export-v1 <file> -p <project> |
Export via the crosstalk.blindmind.v1 contract |
blindmind graph [file] |
Export lineage to GraphViz DOT |
blindmind delete <ID> |
Remove a concept |
blindmind settings |
View current configuration |
The run command supports CLI flags for tuning:
uv run blindmind run 3 10 --threshold 6.5 --temperature 1.2 --model gpt-4o --project myidea| Flag | Description | Default |
|---|---|---|
--threshold / -t |
Minimum composite score to survive | 7.0 |
--temperature / -T |
LLM sampling temperature for mutations | 1.0 |
--model / -m |
Override LLM model | gpt-4o-mini |
--project / -p |
Named project to scope this run to | default |
Instead of binary accept/reject, rate each mutation 1-10 during the human-in-the-loop phase. Your score is blended with the AI critic's composite score to produce a final fitness value. Enter 0 to skip a concept.
Concepts can be tagged with comma-separated labels during seeding or retention. Search by keyword, domain, fitness range, or tags:
uv run blindmind search "quantum" --domain physics --min-fitness 7.0Export your entire latent space for backup or sharing:
uv run blindmind export my_ideas.json
uv run blindmind import seed_concepts.jsonImport accepts a JSON array of objects with domain, title, description fields, or a full export file.
- Short IDs: Use the first few characters of a UUID (e.g.,
8a2f) - Pre-flight Checks: Automatic API key validation and seed verification
- Graceful Interrupts: Ctrl+C during evolution saves progress as CANCELLED
- LLM Stats: Token counts and latency shown after each run
- File Logging: Detailed logs with rotation in
data/blindmind.log
make install Sync dependencies
make start Launch interactive menu
make test Run the test suite
make clean Remove venv, cache, and database
uv run ruff check . # lint
uv run ruff format --check . # formatting
uv run pytest -v # tests"LLM as mutation/crossover operator, scored across generations" is an established technique, not something invented here — worth knowing before assuming this is unprecedented:
- FunSearch (DeepMind) and OpenEvolve (an open AlphaEvolve reimplementation) run the same generational loop with explicit lineage, but for code/algorithm discovery scored by program execution — not concepts, not human-scored.
- EvoGens applies it to scientific research-idea generation, closer to BlindMind's domain — but its scorer is LLM-based throughout; no human rating enters the loop.
- Promptbreeder and EvoPrompt use the identical mutation/crossover/fitness mechanism to evolve prompts, not human-facing ideas.
- genetic-mcp is the closest match found: an MCP server doing genetic-algorithm brainstorming with LLM crossover/mutation and claimed lineage tracking. Its "evaluation mode" is still an LLM call scoring other LLM output, not a person — and as an MCP server it needs a live agent session rather than running as a local, standalone CLI against your own database.
What doesn't appear to exist elsewhere, based on that search: the combination of a local-first CLI (no hosted service, no live agent session required), durable per-project SQLite storage with full queryable ancestry, and a genuine human rating blended by formula with the AI critic's score — applied to concepts rather than code, prompts, or reward functions.
See CONTRIBUTING.md for development setup and the PR process. Please read our Code of Conduct. Security issues should be reported per SECURITY.md, not as public issues.