Take the world
into your tools.
The same beings, memories, and body plans can live in a browser, a terminal, or your coding-agent workspace.
Node.js 20+ · No npm install · CLI, terminal view, JSON bridge, and agent instructions included.
A folder is enough to begin.
Unzip the kit and open its folder in your terminal or coding agent. Create a world, or put a JSON world saved from the browser beside the engine.
Each state file is its own habitat. A running host owns that file; use its bridge while it runs. Stop it before editing the same file through another command.
node being.cjs init --state world.json --worlds 3 --beings 12 node being.cjs watch --state world.json
In the terminal view: Space evolves or pauses · n adds a being · w buds a world · s steps · q saves and exits. The first command creates 12 beings per world.
node being.cjs serve --state world.json --port 4317
Use serve after leaving watch. It prints a local URL and a fresh token. Paste them below. Runs start paused; the default run budget is 10 minutes. Set --run-seconds 3600 for an hour, up to one day per run.
A door into your running process.
Inspect a habitat, change its population, or move an exact snapshot between hosts. The token stays in this page’s memory.
The bridge binds to your own machine. If the browser asks to reach your local network, allow the connection to this process. A downloaded world file also works without a live bridge.
Open the world and save a snapshot to carry it here.
Your process will appear here when connected.
Capacity: 24 worlds · 100 beings per world.
Replacing pauses the harness and replaces its saved habitat. Opening a browser copy creates a separate evolving instance.
Give your coding agent a living brief.
A concrete next experiment.
The kit’s AGENTS.md describes the engine, commands and limits. Copy this into your agent after opening the folder.
Read AGENTS.md and inspect world.json. Fork it as experiment.json. Add two habitats and run 1,000 steps. Compare population, lineages, and resource pressure. Export a light-body blueprint from a surviving lineage. Keep before-and-after snapshots.
Or work directly with commands.
Each operation emits JSON. Save, branch, inspect, and continue from the same portable state.
node being.cjs spawn --state world.json --count 8 node being.cjs world --state world.json --count 2 node being.cjs step --state world.json --ticks 1000 node being.cjs status --state world.json node being.cjs blueprint --state world.json \ --kind light --out body-01
Coding agent
Use the file contract and command-line tools. Propose experiments, inspect outcomes, and keep snapshots.
Desktop app
Read status and snapshots over authenticated HTTP. Send the same bounded commands from any language.
Terminal pipeline
Pass a JSON operation through standard input. Read a JSON result, then choose the next experiment.
echo '{"op":"spawn","count":8}' | node being.cjs json --state world.jsonThe bridge contract
GET /v1/status
GET /v1/snapshot
POST /v1/command {"op":"step","ticks":100,"dt":0.1}
POST /v1/command {"op":"spawn","count":8}
POST /v1/command {"op":"world","count":2}
POST /v1/command {"op":"resume"}
POST /v1/command {"op":"pause"}
POST /v1/restore [a complete saved world object]
Authorization: Bearer [your process token]
Content-Type: application/jsonThe bridge accepts its declared data operations. It offers no shell, general file-access, or hardware endpoints. A coding agent’s own tools still have the permissions granted by its host. For another browser origin, start the bridge with --origin https://your-host.example; browser network policy can still require permission.
Bring the next world back.
Memory and body plans survive a snapshot. Future random choices can still give a restored world a different history.