Collaborate

Start a collaboration

rig share --enable — bind a rig, start the daemon, be ready to invite people.

You have a rig and you want to make it shared. Make sure [sync] is enabled, then go live with one command.

1. Make sure sync is enabled

New rigs already have this — rig init writes it by default:

[sync]
enabled  = true
relay    = "https://tap-relay.fly.dev"
provider = "tap"

Optional name = "your-binding-name". Defaults to [rig].name. If the rig was created with --no-sync (or enabled = false), rig share --enable flips it back on.

2. Install the daemon

npm install -g @rigxyz/tapd

You only do this once per machine. tapd shouldn't be invoked directly — the rig share / rig status / rig resume verbs shell out to it.

3. Sign in to Rig Hub

rig login

Opens a browser, signs you in via Clerk, and writes a session token to ~/.config/rig/config.json. The relay uses this to identify you as the binding's owner. One-time per machine; same login covers publishing and sync.

4. Go live

rig share --enable

This binds the rig and starts syncing in one step. If you want to bind and invite someone immediately, skip straight to rig share <email> — it auto-enables first.

What this does:

  1. Reads your hub session from rig's config, passes it through to tapd as RIG_HUB_TOKEN.
  2. tapd POSTs to the relay; the relay verifies your session, creates the binding, records you as the owner in binding_members, and returns a per-device capability token.
  3. tapd writes .rig/tap-binding.local.json with that capability token. Mode 0600. Never commit.
  4. Spawns tapd as a detached process (pidfile .rig/tap/daemon.pid, logs .rig/tap/daemon.log) that watches your workspace and pushes changes to the relay.

The binding state lives in .rig/tap-binding.local.json. Currently you're the only one on the binding — nothing to sync with — until you invite someone.

5. Check status

rig status
✓ binding: your-binding-name (id: bnd_…)
✓ daemon:  running (pid 12345)
✓ sync:    idle, last update 2026-05-27T14:23:11Z
✓ scope:   2 collaborators (1 owner, 0 invited)

Exit code is non-zero if anything's red (conflicts, apply errors, daemon stopped). rig status --verbose adds members, invites, and mounts.

What's in .rig/tap-binding.local.json

Don't read it. Don't commit it. Don't share it.

It contains your device secret — a capability that lets your machine act as you on this binding. Anyone with it can edit any shared file. Default file mode is 0600. It's in the default rig excludes, so rig pack will never include it.

If your machine is lost or compromised, the binding owner can revoke you with rig unshare <email> — that cascades to every capability token you held on this binding. Then re-run rig share --enable (or re-join via a fresh invite) to get a new secret.

Next

See also