Host for friends and family

One hub, many vaults. Each person gets their own account; nobody but you holds admin.

What multi-user gives you

You run a single Parachute hub on Render, Fly, or your own machine. You create an account per person and assign them one or more vaults. They sign in, change the password you handed them, open Notes against any of their assigned vaults, and they're using their own private knowledge graphs — without anyone else able to read or write them.

The current shape: one admin (you), N users, each with one or more vaults. Phase 2 (shipped 2026-05-27) adds multi-vault membership and admin-initiated password reset. No self-service signup, no invite links, no role granularity below admin/user yet. Those land later as people ask for them. The point is to get you hosting your handful of people without standing up infrastructure per person.

1. Stand up your hub

Your hub is the door everyone walks through. It runs as a single container, supervises vault and scribe as child processes, and issues OAuth tokens for clients. Pick the deploy that fits:

The wizard at /admin/setup walks you through naming your vault, picking a scribe provider, and exposing your hub. You become the first admin during the wizard — the username and password you pick there are yours.

Verify before inviting anyone: load your hub URL, sign in, and navigate to /admin/vaults, /admin/users, and /admin/permissions. If those load without 401 or 403, you're set up correctly.

2. Provision a vault per friend

Vaults are private per user. The hub mints per-vault scopes, and the OAuth issuer pins each user's tokens to their assigned vaults. There's no path for one user to read another's vault. Friends can have multiple vaults — one personal + one family-shared is a common shape — or just one. Either way, vaults are isolated from each other; only the admin (you) can read all of them.

Provision via /admin/vaultsAdd vault. Give it a name your friend will recognize when they sign in — their first name or initials work. maya, jp, dad. Lowercase, alphanumeric, dashes and underscores only.

The vault boots immediately. Check the vault list shows it as running before moving on.

3. Create an account for your friend

Go to /admin/usersCreate user. Three fields:

Submit. The user appears in the table with their assigned vaults shown and Password set: No — the bit that tells the hub to force-redirect them through change-password on first sign-in.

Securely hand off the default password. Signal, an in-person screen-share, a sealed envelope — not plain email, not a chat log that lives forever. The password is one-time use; the moment your friend signs in they'll be told to pick their own. But it still gates access to their vault until they do, so treat it like the first key to a house.

4. Send your friend the sign-in link

What they need from you:

A short message that works:

I set you up with a Parachute vault. Sign in at <hub-url>/login with username <u> and the password I sent separately. You'll be asked to change it on first sign-in. From there, click Open Notes.

When they sign in, they land at /account/change-password, pick a new password, and then are dropped at /account/ — their personal home page. It shows their assigned vault(s) as cards, each with its own Open Notes button, and a link to change their password later if they want.

5. Connecting a friend's AI client to their vault

Notes (the web app) connects with one click via the popover — nothing to configure. But a friend who wants to drive their vault from Claude Code, Claude.ai, or any MCP-aware client connects to a URL, the same as you would. Two facts to hand them:

The literal per-client commands — claude mcp add --transport http <name> <hub-url>/vault/<name>/mcp for Claude Code, the Settings → Connectors flow for Claude.ai, and the generic streamable-HTTP shape for everything else — live in Connecting MCP clients on the install page. Point your friend there; the only substitutions are your hub's URL and their vault name.

The in-product shortcut: in your admin SPA, open the Vaults list and hit the Connect toggle on the friend's vault row. That expands a Connect an MCP client card with the exact <hub-url>/vault/<name>/mcp endpoint and a copy-paste claude mcp add command already filled in for that vault — plus an optional mint-a-token path for headless clients. It's the same surface for every vault, any time; no need to retype the URL by hand.

Onboarding a team member — the short version

The sections above cover each step in depth. Once you've stood up your hub, this is the whole loop per person:

  1. Create their account. /admin/usersCreate user: username, a temporary password (you pick it), and the vault(s) to assign. (Provision a vault first if they don't have one yet.)
  2. Hand them three things, out-of-band. Your hub's <hub-url>/login, their username, and the temporary password. Use Signal, in-person, a sealed envelope — not plain email.
  3. They sign in and are force-prompted to set a new password. On first sign-in at /login, the hub redirects them through change-password before anything else; then drops them at /account/, their home page showing their vault(s).
  4. They can change it any time from /account/. If they forget it, you reset it from /admin/usersReset password (which also revokes their existing tokens).
  5. To connect their AI client to their vault, open the Vaults list and use the per-row Connect toggle → Connect an MCP client card, or send them step 5 above / Connecting MCP clients. Notes (the web app) needs none of this — it connects with one click.

What your friend can and can't do

Can:

Can't:

If a friend wants to build their own Surface

This is where multi-user gets interesting. A friend who codes can build their own UI — a custom Notes-like app, a journaling tool, a research workbench — that talks directly to their vault on your hub.

Hand them the Surface-build starter prompt. It walks an AI client through scaffolding a custom UI that wires into the vault's MCP via the standard OAuth flow. They'll need:

The OAuth flow is standard: their app registers as a client via dynamic client registration (DCR), redirects them to your hub for consent, gets a code, exchanges it for a vault-scoped token. You don't need to pre-register their client. External clients hit a consent screen on first authorize, where your friend approves — once they approve, future authorizes are seamless. If they have multiple assigned vaults, the consent screen shows a picker so they choose which vault to authorize for; the token is pinned to that single choice.

Tokens are pinned to the vault the friend picked. Their custom Surface can never talk to a vault outside their assigned list, even if they wire it wrong.

If something goes wrong

Friend forgot their password. Reset it from /admin/users: click Reset password on their row, pick a new temp password, hand it to them out-of-band. They'll be force-redirected through change-password on next sign-in, exactly like the original default-password flow. All their existing tokens are revoked automatically as part of the reset.

Friend's tokens leaked. Go to /admin/permissions for the per-vault grants view, or /admin/tokens for the per-token registry. Revoke individual tokens or every token for a user. Their OAuth clients will get 401 on next call and re-prompt for consent. The admin password reset above also revokes tokens as a side effect — useful if you want a clean slate.

Wrong vault assigned. Open /admin/users, click Edit Vaults on the friend's row, adjust the multi-select, save. Their notes in any removed vault stay put (vaults and assignments are independent), but they lose access via OAuth on the next token mint. Existing access tokens stay valid until they expire (~15 min); refresh tokens stop minting against the removed vault.

Removing a friend entirely. Delete the user via /admin/users. Their vaults are not deleted by that action — vaults and accounts are independent. If you want the vault gone too, delete it via /admin/vaults after.

What multi-user is not (yet)

Honest about the current limits:

The design document for the full plan is at /design/2026-05-20-multi-user-phase-1/ — including what Phase 2 and 3 add. If any of the Phase 1 limits block your use case, open an issue at the hub tracker and we'll prioritize.