Members
Add existing users or invite new users to a Team.
Use a different flow for an existing account and a new user.
Add an existing user
Use this path when the person already has an active Team OS account:
- Open Team > Teams > All Teams.
- Open the Team.
- Select Members.
- Search under Add an existing user.
- Choose Member or Admin.
- Select Add member.
The user keeps the same password. No invite link is created.
Invite a new user
Select the target Team, then open its main Members section.
- Enter the new user's email.
- Choose Member or Admin.
- Select Invite.
- Send the generated link through a private channel.
The link expires after 7 days and can be used once. The new user sets their name and password while accepting it. Create a new invite if the link expires or was already used.
Ownership is not an invite role. Add a Team Owner from the Team's Settings after the person has an active account.
Maintenance commands
Invite a new user:
npm run team:invite -- --team <TEAM_SLUG> --email <NEW_USER_EMAIL> --role member --by <AUTHORIZED_ACTOR_EMAIL>The command prints a one-time token. The default expiry is 7 days.
Accept the invite:
npm run team:join -- --team <TEAM_SLUG> --email <NEW_USER_EMAIL> --token <INVITE_TOKEN> --password "<NEW_ACCOUNT_PASSWORD>"List members:
npm run team:members -- --team <TEAM_SLUG>In maintenance commands, --by identifies the actor whose authority must be
checked and recorded in the audit trail. It is not a way for a hosted client to
choose its identity. The hosted server always uses the authenticated session.
Expected member states:
| Status | Meaning |
|---|---|
invited | Invite exists, but the user has not joined yet. |
active | User can sign in and use access allowed by their role and grants. |
suspended | User should not receive access. |
Company Owner, Company Admin, and direct Team roles stay separate. The Team member controls cannot remove or replace protected Company authority. Remove the Company grant or ownership authority first when that protection applies.
Next: Clients
