Kunuleco User Manual

Everything you can do, and how to do it — from your first login to founding a Hall and building trusted circles.

This manual covers the full command surface of the current alpha build. You can read it top to bottom, or jump to the Command reference when you just need syntax. Commands are shown as you type them; angle brackets like <name> mark values you fill in, and [brackets] mark optional parts.

Two front doors, one set of commands

You reach a Kunuleco node either through the Urchin graphical client or over plain SSH. The world commands (called verbs) are identical in both. The only difference: in the Urchin client's chat mode you prefix a command with / (e.g. /look); over SSH you type the verb directly (look). This manual writes verbs bare — add the / when you're in the client's chat mode.

What is Kunuleco

Kunuleco is a platform for creating private digital spaces you actually own. The name comes from Esperanto: kunuleco means "fellowship" — the experience of being together with people who matter to you. It isn't a social network; it's infrastructure for genuine connection — small groups, trusted circles, real conversations.

Your space doesn't live on someone else's server. It runs on your machine, as a node, under your control. Four ideas hold the whole system together:

  • You own your space. Your identity is a cryptographic key on your own machine. No platform issued it; no platform can revoke it.
  • Invite-only by design. There are no public directories and no discovery feeds. People reach you because you handed them an invite.
  • Multiple paths to connect. Local network, Veilid, Tor, or IPFS — if one route is blocked, others remain.
  • Capability-based security. Access comes from holding an unforgeable token, not from being on a list. Being present somewhere and being able to do things there are separate decisions.

Two ways to connect

The Urchin clientSSH / terminal
The graphical app. Guided onboarding, a network view, accessibility settings, media popups, and client commands prefixed with /. Connects over TLS (default port 8123). Any SSH client connects to a node (default port 8122, e.g. ssh alice@host -p 8122). You type verbs directly — no / prefix. Everything in the Command reference works here.

Client-only commands (network view, updates, accessibility, wizards) are listed under Urchin client commands and exist only in the graphical app.

Command mode & chat mode

The Urchin client has two input modes:

Switch with /cmd and /chat, and set your default with /defaultmode. Over SSH there are no modes — you're always typing commands directly.

Addressing never creates or switches: a channel is made only by the explicit act (create ~presence <name>), addressing an unknown one is an error, and sending never changes which channel is active.


Create your identity

Your identity is the first thing you make, and it belongs to you. It's a cryptographic keypair stored on your machine, protected by a password only you know.

There is no "forgot password"

A password reset would require someone else to have control over your identity — and no one does. Keep your password safe, and export an encrypted backup of your identity once it's created.

In the Urchin client

On the welcome screen, enter a username and choose Create Identity. You'll set a username, password, and theme. If the node already has members, you'll be sent to the Sponsor step instead (see below). When you're done you land on a success screen offering to create a room, join with an invite code, or go to your HOME.

Over SSH / first node

The very first account on a brand-new node is created freely, and it becomes the node's owner. The node also has an account of its own, the node user, which signs the owner's grants once at that moment and can never be signed into. After that, account creation is sponsored. The raw protocol commands are:

USER <username>          begin login
PASS <password>          authenticate
ADDUSER <username> <password>   create an account

Sponsorship — how new accounts join

Once a node has members, a new person can't just create an account: a sponsor must authorize the registration, and a sponsor is someone who holds the right to create accounts (create_user). The owner holds it from the start and can pass it on. Not every member has it. In the client this is the "Sponsor required" panel — the newcomer supplies their desired credentials plus a sponsor's username and password, and the sponsor's authorization creates the account. This keeps a node's membership intentional rather than open to the world.

Owner rights expire unless they are renewed

The right to create accounts (create_user), the owner's right (node_admin), and the right to pass either on (delegate:…) each expire 90 days after they are granted, unless the person who granted them renews them. Nothing renews by itself. The owner's own grants, made by the node user, do not expire. When you sign in, the node tells you about grants you gave that lapse within 30 days. Renew one person's with renew <name>, or list them all with renew all and confirm with yes. Holding create_user does not make someone an owner, because only node_admin does. See Owner rights & grants.

