mrkeyoor.com_
Tue 22 Sept 00:49 UTC
AI Toolsevaluationupdated 27 Aug 2026

MiroFish review

MiroFish is a bilingual Chinese and English social-simulation app that turns uploaded source material into a graph, a population of LLM-driven personas, and an interactive report. Chinese is the interface default, while an English UI and English README are available. It is useful for exploring possible reactions and story paths, but its own FAQ says the output is not a scientifically calibrated forecast.

+432stars / 7d
Verdict

Our MiroFish install added 31 packages in 13 seconds, but the build failed in 7 seconds because vite was not available in the frontend. Try it only as an exploratory scenario generator, with repeated runs and a clear warning that the output is not a calibrated prediction. Do not use one report to justify money, policy, hiring, or public-safety decisions.

We ran it

Lab card: what happened when we ran MiroFishScreenshot of MiroFish (mirofish.ai)
Install✓ · 13s31 packages · 14 MB
Build✗ · 7s
Testsn/ano test script
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo128 files~51,770 lines of source · 9.1 MB · 2 CI workflows · Dockerfile · tests dir

Answers from our run

Does MiroFish build from source?

Dependencies installed in 13 seconds (31 packages), and the build failed. We cloned commit 117ed37 into a clean Debian container with 3 CPUs and no project-specific setup.

Does MiroFish have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does MiroFish have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use MiroFish?

Anyone making financial, political, or safety decisions from one run: the official FAQ says MiroFish does not guarantee causal validity, prediction confidence, or calibrated behavior.

What are the alternatives to MiroFish?

OASIS, Mesa, Generative Agents. Our MiroFish install added 31 packages in 13 seconds, but the build failed in 7 seconds because vite was not available in the frontend.

Setup2/5Root install passed, but frontend build could not find Vite
Docs4/5Bilingual quick start plus an unusually candid English FAQ
Community4/571,575 stars and active, detailed issue reports
Maturity2/5v0.1.2 with reproducibility and run-lifecycle problems

Discussed on

  1. hnA Simple and Universal Swarm Intelligence Engine, Predicting Anything5 points
  2. hnMiroFish: A Simple and Universal Swarm Intelligence Engine, Predicting Anything4 points

Who it’s for

Researchers and product teams exploring how an LLM-generated population reacts to a supplied scenario.
Writers who want to test fictional social dynamics and question simulated characters afterward.
Developers comfortable paying for an OpenAI-compatible model API and using Zep Cloud for graph memory.
Teams willing to label results as exploratory scenarios and compare repeated runs before drawing conclusions.

Who it’s NOT for

Anyone making financial, political, or safety decisions from one run: the official FAQ says MiroFish does not guarantee causal validity, prediction confidence, or calibrated behavior.
Researchers who need repeatable cohorts by default: open issues 751 and 759 report different persona populations and entity sets from the same input, even after setting relevant temperatures to zero.
Users who require a completely local stack: current main requires a Zep Cloud API key and rejects a self-hosted Zep URL, according to the project FAQ.
Public SaaS operators looking for built-in tenancy and access control: the FAQ says the default deployment is for a trusted local network and lacks a production multi-user security boundary.
People running costly long simulations without restart tolerance: the project says there is no general checkpoint protocol, and issue 757 reports that refreshing Step 3 can delete a run's files.

Setup reality

Our sandbox install succeeded in 13 seconds, adding 31 npm packages and using 14 MB. The build failed after 7 seconds: the root script entered frontend, ran vite build, and the shell reported vite: not found. There was no test script, so tests were skipped.

The documented full setup needs Node.js 18+, Python 3.11 or 3.12, uv, an OpenAI-compatible LLM API key, and a Zep Cloud key. Source setup installs root, frontend, and backend dependencies; Docker Compose runs a published image and maps ports 3000 and 5001.

Our root install was not enough to supply the frontend build tool. The repository includes a Dockerfile, Compose file, two CI workflows, and a tests directory, but the package scripts expose no test target. npm audit found 0 known vulnerabilities in the packages our run installed.

Five stages turn source material into a simulated society

MiroFish takes a PDF, Markdown file, or text file and builds a graph from the material. It extracts entities, creates personas, configures a dual-platform social environment, runs agent interactions, and hands the resulting records to ReportAgent. The final interface supports a generated report plus conversations with simulated characters. That 5-stage flow is coherent, and the Vue frontend makes a complicated chain easier to observe than a folder of agent logs.

The default README calls the result a prediction engine, but the project's English FAQ draws a firmer boundary. OASIS supplies behavior and the multi-agent environment; LLMs generate the ontology, personas, configuration, behavior, and report; Zep stores graph and memory data. The FAQ says this combination must not be equated with a scientifically calibrated classical agent-based model. It does not automatically provide causal validity, calibrated opinion drift, or a prediction-confidence measure.

Two external API credentials are required for a real run

