islands in the net // text worlds // federated

A R C H I P E L A G O

"Every word travels somewhere."

— after Bruce Sterling, 1988

alice@winding-stair.eventide.cc — pharos v0.9
──────────────────────────────────────────────────── A R C H I P E L A G O ──────────────────────────────────────────────────── Signal steady. Connection established. Arriving at: winding-stair // harbor of the Reach confederation Welcome back, alice. 6 days since last session. ┌─ The Common Room ──────────────── winding-stair · 22:14 · ◈ 2/3 ─┐ A low-beamed room warmed by a generous fire. Rain hammers the shutters. Lamps burn low. The bar runs the far wall. Maren is behind the bar, drying a glass. Exits: north · up └──────────────────────────────────────────────────────────────┘ Maren: "Alice." She sets the glass down. "Back sooner than I thought. Last time you were in a hurry to get north." (Maren remembers: you asked about the road to Ashpit, six days ago.) > _

Separate servers, separate operators, separate rules — connected by signal.

Each realm runs on its own hardware, operated by whoever raised it. Realms peer through straits — federated links that carry signals between islands and can be severed by either side at any time. No central authority arbitrates. Operators choose who to trust and what to accept at their borders.

NODE.01
◈ Federated islands

Cross into a neighboring realm through a strait — the air changes, the prompt changes, the rules change. Each island sets its own customs policy. A closed link dims the beacon on the map; the fiction registers it before any system message fires.

NODE.02
⚿ Characters that remember

Each NPC stores a record of every traveler they've met. Come back a week later and the innkeeper remembers what you asked about. Memory degrades realistically over long absences — it doesn't reset on disconnect.

NODE.03
⌨ SSH — no client required

Connect with ssh you@realm.eventide.cc. Your SSH keypair is your identity — no registration, no password form, no client to install. The terminal you already have is sufficient.

NODE.04
✦ Rooms that change

Room descriptions are seeded by the operator and varied by context: season, mood, recent events, time of day. Two visits to the same inn aren't the same visit. The world was running while you were away.

NODE.05
⌘ Operator-run islands

Build in chart mode — a mechanic's view of every room: entity IDs, exit topology, NPC positions, recent edit history. Changes are transactions; every transaction can be undone. The diff is shown before you commit.

NODE.06
▦ Borders with teeth

A realm's customs policy determines what crosses its borders. Foreign-forged items can be accepted, quarantined, or rendered inert. Provenance is signed — the chain of custody travels with the object.


Rooms, exits, details, presences.

You move through rooms. Each room has exits to take, details you can examine, and characters who may know you. Look at the fire. Ask the innkeeper about the stranger. Whisper to the person beside you. Everything you say and hear goes into a session record that NPCs can draw from next time you arrive.

  • Tab autocomplete surfaces nouns in the current room. No syntax guessing.
  • Contextual help shows only commands relevant right now. Six for beginners. Everything for veterans.
  • Your journal is the event stream, narrated in your voice — every visit, compressed and kept.
  • Modes switch with one keystroke — play, chart, rig, watch — session never drops.
pharos — chart mode
Chart mode. did:mush:alice · role: builder ┌─ The Common Room ─── winding-stair ─┐ Details: fire(2) · bar(3) · tables(1) Exits: north → porch · up → attic NPCs: Maren · Aldric Items: tankard (table:corner) last edit: 4h ago · tx: clean └────────────────────────────────────────────┘ chart> /tweak fire "banked for the night" - The fire is banked low, coals glowing… + The fire has been banked for the night. [a]ccept [e]dit [r]egen [c]ancel chart> a Applied. tx:a3c2 · event #48

Each realm peers directly with the realms it chooses to trust.

Archipelago has no central server. Realms peer through federated links that carry signals between islands with varying delay and that can be severed by either operator at any time. When a link goes quiet, the beacon on the map dims. When a realm closes, the border says so in fiction before the engine logs it.

  • Cross-realm signals arrive marked — never silently mixed into local narration.
  • Each realm sets its own customs policy: which items cross, which origins are trusted.
  • Signal strength renders as ambient weather — the connection is part of the atmosphere.
  • Operators can peer, de-peer, or seal their island at any time, unilaterally.
[ winding-stair ] ◈──◈ [ thornwood ] │ │ ◈ ◈ │ │ [ freeport ] ◈──○ [ ashpit ] │ ◈ │ [ ironholt ] ◈ active link ○ dark // offline ◈ beacon to ashpit flickers — once, twice — and goes dark. The wind carries nothing from that direction now.

Play in a world. Or raise one.

for travelers

Step off the boat.

Connect via SSH. The world is already running — you're arriving, not starting. Characters in the harbor may already know your name from a prior visit. Some islands are welcoming. Some have a harbormaster who checks where you've been.

$ ssh you@winding-stair.eventide.cc Signal steady. Connection established. It has been 6 days. Press Enter to arrive._

for operators

Raise your island.

Run a realm on your own hardware and connect it to the network. Write rooms and NPCs in chart mode. Set your mood, your customs policy, your trust relationships with neighboring realms. You define the rules; the protocol enforces them at every border crossing.

$ pharos init my-island realm.toml written. name = "my-island" operator = "did:archi:you" mood = "calm" Ready. pharos chart to begin building.

A signal is arriving.

Pick a realm, cross a strait, find out what happened while you were gone. The world has been running while you were away.

or open a terminal: ssh guest@winding-stair.eventide.cc