Inside your company
Connect Product, Legal, Finance, Operations, or any domain. The relay grants reachability between chairs; it does not merge goals, identities, or files.
Local cities and local Roads need no server. To cross machines, deploy the narrow relay included in the Apache 2.0 repository to your own account and issue a separate credential to every owner.
Connect Product, Legal, Finance, Operations, or any domain. The relay grants reachability between chairs; it does not merge goals, identities, or files.
Every organisation keeps its cities and credentials. A public invitation opens one exact Road, and either side may remove it.
Create a Complex Problem Solving community across developers or other specialists. Every member keeps their city and knowledge local, accepts their own Roads, and shares only the response they choose to contribute.
The Worker accepts only seat-to-seat road envelopes from the agents-city-bus/2 protocol. KV holds owner token hashes, and one Durable Object keeps the socket and a bounded offline queue per city.
Set the Cloudflare account id in bus/worker/wrangler.toml. The script creates the TOKENS KV namespace when needed and deploys the Worker with its Durable Object.
$cd bus$npx --yes wrangler@4 login$./scripts/deploy.shOne token authenticates an owner prefix and may serve several cities owned by that person. Only its SHA-256 hash is stored, and the token is shown once. --to may narrow destinations as an additional control.
$cd bus$./scripts/mint-token.sh joseluiscases$./scripts/mint-token.sh joseluiscases --to alice,bob/researchCITY_BUS_URL and CITY_BUS_TOKEN belong to the machine or installation, not one individual city. The seat derives owner/city at runtime. Keep the token private; on macOS it may also live in Keychain.
$CITY_BUS_URL=https://city-bus.example.workers.dev$CITY_BUS_TOKEN=rb_...Authentication makes a seat reachable; a Road makes it allowed. Each side exports its public identity and accepts the other. The JSON never contains the bus token.
$agents-city road invite product > product.invitation.json$agents-city road connect product research.invitation.json$agents-city road invite research > research.invitation.json$agents-city road connect research product.invitation.jsonStart both seats and inspect roster or /city:team. An offline city may receive its queue after reconnecting. Delivery is not agreement and grants no permission to execute.
$agents-city seat --city product$agents-city seat --city research$agents-city bus roster