# Managing Members


## Creating a team

Create a team through billing checkout. If you're on a trial, visit
[exe.dev/subscribe](https://exe.dev/subscribe) and choose the Team plan
to create a team and subscribe automatically. You can also visit
[exe.dev/billing](https://exe.dev/billing) to enable a team and
subscribe; if you already have an individual subscription, it will be
cancelled.

From SSH, run `billing manage` to get a checkout link:

```
$ ssh user@exe.xyz
exe.dev ▶ billing manage
```

Whichever path you take, you become the team's billing owner, and your
existing VMs become part of the team's shared pool. The `team` command
(and its subcommands) becomes available once you're a team admin or
billing owner.

## Inviting members

Admins and billing owners can invite people:

```
team add alice@example.com
```

This sends an invite email. How the invite works depends on whether the person
already has an exe.dev account:

- **Existing user:** They'll see the invite on their `/user/teams` page and
  must explicitly accept it. When they join, their existing VMs become part of
  the team's shared pool and visible to team admins. If any of their VMs have
  IP shard collisions with existing team members, those shards get reassigned
  automatically.
- **New user:** The email contains a signup link. When they create their account
  through that link, they're automatically added to the team.

Invites expire after 24 hours.

## Listing members

View members and pending invites in the web roster at
[https://exe.dev/team/members](https://exe.dev/team/members).

```
team members
```

This shows all members and their roles. You can also use the alias `team ls`.
The `team members` command (like the rest of the `team` command) is
available to team admins and billing owners only.

## Removing members

```
team remove alice@example.com
```

A member who still owns VMs cannot be removed outright: the VMs would be
orphaned on a user who is no longer in the team. The command refuses and lists
the VMs.

To offboard someone who has left, transfer their VMs to another current member
in the same step:

```
team remove alice@example.com --transfer-vms-to bob@example.com
```

Every VM alice owns moves to bob, then alice is removed. No VM is ever deleted.
The target must be a current member of the same team, and cannot be alice
herself. The flag does not apply to a pending invite, which owns no VMs; remove
that with plain `team remove` to revoke it.

Transfers happen one VM at a time and each one commits on its own, so a failure
part-way through leaves the earlier VMs already transferred. The command then
keeps alice in the team and names the VM that failed. Re-run the same command
after fixing the cause; VMs that already moved are skipped.

## Transferring VMs

Admins can move a VM from one team member to another:

```
team transfer mybox alice@example.com
```

This changes ownership and clears all existing shares on the VM (both
individual and team shares). The new owner can re-share as needed.

## Viewing team info

Run `team` with no arguments to see a summary:

```
$ team
Team: Acme Corp
Your role: billing_owner
Members: 4
VMs: 12 / 100
```

## Disbanding a team

The billing owner can disband the team with `team disable`, but only after
all other members have been removed. This is also interactive — you'll be
asked to confirm.

Disabling a team:

- removes all team shares
- cancels pending invites
- removes team auth and SSO configuration
- deletes the team

Your VMs stay on your personal account. You'll need to resubscribe to an
individual plan yourself; exe.dev won't automatically reactivate your
previous individual subscription.
