Skip to content

Your First Invitation

An invitation is an offer of trust. You're saying: I want you here. Kunuleco has no directory of people, so nobody can search for you by name. People reach you because you handed them a way in, and there are two ways, depending on whether your friend is next to you or somewhere else.

Your friend needs Urchin installed and an account of their own first (Installation, Your First Identity).


In Person: meet

If your friend is in the room with you, on the same network:

meet

Urchin shows your peer seed, a code starting with kunul1, and a QR code for it. Your friend types the seed into their own terminal:

join kunul1…

Their node dials yours directly over the local network. No internet and no directory are involved. The seed pins your identity, so their node refuses anyone else who answers in your place. That is what handing it over face to face is for. When the check passes, their node records that you met in person and suggests friend as the next step. The seed works while your node stays on that network. A seed from an older build of Kunuleco is refused with the reason.

meet guest is different. It shows your node's address and a QR code so that someone running Urchin on a phone can sign in to your node as a client.


From Anywhere: invite

invite

This makes an invitation to the presence on the chip above Urchin's input. On a new account that is your lobby. Once you have founded a Hall or walked into one (Your First Hall), it is the Hall. The chip shows which. To pick one yourself, name it, as in invite lobby.

The reply gives the full join line, such as join Mira#7K2QX9 lobby, and a short, speakable code, something like tiger-castle-7. The code is a lookup key for your node's connection details, registered with Kunuleco's lookup service. It is not your identity. Anyone holding the code can use it, so treat it like a door code. Add -noshort if you want the full join line only. Tell your friend the code, and they type:

join tiger-castle-7

Their node reaches yours across the internet and joins the presence the invitation names.

The notification appeared quietly. Alex had used the code. After three months in a new city, Mira wasn't alone in her digital space anymore.

The lobby is always open, so a friend who joins your lobby is in straight away.

A Hall has a door. With the default knock threshold, your friend's join is queued as a knock, and they see that it was. Your node tells you, and you let them in from inside the Hall:

knocks
accept Alex

Your friend then runs the same join again and is let in as a Newcomer. The other thresholds are on Your First Hall.

Inviting someone into one of your rooms works differently, because a room has a door of its own.


Talking

Once your friend has joined, type a line in Urchin and it goes to the channel shown on the chip, which is the presence you are both in. Everyone present sees it.

For a one-to-one conversation that is kept, add your friend as a contact, then tell them something:

friend Alex#4Q8RMT
tell Alex#4Q8RMT Hey, you made it!

You can friend only someone your node has already seen, by a connection or on the local network. @friend add Alex#4Q8RMT alex does two things at once. It adds the contact and sets a petname, a private alias of your own, so from then on tell alex … works. A petname is bound to that person's identity, so someone else using the same display name does not inherit it.

tell keeps a history that survives restarts, and whisper and @chat are the same command. tell alex with no message shows your recent history together. If your friend is offline, the message waits in your outbox and is sent when they reconnect. outbox flush retries straight away.


How the Connection Is Made

Your node tries every way it has of reaching your friend at the same time, and keeps the first one that connects:

  • Local network, if you are on the same network
  • Veilid, across the internet through private routes
  • Tor, across NAT. It does not hide where your node is.
  • IPFS

Whatever carries it, each side proves who it is with a signed hello before anything else is trusted.


Seeing Who Is Around

Command Shows or does
who Who is present here, and who is signed in on this node
contacts Your contacts
friends online Which of your contacts are reachable right now
finger <name> Everything your node knows about one contact
ping <name> Whether a peer is connected, and over which transports
petname <identity> <alias> · petnames Sets an alias, or lists yours. petname <alias> --clear removes one, and an alias must be cleared before it can point at someone else.
unfriend <name> Drops a contact
block <name> · unblock <name> Blocks a person, or lifts the block

block keys on the identity the person proved, so it holds across every way they might connect, and it drops any open connection. If your node has never verified who a name belongs to, block says so and blocks nothing. For every command, see the command reference.


Next Step

You have an account, a place, a Hall and someone to talk to. Let's step back and look at what happened.

What Just Happened →