The guided tour

The first time you log in through the Urchin client, the node introduces itself and walks you through the essentials. It opens in the node's own voice:

This node is yours, newly awake.
Type anything and it runs.

From there it has you run whoami (to meet your identity), transport (to see how you're connected), and look (to see where you are), explains the two input modes and the menus at the top, shows how to make a space and bring people in, and then closes:

That's enough to get started. Type help to see your commands. Type help all when you're ready for more. This node is yours.

The tour closes by handing you help — your commands are yours to explore. You can type skip at any point to jump to the closing. The tour runs once per identity.

Your first commands

These are the verbs the node teaches first — enough to look around, move, talk, and build.

CommandWhat it does
whoamiShow your identity, location, and inventory.
look  (or l)Examine your surroundings; look <thing> inspects one thing.
go <exit>Move through an exit. Shortcuts: n s e w ne nw se sw up down.
whoSee who is here and who is online on this node.
say <message>Talk to everyone in the room. Shortcut: "<message>.
create ~room <name>Make a new room.
invite <name>Create an invite (you get a short code like tiger-castle-7).
homeReturn to your HOME.
help · help allGetting-started help, then the full verb listing.
quitDisconnect.

Concept · Your identity

Your identity in Kunuleco is self-sovereign and built in three layers:

LayerExamplePurpose
Cryptographic rootk51qzi5uqu5dg…Permanent, unforgeable anchor — an Ed25519 key.
Name#DiscriminatorMira#7K2QX9Human-friendly. The six-character tag is derived from your AID, in letters and digits chosen to be hard to misread, so no one can squat Mira#7K2QX9.
Short / intro codetiger-castle-7A speakable code for first contact and invites.

Under the hood your identity has three documents you'll occasionally see named:

When your node connects to another, each side proves who it is with a signed hello, and what it proves is an AID, a KERI identifier. A name can change and anyone can claim one, so what must hold on to a person, such as a block or an admission to a room, keys on the AID the connection proved. KERI records each key event in an append-only chain that commits in advance to the next key, which is what will let a key be rotated. There is no command to rotate a key yet. Your older did:key:z6Mk… identifier still appears in places such as your peer registry. See Back up your identity for the practical side.

Concept · Spaces & Halls

Kunuleco spaces nest from broad to specific:

You move with go <exit>, look with look, and return HOME with home. Found a community space with found hall <name> — it builds the hub, its three zones, and starter rooms (welcome / general / governance), and makes you the Steward.

How a Hall decides who gets in

Each Hall has a threshold: open (anyone joins as a Newcomer), knock (the Steward approves each arrival — the default), invite_only (short-code holders), or members_only (existing members must vouch). Set it with set hall threshold <mode>.

Live voice and avatar movement in a Hall

Members of a Hall can talk live and see each other's avatars move. Both travel over Veilid only, among the people in that Hall, and each stream carries the name its sender proved. The Steward turns them on or off with set hall voice on|off and set hall pose on|off. Voice is off until it is turned on, and pose is on until it is turned off. Your avatar's movement goes only to people who opened your window, and the client asks once before it sends your face. Live voice is not end-to-end encrypted.

Concept · Standing & trust

Standing is your trust level within a particular space. It rises from visitor to steward, and each tier unlocks deeper zones and more authority:

TierCan…
VisitorRead the Public zone. Implicit; not a member.
NewcomerRead and write in the Public zone — the first member tier.
FamiliarEnter and participate in the Common zone.
TrustedModerate Common (remove content, remove people).
StewardEnter the Private zone, govern the space, and grant Standing to others.

Check yours with standing. A Steward grants a tier with standing <user> <tier>. Entry to a gated Hall flows through a knock queue: newcomers knock (handled automatically), the Steward reviews with knocks and uses accept / reject, and existing members can vouch for someone to speed them through.

Concept · Presence

Presence is being somewhere, with other people, right now. It has three properties: a location (which space you're in), visibility (others can see you're here), and it's ephemeral (it's gone when you disconnect).