A dynamic deployment needs an LLM endpoint that works through the OpenAI Python SDK and a separate Zep Cloud key. The live demo linked in the README is a prebuilt static presentation, not a compute service for uploaded scenarios. The full source route also calls for Node.js 18+, Python 3.11 or 3.12, and uv. Docker reduces local packaging work but still reads the same credentials from .env.

The phrase "OpenAI-compatible" deserves caution. MiroFish depends on structured responses, request fields, context capacity, and parameter behavior that compatible providers may implement differently. Zep Cloud is the only officially integrated graph backend on current main, according to the FAQ, and startup rejects a legacy self-hosted Zep URL. Users seeking an offline model plus a local graph database would have to adopt unmerged community work or build the integration themselves.

What happened when we ran it

Our sandbox installed 31 npm packages in 13 seconds and used 14 MB on disk. The subsequent build failed with exit code 127 after 7 seconds. The root build script changed into frontend and invoked its build command, but the shell returned vite: not found. npm audit reported 0 known vulnerabilities across the packages installed by our run.

There was no tests script or target, so we skipped tests rather than inventing a substitute command. The 9.1 MB checkout held 128 files and about 51,770 source lines. It included a tests directory, two CI workflow files, a Dockerfile, and a Compose file. Those signals show that more validation exists in the repository, but they do not turn an unavailable package-script target into a test result.

The same input can produce different cohorts and conclusions

Open issue 751 reports that byte-identical input and interview prompts produced 9.5% and 60.0% abstention rates across two runs because cohort construction changed. Issue 759 follows the problem further: with the relevant temperatures set to zero, two consecutive graph builds in the same container returned 27 and 26 entities, with 24 shared. These are issue-reporter measurements, not our sandbox results, but they directly concern the product's central claim.

Variation can be useful for fiction and scenario discovery. It is a serious confound when someone compares policy options or treats one simulated crowd as representative. A defensible workflow would preserve every input and model setting, repeat the run, report disagreements, and compare the behavior with real observations or a baseline model. MiroFish does not currently do all of that for the user, and an attractive generated report can make the uncertainty easy to overlook.

Refreshing Step 3 can destroy the run you meant to inspect

Open issue 757 describes a browser refresh remounting Step 3 and sending a forced restart. In the reported sequence, the backend killed the subprocess, deleted the run files, and restarted at round 0 without a confirmation prompt. The project's FAQ separately says there is no general checkpoint or resume protocol across graph construction, configuration, simulation, and reporting. Report regeneration is only a limited exception when the underlying data survived.

That is costly because one simulation consumes two external services and may run for many rounds. The README itself advises starting below 40 rounds because consumption is high. A larger failed run can lose time, LLM spend, or Zep quota, and issue 688 asks for resumability for exactly that reason. Before committing a large document, test the complete flow on a smaller seed, back up backend/uploads, and avoid treating a browser reload as harmless.

A local demo is not a production multi-user service

Docker Compose publishes ports 3000 and 5001 and persists backend/uploads. The official FAQ warns against exposing backend port 5001 directly to the public internet and says the default configuration has no finished public multi-user security boundary. It recommends a trusted personal or local network. Authentication, tenant isolation, TLS, rate limiting, secret handling, audit logs, and path-boundary checks remain work for anyone turning the demo into a service.

71,575 stars coexist with an early release and active defects

GitHub showed 71,575 stars and 120 combined issues and pull requests. The last push was August 17, 2026, while detailed issue reports were still being updated on August 25. The latest release is v0.1.2 from March 7, 2026, and the project's July FAQ warned that main was already 96 commits ahead of that tag. This is active work, but choosing latest, v0.1.2, or main can produce materially different behavior.

MiroFish is interesting because it packages graph construction, persona generation, simulation, and questioning into one visible workflow. The 7-second build failure is fixable setup friction; the harder problem is epistemic. A simulated society built by an LLM and a changing entity extractor can produce useful hypotheses without producing a reliable forecast. Use the output to ask better questions, then verify those questions with data or a model whose assumptions you can test.

Alternatives

ProjectWhat it isPick it when
OASISThe social-media simulation framework that MiroFish uses as its engine.pick this instead when you want to build the simulation logic directly without MiroFish's graph, report, and web layers.
MesaA Python framework for explicit agent-based models and browser visualizations.pick this instead when rules, parameters, repeatability, and model validation matter more than LLM-generated personas.
Generative AgentsResearch code for memory-driven simulated characters in a small interactive world.pick this instead when reproducing the original generative-agents research setup matters more than a packaged prediction app.

What people are saying

  1. [github-trending] 666ghj/MiroFish

Sources

  1. MiroFish repository and English README
  2. MiroFish v0.1.2 release
  3. MiroFish English FAQ
  4. Cohort reproducibility report
  5. Entity extraction reproducibility report
  6. Step 3 refresh data-loss report
  7. Checkpoint and resume request

More ai tools reviews

awesome-artificial-intelligence · ncnn · OpenCreator · editor · autoclip · financial-services · the whole board →