GOD lets you pause an agent society mid-run, and says it is not social science
Govern, Observe, Direct - a real-time control room for agent societies
At a glance
- What is it?
- A control room for language-agent societies, named Govern, Observe, Direct: pause a run, scrub any step, ask one resident or the whole town a question mid-run, inject instructions to steer what happens next, and reset a stale world with one command. Two Python runtimes, a six-step browser wizard, a public site of replayable packs, and a paper accepted at the EMNLP 2026 System Demonstrations track.
- Who is it for?
- GOD is worth reading for one line above all others: it states that it is built for inspecting language-agent societies and not for claiming they are socially realistic. That sentence is the difference between a tool and a claim, and plenty of projects in this space do not make it.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 3, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The project states it is not claiming social realism
The framing paragraph sets expectations before any feature list, and it is worth quoting the shape of it rather than the adjectives. Most agent-society demos let you watch a simulation play out; GOD gives you the controls. You can replay a run, question any resident, change what happens next, and export a pack others can rerun, all from one screen. Then the sentence that matters: it is built for inspecting language-agent societies, not for claiming they are socially realistic. That is an unusual thing to put at the top of a repository in this area, and it reframes everything after it. The five headline capabilities are all interventions rather than observations: pause time, ask anyone, steer the next step, set up without code, and reset the run state.
`GOD_LLM_MODEL` is required and empty, and the examples span three providers
The example environment file is small and mostly empty, which makes it easy to read as a contract:
GOD_LLM_API_KEY=
GOD_LLM_API_BASE=https://api.openai.com/v1
GOD_LLM_MODEL=
GOD_EMBEDDING_API_KEY=
GOD_EMBEDDING_API_BASE=
GOD_EMBEDDING_MODEL=text-embedding-3-largeAny provider speaking /v1/chat/completions works, and the comment beside the required model setting offers three examples: qwen-plus, gpt-4o-mini and claude-3-5-sonnet-latest. Those come from three different providers, while the default base URL in the line above is OpenAI's. So the sample configuration invites you to paste a Qwen or Claude model name and leave the base pointing at OpenAI, which is the one combination in the file that cannot work. The comment marks the model as required and leaves the value blank, so nothing catches it for you either.
The embedding model keeps an OpenAI name when you change the base
The embedding settings are where the configuration quietly works against you. `GOD_EMBEDDING_MODEL` is pre-filled with text-embedding-3-large, an OpenAI model, while `GOD_EMBEDDING_API_BASE` and `GOD_EMBEDDING_API_KEY` are both blank, with a comment saying that leaving them blank reuses the LLM base and key. That reuse is the trap: point `GOD_LLM_API_BASE` at a different provider and the OpenAI embedding model name goes with it, sent to an endpoint that has never heard of it. The two settings that would fix it are the two left empty, and nothing in the file warns that the pairing has to be changed together.
Six wizard steps, two ports, and a localhost bind
Startup is one command and a browser. On macOS and Linux it is a clone and `./scripts/god.sh start`; on Windows PowerShell it is `\.\scripts\god.cmd start`. On the first run the script installs everything, opens a browser-based setup wizard and waits for you to finish, and the readme is explicit that you never have to edit `.env` or pass command-line flags by hand. The wizard runs in six steps: paste an OpenAI-compatible key, base URL and model name; choose GOD Town, a scenario named PKU Trump Visit, or create your own; describe the world by date, weather, vibes and rules; let the GOD agent draft agent profiles and a step plan; edit personalities, relationships, locations or steps; then launch. The remaining settings are ports and a bind address:
GOD_BACKEND_HOST=127.0.0.1
GOD_BACKEND_PORT=8001
GOD_FRONTEND_PORT=5174
GOD_SKIP_SETUP=0Binding to 127.0.0.1 rather than every interface is the right default for something that holds an API key, and the printed handoff URL keeps the same shape, a local address with the replay path in it.
Three documents are maintained twice
The tree carries parallel English and Chinese versions of three separate documents: README.md with README.zh-CN.md, QUICKSTART.md with QUICKSTART.zh-CN.md, and CONTRIBUTING.md with CONTRIBUTING.zh-CN.md. The readme links all of them, along with a developer docs site hosted alongside the public site, so a change to the quick start means editing two files and hoping they stay in step. Alongside them sit CODE_OF_CONDUCT.md, SECURITY.md, a licence and a `.readthedocs.yaml`, which points at a hosted documentation build even though the `docs/` directory in the same tree is what such a build would consume. The AtomGit mirror is linked from the readme too, so the project is published in two places and documented in two languages.
Two Python runtimes in one tree, two remotes under two names
The root holds two Python packages: `agentsociety/`, which matches the project description of a control room for agent societies, and `jiuwenclaw/`, which the update log names directly when it mentions parallel JiuwenClaw requests in the May 2026 entry. So a run can involve two runtimes rather than one, and the readme does not say how they divide the work. The publishing story has a similar split: the repository lives under XiaoLuoLYG on GitHub, while the linked mirror sits under a different account name on AtomGit, a separate host. Neither the two runtimes nor the two accounts are explained anywhere in the text, and both are the kind of thing worth asking about before building on it.
The newest tag is four months behind the last commit
There are two releases and only one of them is versioned. v0.2.0 went out on 2026-06-11, and the other is tagged `public-site-packs` on 2026-06-06, a name rather than a number, which is an unusual thing to find in a release list. The update log goes further back to v0.1.0 on 2026-05-21, the first tagged release, which shipped two built-in experiments and the PKU campus map. After v0.2.0 the log records a paper accepted at the EMNLP 2026 System Demonstrations track on 2026-08-27, with a camera-ready PDF linked from the project site. The last commit to the default branch is dated 2026-10-02. So the published artefact is four months behind the branch and a paper sits in between.
Navigation anchors carry emoji, and one of them is percent-encoded
The navigation row at the top of the readme is a row of links whose fragments were generated from headings that begin with a decorative character. One of them is written percent-encoded in the source, a sequence of escaped bytes standing in for a single character, which is what a heading emoji turns into once a tool has encoded it for a URL. Anchors derived that way survive editing badly: rename a heading for readability and the link resolves to nothing, with no error beyond a page that does not scroll. The features table has the same problem in a different form, since it stops partway through a row, leaving a control entry with no text after it. None of this is fatal, and it is the ordinary residue of a readme built around decorative headings, but it is the kind of small rot that makes a documentation page feel unfinished even when the software behind it is not.
Editorial conclusion
GOD is worth reading for one line above all others: it states that it is built for inspecting language-agent societies and not for claiming they are socially realistic. That sentence is the difference between a tool and a claim, and plenty of projects in this space do not make it. Two practical things before a first run. The example configuration pairs OpenAI's base URL with model examples drawn from three different providers, and the embedding model keeps an OpenAI name even when you point the base somewhere else, so set both or the first request fails in a confusing way. And the newest tagged release is v0.2.0 from June, four months behind the last commit, with an EMNLP paper accepted in between, so pin a commit rather than a tag when reproducibility matters.
Frequently asked questions
What is XiaoLuoLYG/GOD?
A real-time control room for language-agent societies, named Govern, Observe, Direct. You can pause and scrub a run, send a natural-language question to one resident, a group or the whole town mid-run, inject instructions to steer the next step, and reset a stale run to re-seed a clean world. The readme states it is built for inspecting agent societies, not for claiming they are socially realistic.
What does GOD need before it will run?
An OpenAI-compatible endpoint: `GOD_LLM_API_KEY`, `GOD_LLM_API_BASE` and a required `GOD_LLM_MODEL`. Any provider speaking /v1/chat/completions works. The defaults bind the backend to 127.0.0.1 on port 8001 with the frontend on 5174, and the embedding model defaults to text-embedding-3-large, reusing the LLM base and key when its own base is left blank.
Do I have to edit .env to start GOD?
No. Running `./scripts/god.sh start` on macOS or Linux, or the matching `god.cmd start` in PowerShell on Windows, installs everything, opens a browser setup wizard and waits for you to finish. The wizard walks through model configuration, experiment choice, scenario description, agent profile generation, editing and launch.
Which experiments ship with GOD?
The wizard offers GOD Town, a scenario named PKU Trump Visit built on a Peking University campus map, or the option to create your own society, with the world described by date, weather, vibes and rules. The first tagged release, v0.1.0 on 2026-05-21, shipped two built-in experiments plus that campus map.
Can I try GOD without installing it?
Yes. The project hosts a public site with curated replays, map packs, agent packs and downloadable experiments, plus a browser replay, and both are described as needing no install and no API key. Experiment, map and agent packs can be exported as ZIP files and imported again.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/xiaoluolyg-god)