Crucially, presence is not the same as capability. If someone can reach your node and join your room, they're present — but what they can actually do (open a capsule, post to a board) is a separate, capability-gated decision. You talk to a presence with say (the room), chat (your active channel — or a named one explicitly: chat !garden hello), or tell <person> (privately — a 1-on-1 message saved to a persistent history).

A person whose identity can't be derived renders as UNIDENTIFIED. The word is deliberate: it means we cannot say who this is, and absence of identity is never dressed up as somebody.

Concept · Capsules & capabilities

A capsule is a capability-gated container. It holds objects and can expose services — methods other people can call. Capsules are the unit of sharing: you can give someone access to one capsule without exposing anything else.

Access works by capability, not by membership list. You grant an identity specific capabilities (read, write, …) on a capsule, and revoke them later. A capsule can also carry services built from templates (echo, ping, inventory) which remote peers invoke over the network. Capsules are exported as capsule:<name>:<service_type> when shared.

Concept · Friends & petnames new

The social layer remembers the people you meet, so your contacts survive restarts instead of vanishing each session.

You can only befriend someone you've met

Petnames and friends are anchored to a real identity you've actually seen on the network — by canonical name (alex#429754), an existing petname, or a live peer. This is what keeps the trust signal meaningful.

Concept · Connections & transports

Kunuleco speaks over several transports. When it connects to a peer it tries them at the same time and keeps the first that connects, so a blocked path doesn't cut you off. The messaging layer on top (called CapTP) is the same regardless of which transport carries it.

TransportScopeWhen it's used
mDNSLocal networkSame Wi-Fi / LAN. Automatic discovery, no setup. A sighting on the local network is only a hint, and the signed hello decides who the other node is.
TorInternetReachability and reliable fallback via a persistent .onion address. It does not hide where your node is, because every hello carries your node's IPFS addresses.
VeilidInternetEncrypted private routes that traverse NAT without port-forwarding.
IPFSInternetContent-addressed last resort via DHT routing.

A short code (like tiger-castle-7) is a memorable lookup key — behind it sits your real connection info (identity plus mDNS / Veilid / Tor endpoints) and a one-time token. You hand someone a code; they join it. See how you're connected with transport and which daemons are running with @node_processes.

In the Urchin client, the status bar names the link's state exactly. Encrypted (certified) means the channel is encrypted and the node's certificate matches the one your client holds, either your own node on this computer or a remote node whose trust bundle you imported. Encrypted (uncertified) means the channel is encrypted but the node's identity is not verified yet. The pair is deliberate, because the second is the weaker claim, and the bar never shows a plain "connected" where identity is unproven.

Trusting a remote node. Ask the node's operator for a trust bundle. The operator produces one with @node_trust and sends it to you, and you import it with /trust <bundle> [host], which records that node's certificate so every later connection must match it. Check the fingerprint with the operator by another route before you rely on it. If a later connection does not match the bundle, the client refuses the connection instead of making it, and it tells you the certificate did not match. /untrust [host] forgets a bundle, and connections to that node are UNVERIFIED again and will say so.


How do I… make a room and invite someone?

1Stand in a zone, then create the room. Rooms live inside zones (public, common, or private); creating one from your home hub or a Hall hub is refused, with a hint naming the zones you can enter.

go public
create ~room garden --desc A quiet place to talk

2Share it so others can reach it (this also opens a presence/chat channel). Sharing a room does not move you into it. You stay where you are.

share room garden

3Create an invite. You'll get a short code to pass along:

invite garden -short
→ tiger-castle-7

4Your guest joins with the code (or your canonical name):

join tiger-castle-7

To wire rooms together, use exits <room> add <name> <target> (add --oneway for a one-way passage).

How do I… found a Hall and manage entry?

found hall riverside

In the Urchin client, /found-wiz runs this as a guided ritual (name → description → atmosphere → threshold → optional first room). Either way, it creates the Hall hub, its Public/Common/Private zones, and welcome / general / governance rooms. You're the Steward. Then shape it:

