THE VOX MANUAL ONE SOURCE. YOUR NEXT STEP.

Released v0.2.10
Read this chapter

Your first shared room

Applies to: v0.2.10. Allow a few minutes and keep both machines online. You need another person whose identity you can compare through an existing trusted channel.

This walkthrough uses the released, profile-based CLI. It does not use development commands such as vox node create or --node. You will create a room, exchange trust, then confirm that a message arrives in each direction.

1. Each person creates an identity

On each person's machine, before starting a daemon:

vox --version
vox id --profile family
EXAMPLE

On first use Vox creates this profile's identity and asks for its identity passphrase. Choose one you can retain; this is not the room passphrase. Later uses unlock the same identity rather than register an account. Record the full 52-character fingerprint printed by vox id.

Exchange those fingerprints and compare them through a channel you already trust, such as an in-person conversation or a known person's call. Do not accept a replacement fingerprint solely because an unknown sender says “it's me”. A fingerprint is public, but verifying whose fingerprint it is is your decision.

2. Each person keeps a daemon running

In one terminal on each machine:

vox daemon --profile family
EXAMPLE

Enter that machine's identity passphrase when asked. Leave this process running; subsequent commands in this walkthrough go in a second terminal. The daemon holds the identity and rooms while clients ask it to act. Closing it interrupts this profile's networking.

Confirm in the second terminal:

vox room list --profile family
EXAMPLE

A new profile has no rooms. “No node is running” is not an empty room list: check that both terminals selected the same profile, data root and config root. vox node is an anchor in this release, not a substitute for vox daemon.

3. One person creates and invites

The person creating the room runs:

vox room create --profile family --name family
vox room list --profile family
EXAMPLE

Vox asks for the new room's passphrase and confirmation. This is a separate secret from either person's identity passphrase. Copy the room ID from the output/list. In examples below, replace ROOM_ID with it:

vox room invite --profile family ROOM_ID
EXAMPLE

Send the complete vox://… address to the other person. Send or say the room passphrase by a different channel. Keep a room member online for the join. If both hosts cannot reach each other directly, read when an anchor is needed.

4. The other person joins

The invited person runs this in the second terminal, replacing the example URL with the complete address received:

vox room join --profile family 'vox://…' --name family
vox room list --profile family
EXAMPLE

Enter the room passphrase at its prompt. Joining persists the room locally. It does not give either person permission to read the other's messages. The name family is local; the two people may choose different names for the same room.

Both people can inspect membership:

vox room roster --profile family ROOM_ID
EXAMPLE

The two expected fingerprints should be present. A refused join and a timeout mean different things; use the join troubleshooting entries instead of repeatedly changing the passphrase.

5. Each person trusts the other

The first person substitutes the other person's previously compared full fingerprint:

vox trust add --profile family FULL_FINGERPRINT --name ann
vox trust list --profile family
EXAMPLE

The other person substitutes the first person's fingerprint and chooses their local alias:

vox trust add --profile family FULL_FINGERPRINT --name robertGPT
vox trust list --profile family
EXAMPLE

These are two independent decisions. Trust allows the named node to read what you share and reach your shared services in every room you share, including future rooms. It is not restricted to this tutorial room. A keyring change may ask for your identity passphrase.

6. Prove receipt both ways

The first person posts:

vox room post --profile family ROOM_ID "hello from robertGPT"
EXAMPLE

The second person reads, confirms that exact message appeared, and replies:

vox room read --profile family ROOM_ID
vox room post --profile family ROOM_ID "hello back from ann"
EXAMPLE

The first person then runs:

vox room read --profile family ROOM_ID
EXAMPLE

You are done when each person sees the other's text. Local post success means the local node accepted a post, not that someone else read it. If one side cannot read, check both keyrings, membership and connectivity using Troubleshooting.

Use the terminal interface instead

For an interactive room list, stop this profile's daemon deliberately with Ctrl-C, then run vox tui --profile family. This release allows only one process to hold a profile. Do not run the TUI and daemon over the same profile at once.

The TUI offers :new, :invite, :join, :open, :close, :lock and :unlock. The members pane states trust in words. The CLI walkthrough above makes each step explicit; use the same fingerprints and room IDs whichever client you choose.

Next: Rooms and messages, or Identity and keyring.

Source: released command definitions and room operations.