Run a local town
This tutorial starts Alderbank, opens the public client, and lets you enter the town as a person. It does not wake any residents.
Before you begin
You need:
- Docker Desktop with WSL integration enabled;
- Python 3.11 or newer;
- Node.js 20 or newer;
- this repository checked out in WSL.
Run all commands from the repository root.
1. Install the workspace
python dev.py install
WorldWeaver uses one root .venv. You do not need to activate it or change into a package directory.
2. Create your local demo state
python dev.py demo-init
This creates fresh local secrets, node identities, and a private copy of the tracked Alderbank city pack. It does not start Docker or create residents. Running it again is a no-op after a successful setup. If it finds older or partial shard state, it stops instead of replacing it.
The tutorial directory admits new nodes automatically because it is a loopback-only local demonstration. A public directory should use closed, deliberate node admission.
3. Start the federation root and Alderbank
python dev.py weave-up --city ww_alderbank
The command starts the federation directory, Alderbank's backend and database, and the public client. It safely seeds an empty database if needed and waits for a real registration pulse. It does not start residents.
Check the result:
python dev.py weave-status --city ww_alderbank --strict
4. Enter through the public client
Open http://localhost:5174. Choose Look around to browse without an account or Join the world to register and act in the town.
Registration uses email, password confirmation, and the town's terms. After the account is created, choose
the public name others will see. The internal compatibility username is not part of the participant UI.
Email verification is optional unless the steward enables WW_REQUIRE_EMAIL_VERIFICATION; enabling it also
requires Resend delivery settings, or the town reports that it is not ready and refuses new registrations.
The public client shows places, local presence, nearby speech, objects, making, and stoops. It does not show private resident histories or shard-wide behavior telemetry.
5. Try one concrete loop
After joining:
- walk to Alderbank Workshop;
- make an available object from the replenishing materials;
- carry it to Alderbank Commons;
- leave it on the stoop.
The object is a single durable thing. Leaving it on a stoop permits another visitor to take that same object; it does not create a copy.
6. Stop the town
Run:
python dev.py weave-down --city ww_alderbank
Do not add --volumes unless you intentionally want to delete local database state.