flexkit members
Manages the people in a project: the same members and invitations as Members in the Dashboard (see members and permissions for what each role can do). Use it to onboard a team from a script, hand over ownership, or clean up invitations nobody accepted.
Synopsis
flexkit members <subcommand> [arguments] [options]Running flexkit members without a subcommand runs flexkit members ls. Wherever a command takes <member>, you can pass the member’s user id or their email address.
Project roles are owner, developer, contributor, editor and viewer.
members ls
List the members of the project with their roles, owners first. People who were invited but haven’t accepted yet are listed by members invitations. Alias: list.
flexkit members ls [--role <list>] [--json]Examples
# List members
flexkit members ls
# Only owners and developers
flexkit members ls --role owner,developer
# Every member's email
flexkit members ls --json | jq -r '.members[].email'members invite
Invite one or more people by email with a role (default viewer). Someone without a Flexkit account gets an invitation email; someone with an account is added right away. Inviting a person who is already a member with another role changes their role. Each new member takes a seat: when the plan’s member limit is reached, the remaining emails are reported as not invited. Alias: add.
flexkit members invite <email...> [--role <role>] [--json]Emails can be separate arguments or separated by commas. Up to 50 people per command.
Examples
# Invite a viewer
flexkit members invite ana@acme.com
# Invite two developers
flexkit members invite ana@acme.com ben@acme.com --role developer
# Invite everyone listed in a file, one email per line
flexkit members invite $(cat team.txt) --role editorIf some emails were added and others were not (already members, no seats left), the command prints the added members and a warning naming the others, and still exits with code 0. It exits with code 1 when nobody could be added.
members role
Change a member’s role.
flexkit members role <member> <role> [--json]Examples
# Make a member a developer
flexkit members role ana@acme.com developer
# Hand over ownership, then step down
flexkit members role ben@acme.com owner
flexkit members role me@acme.com developer
# By user id
flexkit members role 3f9c2a1e-8d4b-4c7a-9e2f-5b6a7c8d9e0f viewermembers rm
Remove a member from the project. The command asks for confirmation; pass --yes in scripts. Removing yourself leaves the project. Alias: remove.
flexkit members rm <member> [--yes] [--json]Examples
# Remove a member
flexkit members rm ana@acme.com
# Remove without a prompt
flexkit members rm 3f9c2a1e-8d4b-4c7a-9e2f-5b6a7c8d9e0f --yesmembers invitations
List pending invitations: people invited by email who haven’t accepted yet, with the role they will get and who invited them. Alias: invites.
flexkit members invitations [--json]
flexkit members invitations cancel <id|email> [--yes] [--json]invitations cancel withdraws an invitation by its id or the invited email, after a confirmation (skip it with --yes). The person will not join this project. Their pending account is deleted, unless they also belong to another project; then only the invitation to this project is withdrawn.
Examples
# List pending invitations
flexkit members invitations
# Cancel an invitation by email
flexkit members invitations cancel ana@acme.com
# Cancel every pending invitation, in a script
flexkit members invitations --json | jq -r '.invitations[].id' | xargs -n1 flexkit members invitations cancel --yesOptions
See also the global options.
Permissions
- Needs a signed-in user. Run
flexkit login; project API tokens (FLEXKIT_TOKEN,--token) can’t list or manage members, even with the Owner role. lsandinvitations(listing) work for every member.invite,roleandinvitations cancelneed the Owner or Developer role.rmworks for every member on themselves; removing someone else needs the Owner or Developer role.- You can’t give more than you have: only an Owner can invite owners, make someone an owner, or change or remove another owner.
- A project always keeps at least one owner: the last owner can’t be removed or given another role. Make someone else an owner first.