describe hall What brings us together is shared music.
set hall atmosphere Playful
set hall threshold knock

With knock, arrivals queue for your approval:

CommandWhat it does
knocksList people waiting to join, with any vouches.
accept <user>Admit them (grants Newcomer standing).
reject <user>Decline the request.
vouch <user>Vouch for a pending knocker (Familiar+); auto-admits at the threshold.
standing <user> familiarPromote a member to a higher tier (Steward only).

How do I… add friends and keep a chat history? new

Once you've met someone (you've seen them connect or discovered them), add them and give them a petname in one step:

@friend add alex#429754 my-bandmate

That befriends alex#429754 and sets the petname my-bandmate. From then on:

contacts                       list your friends
friends online                see who's reachable right now
finger my-bandmate             full detail on one contact
tell my-bandmate Hey, you around?    one-to-one, saved to history
tell my-bandmate               show recent history with them

(tell, whisper, and @chat are the same command — use whichever you prefer.)

In the Urchin client you don't need the roster first: anyone you can see offers Whisper — click their name.

If they were offline when you sent, the message waits in your outbox:

outbox            see what's queued
outbox flush      retry delivery now

Manage aliases directly with petname <identity> <name>, list them with petnames, and remove one with petname <name> --clear. To stop following someone, unfriend <identity>; to cut them off entirely, block <identity>.

How do I… share a capsule or board?

Capsule. Create one, then share it and grant capabilities:

create ~capsule notes
share capsule notes
grant notes alex#429754 read,write

Revoke with revoke notes alex#429754. See who has what with list grants notes.

Board. Bulletin boards are threaded and persistent:

@board_create music Music Chat
post Practice moved to Friday --board music
posts --board music
reply 3 Works for me
share board music               share the board, read-only

Shares are read-only. --post is refused: a share that grants posting grants it to everyone the board is shared with, which is not something the current build can scope to one person. Anyone you share a board with can read it; nobody gains the ability to post by being shared it.

How do I… share media?

media upload ~/pictures/poster.png --caption Friday's show
media list
media share <id> lobby

Uploads (PNG / JPEG / GIF / WebP) go to IPFS and are shared into a presence as a clickable tag; in the Urchin client they open in a media popup. Remove your own with media delete <id>.

How do I… back up or move my identity?

Because there's no password reset, an encrypted export is your safety net and the way to move to a new machine.

export-identity '~/kunuleco-backup.id' <base64_passphrase>
import-identity '~/kunuleco-backup.id' <base64_passphrase> --overwrite

What a restore brings back

A copy of your identity restores who you are. It does not restore what a node let you do: permissions live on the node that granted them, and a node you restore onto has no record of you.

Quote the path; the passphrase is base64

In the Urchin client, type export-identity bare — a guided dialog picks the save path, masks the passphrase, and does the quoting and base64 wrapping for you.

Typing the full command yourself (over SSH): put the path in single quotes. The parser treats a bare backslash as an escape, so an unquoted Windows path like C:\Users\you\id.bin silently becomes a different filename — no space needed, no error shown. Quotes also protect paths with spaces. Encode the passphrase yourself with echo -n 'passphrase' | base64; don't type a raw secret on the command line, where it could land in your shell history or logs. Store this copy of your identity somewhere safe; anyone with the file and the passphrase holds your identity.

How do I… check my connection & troubleshoot?

CommandUse it to…
transportSee which transports are active (mDNS / Tor / Veilid / IPFS).
@node_processesCheck which daemons are running.
ping <user>Confirm a peer is reachable and over which protocols.
@peers · @discoverList connected peers / everyone discovered.
@netcheckRun a P2P compatibility check.
@versionShow the server build and commit.

In the Urchin client, /network shows a live network view and /check-updates / /update handle upgrades. Updates are cryptographically verified: the app checks each release against a signed manifest before it applies anything, and a fresh install works even offline because the app carries that signed manifest with it. The app you downloaded is the trust anchor, and nothing installs or updates without a valid signature.


Command reference

