Manage who works on your Team plan servers: invite developers, give them a role and an environment of their own.
Inviting people
Open Your team in the dashboard. Enter a developer's email address, pick a role and send the invitation. They receive an email with a link that is valid for 7 days; they accept it by signing in, or creating an account, with that same address.
Every member and every pending invitation takes a seat. When all seats are taken, add seats by changing your plan on the dashboard first. Revoking a pending invitation frees its seat at once.
Roles
| Role | Can |
|---|---|
| Owner | Everything: pays for the license and cannot be removed |
| Administrator | Invite, resend and revoke invitations, change roles, remove members |
| Member | Use the team's servers; can leave the team |
An environment for each member
Each member saves their SSH public key on the Your team page (the contents of ~/.ssh/id_ed25519.pub, for example). The page shows the name of their environment, such as rdev-alice; members without a key are marked.
On the team server, run this once as root, with a reusable auth key from your Tailscale account:
sudo rdev host member sync --tailscale-key tskey-auth-…
It creates an environment for every member who has saved a key, and from then on repeats itself every 15 minutes: new members get their environment, changed keys are updated and the environments of people who left the team are removed. Their data stays on the server; delete it with sudo rdev host member remove <name> --delete-data.
Each member gets a separate container with their own code, databases, services and shell; members do not see each other's work. It joins your tailnet as <server name>-<name>, and the member connects with ssh dev@<server name>-<name> or the rdev laptop app. The owner keeps using the server's main environment.
sudo rdev host statuslists the members and whether their environments are running.sudo rdev host updateupdates every environment on the server together.sudo rdev host member add <name> --ssh-key "…"adds an environment by hand, but the next sync removes it if that person is not in the team.
Each environment has its own sync and env settings. A member finds theirs on the Your team page under Your environments: file sync on or off, which projects reach their laptop, excludes, and their projects' env variables. Only the member changes their own environment; the owner and admins change the main one. The same applies in the rdev laptop app.
Shared databases
The owner's environment doubles as the team's shared database server. Every member environment reaches its databases and services (MySQL, MariaDB, PostgreSQL, MongoDB, Redis and the others) at the name rdev-team (for example DB_HOST=rdev-team and port 3306 in a Laravel .env), next to its own private services. Use it for data the whole team works on, such as a shared staging copy; keep personal experiments in your own environment's databases.
Team channel
Owners and administrators can add a Slack or Discord incoming webhook as the Team channel on the Your team page. At the next sync every environment on the team servers, the owner's included, also sends its agent notifications (finished, waiting for approval, error) there, next to the channels each member set up with rdev notify. Clear the field to stop.
Team rules for AI agents
Owners and administrators can write Team rules for AI agents on the Your team page, such as your coding conventions or which database new projects use. At the next sync every environment on the team servers adds them to its agent profile, so Claude Code and Codex follow them in every project. Members see the rules on the same page.
If the license stops
When the Team license is no longer active, no one new can join the team and every environment on the server becomes read-only for new projects, just like a single server.