Contents

Invite a teammate

From your connected terminal, an organization admin invites a person with yoke invite PERSON. The server chooses the form from its sign-in method:

Server Person How they join
Self-host without company sign-in Display name Redeem a private invite code
Self-host with company sign-in Email address Sign in with that verified email
Yoke Cloud Email address Sign in with their Yoke account
Local No teammate invitation Set up a team server with yoke self-host init

These commands need no project or harness session. They act as the person attached to your connection. Creating your own API token does not create a teammate. See Machine authorization to connect another machine as yourself.

Create, send and redeem

On a server without company sign-in:

yoke invite Ana --role operator

The result shows Ana's name, the organization role, expiry and the code once. The default code-invite role is operator; self-host roles are admin, operator and viewer. The code expires after 24 hours and works once. Copy it now and send it only to Ana through a private channel. Ana runs:

yoke connect https://yoke.example

Then Ana chooses Enter invite code and pastes it. This connects Ana's first machine as Ana. A teammate invite code starts with yinv_; a short machine match code and a beta-access code serve different purposes and cannot be substituted. Do not send your own API token as a teammate invitation.

With company sign-in or a Yoke account:

yoke invite ana@example.com

The result confirms an email invitation and reveals no code. Tell Ana the server URL and the sign-in method. Hosted roles are admin or member. On self-host, omitting an email invite's role records no role grant; it does not silently grant operator. --role ROLE requests an explicit role.

List, revoke and reissue

yoke invites list
yoke invites list --include-used
yoke invites revoke code-12
yoke invites reissue code-12
yoke invites revoke email-7

Use the exact code-N or email-N reference from the list. Its Kind column distinguishes code and email invitations even when their numeric IDs match. The list shows pending, expired and revoked invitations; --include-used also shows joined invitations. It never reveals stored codes or hashes.

Revoke prevents an unused invitation from admitting a person. Reissue gives a new code for the same person and invalidates the old code; it also works for expired or revoked code invitations. Copy the new code immediately. Email invitations cannot be reissued: revoke their email-N reference and run yoke invite EMAIL again. Once a code was used, manage that person's machines instead of revoking their completed invitation.

Refusals and recovery

Reason Recovery
invite_name_required / invite_email_required Enter the form named by this server's sign-in method.
invite_local_universe Local runs only on this computer; use yoke self-host init for a team server.
oidc_misconfigured Ask the server operator to correct company sign-in settings. No invitation is created.
function_version_skew This server predates this command. Connect with an explicit token (yoke connect <server> --token-stdin), or ask the server operator to upgrade.
invite_reissue_email Revoke the email reference, then invite the email again.
result_unavailable The code cannot be shown again. List the reference and reissue it.
invite_code_invalid / invite_expired / invite_revoked Ask the inviter for a new code; never substitute another kind of code.
invite_consumed Manage the person's machines; this invitation was already used.
invite_actor_disabled / actor_disabled Ask an organization admin to review the person's access.
invite_machine_owned / machine_identity_required Follow the server's machine-identity recovery before reconnecting.
permission_denied / not_admin Ask an organization admin to invite the person.
invite_store_unavailable Retry when the server's invite store is available; ask its operator if it persists.

Hosted seat limits and duplicate invitations retain their existing refusals; see Hosted org administration.

Structured results

Every command accepts --json. The CLI reads teammate_invites.list for invite_form and sign_in_method, and uses identity.invite.* for the email form. A failed form read is returned directly with no follow-up write. Hosted email operations remain Platform-owned; code operations use the engine.

Self-host email list rows retain their original fields, including role_id, invited_by_actor_id and created_at, and add the catalog role and invited_by_name. A null role means no role grant. Code rows retain their reference, kind, actor, name, role, state, expiry and invited_by, and include their own stored created_at and invited_by_name. Names are the recorded inviter's trimmed display name, or null when unavailable. Hosted inviter names come from Platform users; their IDs are not engine actor IDs. Reissue retains the invited actor and returns the new row's creation time.

Invite a teammate ยท Yoke