Case-insensitive. help <verb> prints detailed help for any command. Verbs beginning with @ are lower-level or diagnostic; their plain-word equivalents (above them here) are the everyday way in.

Account & session

CommandDescription
USER <username> pre-loginBegin login; follow with PASS.
PASS <password> pre-loginAuthenticate. Repeated failures are rate-limited.
ADDUSER <username> <password>Create an account. Free for the first account on a node; afterward requires a sponsor.
passwd <old> <new>Change your password. (Client: /passwd.)
whoamiYour name, location, and inventory.
whoWho is present here, and who is logged in on this node.
quit · LOGOUTDisconnect.

Navigation & looking

CommandDescription
look [target] · lExamine surroundings, or a specific object / capsule.
go <exit>Move. Shortcuts: n s e w ne nw se sw up down.
homeReturn to your HOME.
exits <room> add <name> <target> [--oneway]
exits <room> remove <name>
Add or remove exits between rooms.
inspect <object> · peer <object>Examine something in close detail (state, capabilities, metadata).
manifest realm <peer>#<disc>Open a portal to a peer's realm, loading their published Halls as exits.

Talking

CommandDescription
say <message> · "<message>Talk to everyone in the current room.
chat <message>Send to your active channel. The whole line is the message — the first word is never read as a target.
chat !<channel> <message> · !<channel> <message>Address a named channel explicitly — ! is the channel sigil. An unknown channel is an error; addressing never creates a channel or switches your active one.
@psay --to <host>:<presence> <message> advancedSend into a presence by naming the node that hosts it, as a handle with its tag (@psay --to alice#482938:lobby hello). local:, self:, here:, me: or a bare : mean your own presence. join <host> <presence> is the matching join. Everyday chat never needs a host, and chat does not read one.
tell <person> [message] · whisper · @chat newOne-to-one direct message, saved to a persistent history that survives restarts. Resolves petnames. No message = show recent history. If the person is offline the message queues in your outbox.
outbox [status] · outbox flush newMessages queued for offline friends; flush retries delivery.

Friends & petnames new

CommandDescription
friend <identity>Add a peer you've met to your contacts.
unfriend <identity>Remove from contacts (keeps the discovered record).
block <identity> · unblock <identity>Block a person (and drop any open session) / lift the block. A block keys on the AID they proved, so it covers every record for that person. If the name belongs to more than one identity, or this node has never verified who it is, block says so and blocks nothing. unblock restores them as they were, back in your contacts if they were a contact.
blockedList who you have blocked.
contactsList your friends.
finger <identity>Detailed info: registry, petname, directory, and live status.
petname <identity> <name>
petname <name> --clear
Set / clear a private alias bound to a specific identity.
petnamesList your petnames.
@friend add <id> [petname]
@friend remove|rename|list …
One-step convenience: befriend and name in one go; remove, rename, or list.
friends [online]Friends roster; online actively polls who's reachable now.

Building · rooms, Halls, objects

CommandDescription
create ~room <name> [--desc …]Create a room. Other prototypes: ~capsule, ~board, ~object, ~presence, ~place.
describe room <name> <text>Set a room's description.
found hall <name>Found a Hall (hub + Public/Common/Private zones + starter rooms). You become Steward.
set hall atmosphere|threshold|harbor|vouch_restores|voice|pose|residency|verb …Configure a Hall you steward. voice is off unless it is set, and pose is on unless it is set.
describe hall <text>Set the Hall's intention.
halls · zonesList Halls you have standing in / zones in the current place.
standing [<user> <tier>]View your Standing; a Steward grants newcomer|familiar|trusted|steward.
knocks · accept <u> · reject <u> · vouch <u>Review and resolve requests to enter a gated Hall.
get <obj> · drop <obj> · put <item> in <container>Handle objects. (take = get.)
inventory · iShow what you're carrying.
destroy <name>Permanently remove an object (or destroy room|capsule <name>).

Capsules, capabilities & services

CommandDescription
create ~capsule <name>Create a capability-gated container.
share capsule <name> [--no-presence] [revoke]Share a capsule. Unless you pass --no-presence, it opens a presence for the capsule and puts you in it (a room share does not move you). Only the capsule's owner can share it.
list capsules · list grants <capsule>List your capsules / who holds capabilities on one.
grant <capsule> <identity> <caps> [--service <type>]Grant capabilities (e.g. read,write), optionally on a specific service.
revoke <capsule> <identity> [caps] [--service <type>]Revoke capabilities; no caps = revoke all.
service list|add|remove <capsule> [echo|ping|inventory]Manage services mounted on a capsule.
service invoke <peer> <method> <capsule>Call a method on a remote capsule's service.

Boards

CommandDescription
post <message> [--board <name>]Post to a board (default general).
posts [--board <name>] [--thread <id>] · readRead board posts.
reply <post_id> <message>Threaded reply.
@board_create <id> <name…> · @board_listCreate / list boards.
share board <id>Share a board, read-only. --post is refused — see above.
@board_delete_post <id> ownerDelete a post (author or board owner).

Media

CommandDescription
media upload <filepath> [--caption "…"]Upload an image (PNG/JPEG/GIF/WebP) to IPFS.
media list · media info <id>List your media / details for one item.
media share <id> [presence]Share into a presence as a clickable tag (default lobby).
media delete <id>Delete your own media.

Identity

CommandDescription
@whoamiYour peer-to-peer identity: DID, peer ID, routes.
export-identity <path> <base64_passphrase>Export your identity to an encrypted file.
import-identity <file> <base64_passphrase> [--overwrite]Import an identity from a file in the node's imports folder (it reads nowhere else); won't overwrite without --overwrite. It refuses a name another account holds, and the node's own name.

Owner rights & grants

CommandDescription
delegationsList the grants you gave or hold, with their ids and when each expires. The owner sees every grant on the node.
undelegate <id>Revoke a grant, and what was passed on from it. It refuses the node user's own grants and the last node_admin.
renew <name>Renew every expiring grant you gave that person, for another 90 days.
renew all · yesrenew all lists every grant you gave that can be renewed and signs nothing. yes, within 10 minutes, renews exactly that list.

Invites & joining

CommandDescription
invite [presence] [-short|-noshort]Create an invite to a space (defaults to the current presence / lobby).
meet newShow your peer seed (a kunul1… code) and a QR so someone with you in person can connect to your node directly over the LAN — no internet, no directory. They run join <seed>.
meet guest newShow this node's address and a QR so a phone running the Urchin app can join it as a thin client.
join <identity|shortcode|name|seed> [presence]Join remotely by code or canonical name, or in person by a kunul1… peer seed (from someone's meet; the connection is verified against the identity the seed pins, and a seed from an older build is refused with its reason). --local joins a presence on this node; --here materializes a remote room as a walkable place.
door <presence> open|inviteKeep a ~presence you own open to anyone (the default) or make it invite-only. The lobby is always open.
door <presence> invite|uninvite <person>Invite someone to an invite-only presence, or withdraw it. The invite is kept against the identity their connection proved, so someone else using the same name is refused.
ping <username>Check whether a peer is connected, and over which protocols.
@whoknows [identity]Show the cached public-identity directory.

Advanced & diagnostics advanced

Shown by help debug. Not needed for everyday use — handy when verifying connectivity or reporting a bug.

CommandDescription
transport <status|enable|disable|force> <t>Steer transport selection for your next join (mdns/ipfs/veilid/tor, and force none clears). It does not re-route messages to peers you are already connected to, and it applies node-wide, not just to your session. enable, disable and force are the owner's.
@discover · @peers · @netcheckDiscovered peers / connected peers / compatibility check.
@presences · @pstats · @pwhereActive presences / presence stats / where you are now.
@piroshow · @pconnect <identity>Your public identity document / connect via automatic transport racing.
@ipfsid · @ipfspeers · @ipfscleanupIPFS peer ID, swarm peers, stream cleanup.
@p2pstatus · @p2pconnect <id> · @p2pdisconnect <id>IPFS peer-to-peer bridge.
@veilidstatus · @veilidroute · @veilidconnect · @veilidsend · @vpeers · @vcaptpVeilid status, your route blob, connect / test send, peers, session state.
@torstatus · @toraddress · @torconnect <peer> <onion>Tor status, your .onion address, connect to a peer.
@node_trustEmit this node's trust bundle, for the operator to hand to people who connect. They import it with /trust.
@version · @node_processes · @captp_debugBuild version, running daemons, CapTP session state.
debug <topic>Internal state: location, places, capsules, registry, actor, capabilities, all.
bug <description>Capture a bug report. It is saved as a file on your own machine, and nothing is uploaded. Zip the bugs/ folder and send it with a note. (Client: /bug.)

Urchin client commands client only

These exist only in the graphical client (prefix with / in chat mode). Over SSH they don't apply. In the world view, the ACTIONS panel carries the social verbs — each entry dispatches the typed command it names; on Android the world is the primary way in.

CommandDescription
/chat · /cmd · /defaultmodeSwitch to chat / command mode; set your default mode at login.
/world · /homeThe world navigator — your node as a place. Its ACTIONS panel carries the social verbs.
/whoWho's here right now, live.
/chat-windowYour current channel as a chat window. It shows the conversation from the moment you open it — earlier scrollback stays in the console.
/harborBrowse Halls peers have published, over the world view; a portal steps you through.
/network · /netdetail · /refreshShow the P2P network view; toggle IPFS peers; poll now.
/trust <bundle> [host] · /untrust [host]Record a remote node's certificate so every later connection must match it (the operator runs @node_trust) / forget it, returning that node to UNVERIFIED.
/servicesShow the node services view.
/settingsThe settings menu, over the console.
/theme · /display · /a11yTheme, display size, accessibility (scanlines, glow, motion). Font size: Ctrl + / Ctrl -.
/check-updates · /update [name] · /reinstallCheck for and install updates (all, client, server); full reinstall.
/restart · /reconnectRestart Urchin (after a client update) / reconnect without restarting.
/found-wiz · /join-wizGuided Hall-creation ritual / guided join with an invite code.
/invite-wiz · /friend-wiz · /create-wizGuided dialogs: mint an invite (with a copy button) / add a friend by identity / create a standalone presence.
/describe-wizSet this place's description — offered only where you own it.
/create-room-wizCreate a room here — offered only inside a zone.
/bugCapture a bug report from inside the session, right when something looks wrong. It is saved as a file on your own machine, and nothing is uploaded. Zip the bugs/ folder and send it with a note.
/passwd · /clear · /logdebug on|offChange password / clear the terminal / toggle debug logging.
/quit · /exit · /helpDisconnect / close Urchin / open help.

Glossary

TermMeaning
AIROYour private, encrypted identity credential on disk — "your identity."
PIROYour public, shareable identity document: how peers reach you across transports.
NIROThe node's own identity.
DIDYour canonical key as a decentralized identifier (did:key:z6Mk…) — the truth about who you are.
KERIThe pre-committed, hash-chained key-rotation scheme that lets you rotate a key without losing your identity.
CapTPThe capability messaging protocol that rides on top of any transport.
CapsuleA capability-gated container for objects and services; the unit of sharing.
HOMEYour personal root space, created at first login. You always steward it.
HallA community hub you found, divided into Public / Common / Private zones.
ZoneAn access tier within a hub, gated by Standing.
StandingYour trust level within a space: Visitor → Newcomer → Familiar → Trusted → Steward.
StewardThe governing role of a space — grants Standing and manages entry.
PresenceBeing somewhere with others, right now. Separate from capability.
PetnameYour private alias for a peer, bound to their identity so it can't be hijacked.
Short codeA speakable lookup key (e.g. tiger-castle-7) standing in for your connection info.
HarborThe shelf of Halls peers have published for others to visit — browsed from the world view.
UNIDENTIFIEDHow a person with no derivable identity renders. It means we cannot say who this is — absence never renders as somebody.