provision-userlisted
Install: claude install-skill vibhasjain/agent-keyboard
# provision-user
Give a new person access to Agent Keyboard: one command creates (or recovers)
their Supabase account, emails them a set-your-password link, and adds their
email to the server's allow-list so the auth gate accepts them.
```bash
node ~/.claude/skills/provision-user/invite.mjs someone@example.com [site-domain]
```
Pass the `site-domain` you're inviting them to (e.g. `agentkeyboard.com`) so the
email names it — if omitted, it uses the sole configured site, or a generic
phrase when several exist.
What it does:
1. Generates the auth link via Supabase admin `generate_link` (no Supabase email
sent), then delivers a **branded, site-named email from your own domain via
Resend** — the dark/amber template in `server/email-templates/`. If the
account already exists it sends a recovery link instead (same landing).
Without `RESEND_API_KEY` it falls back to Supabase's built-in mailer
(generic template).
2. The link redirects to the invited site, where the bar detects the token and
lets them set a password in place (no dependency on a `/welcome` page being
allow-listed). The standalone `/welcome` page remains as a fallback.
3. Appends the email to `/data/agent-keyboard/allowed-emails.json` — the auth
gate accepts emails from `ALLOWED_EMAIL` (env) plus this file.
Afterwards tell the owner: "<email> is invited — they'll get an email with a
link to set their password, then they can sign in from the bar on any of your
sites."
Requirements / failure