Simulate Twitter mobs on your own GPU
A fully local fork that turns any document into hundreds of bickering AI agents with memories, grudges, and shifting opinions.

What it does
Upload a press release, policy draft, or financial report. MiroFish-Offline extracts entities and relationships into a Neo4j knowledge graph, then spawns hundreds of AI agents with distinct personalities, biases, and reaction speeds. They post, reply, argue, and flip opinions on a simulated social platform hour by hour. Afterward, a ReportAgent interviews a focus group and writes a structured analysis. You can also interrogate any individual agent about why they posted what they posted.
The interesting bit
The original MiroFish was locked to Chinese UI, Zep Cloud, and DashScope APIs. This fork is essentially a surgical replacement of every cloud dependency with local equivalents — Neo4j Community Edition for graph memory, Ollama for LLM and embeddings, and 1,000+ translated UI strings. The architecture even abstracts the graph storage so you could swap Neo4j without touching the Flask API layer.
Key highlights
- Zero cloud API keys required; runs entirely on local hardware
- Hybrid search: 0.7 vector similarity + 0.3 BM25 keyword weighting
- Docker Compose setup spins up Neo4j, Ollama, and the app together
- OpenAI-compatible API support means you can still swap in Claude or GPT if desired
- AGPL-3.0 licensed, same as the original
Caveats
- Needs serious hardware: 16 GB RAM minimum, 24 GB VRAM recommended for the 32B model
- CPU-only mode works but the README warns it is “significantly slower”
- Synchronous NER/RE extraction replaces Zep’s async pipeline; unclear if this creates bottlenecks at scale
Verdict
Worth a look if you do PR strategy, policy analysis, or trading sentiment work and want to test narratives without API bills or data leaving your box. Skip it if you’re hoping to run meaningful simulations on a laptop — this wants a desktop GPU or cloud instances, which somewhat undermines the “offline” romance.