Adversarial dialog tool: pitch an idea, test a definition, or challenge an architectural assumption. Includes a Python CLI, HTTP API, and browser chat UI. It models Jeremy McEntire's reasoning style; its output is not Jeremy's advice or a source of private biographical facts.
Python 3.12 or 3.13 (the pinned dependencies were checked with 3.13):
python3.13 -m venv .venv
. .venv/bin/activate
pip install -r fly_v8/requirements.txt
# Supply ANTHROPIC_API_KEY in your environment.
python run.py 'Every team needs a strong manager.'
python run.py --spice spicy 'Every team needs a strong manager.'
uvicorn app:app --app-dir fly_v8 --host 127.0.0.1 --port 8080Open http://127.0.0.1:8080 for chat. For API clients:
curl http://127.0.0.1:8080/chat \
-H 'Content-Type: application/json' \
-d '{"dialog":[{"role":"Interlocutor","text":"Every team needs a strong manager."}]}'The client supplies the full dialog for follow-ups. The CLI accepts --history
pointing to a JSON array of [role, text] pairs; keep conversation files outside
this repository. Run python run.py --help for options.
ANTHROPIC_API_KEY: the Anthropic key (default lookup).SIMULACRUM_ANTHROPIC_API_KEY_ENV: optional comma-separated list of env-var names to try for the Anthropic key, in order (for exampleMY_ORG_ANTHROPIC_API_KEY,ANTHROPIC_API_KEY); first nonempty one wins.SIMULACRUM_MODEL: Anthropic model override (defaultclaude-sonnet-4-6).GENERALIST_MODELandOPENAI_API_KEY: optional recall branch. Both are required to enable your own model. No private model identifier, model weights, or biography is bundled. With noGENERALIST_MODEL, all turns use Anthropic.SIMULACRUM_TOKEN: stable cookie-signing secret for the web app. Despite its legacy name, this is not an API bearer token or access-control mechanism.TURNSTILE_SECRETandTURNSTILE_SITE_KEY: optional browser bot check.
Chat sends dialog and the bundled examples to the configured model provider. The web app has no login. Its signed-cookie request cap is per browser; clearing cookies resets it. Bind locally for development. A shared deployment needs its operator's access controls and provider budget limits. Cookie persistence uses HTTPS. No deployment is created by this repository.
docker build -t simulacrum ./fly_v8
docker run --rm -p 127.0.0.1:8080:8080 \
-e ANTHROPIC_API_KEY simulacrumpython -m unittest discover -s tests -vThese checks cover startup without OpenAI, chat and mode selection, optional recall configuration, and the bundled corpus identity. They use an HTTP mock at the model-provider boundary. Live model responses need a configured key.
Serving code is copied from the source working tree, including its existing uncommitted routing changes. See EXPORT.md for the privacy boundary. PRIMER.md is the general research/building guide; its pipeline examples describe the original research process, not bundled runtime commands.