> ## Documentation Index
> Fetch the complete documentation index at: https://docs.retasc.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Onboarding: joining a team

> Someone already invited you. Redeem the invite, connect your agent. Terminal and web.

For someone a teammate already invited. There's no org to create and no billing to
set up, just a link or a code to redeem.

<Note>
  **Setting up your own org instead?** Go to [Onboarding: starting
  fresh](/onboarding-owner). This page assumes you already have an invite.
</Note>

## Terminal track

Never opens a browser, except to approve sign-in. The link or code your teammate sent
you goes straight into the command:

```bash theme={"dark"}
npx @retasc/cli join <invite-code-or-link>
```

<Steps>
  <Step title="Sign in as yourself">
    ```
    How do you sign in to Retasc?
      1) GitHub
      2) Google
    Choose a number: 1

      Open: https://github.com/login/device
      Enter code: B7X4-QP2K

      Waiting for GitHub authorization…
    ```

    You authenticate as your own identity. There's no separate Retasc account and no
    email invite to accept.
  </Step>

  <Step title="Redeem the invite">
    Nothing else to type, the code was already in the command:

    ```
    ✓ Joined org "Acme".
    ```

    Codes are single-use and expire (7 days by default). If yours is stale, ask the
    owner to mint another.
  </Step>

  <Step title="Claim your imported identity">
    If a migration carried people across when the org was set up:

    ```
    When Acme migrated, some people were carried across.
    One of them may be you:
      1) Ben Alvarez          from Jira
      2) None of these are me
    Choose a number: 1
    ✓ Linked. Everything "Ben Alvarez" wrote is now yours.
    ```
  </Step>

  <Step title="Pick the project">
    Only asked if the org has more than one:

    ```
    Which project:
      1) Engineering (ENG)
      2) Design (DES)
    Choose a number: 1
    ```
  </Step>

  <Step title="Install retasc globally, or run it on demand">
    Same question as the other onboarding path:

    ```
    Install the retasc command on this machine?
      1) Yes, globally          A `retasc` command you can use anywhere.
      2) No, run it on demand   Nothing installed, fetched fresh each run.
    Choose a number [1]:
    ```
  </Step>

  <Step title="Connect the folder, and confirm">
    Nothing to type. It mints your key and wires the folder:

    ```
    ✓ Minted key for this workspace (rtsc_k_2mQ9fd…).

    ✓ This folder is bound to org "Acme" / project ENG.
      Agents launched here can only ever read or write ENG.

    Start your agent in this folder, or restart it if it's already open,
    and it'll pull from the queue.
    ```
  </Step>
</Steps>

<Warning>
  **Run `join` before `bind`.** If you don't belong to an org yet, `retasc bind`
  offers to *create* one, so binding first puts you in an org of your own instead of
  your team's, and your work lands somewhere nobody else can see. `retasc join   <code>` (or the combined command above) always runs the join first. If it already
  happened: run `retasc join <code>`, then `retasc bind --org-id <their-org-id>   --yes` to repoint the folder.
</Warning>

## Web track

Never opens a terminal, a raw command shown to you would be a bug.

<Steps>
  <Step title="Open the link">
    A real join page, not a sign-up for your own org.

    <div className="rt-mock">
      <div className="rt-mock-bar">
        <span className="rt-mock-dot" />

        <span className="rt-mock-dot" />

        <span className="rt-mock-dot" />

        <span className="rt-mock-url">retasc.com/j/8kd2m1</span>
      </div>

      <div className="rt-mock-body">
        <div className="rt-mock-card">
          <div className="rt-mock-eyebrow">You're invited</div>
          <h5>Join Acme on Retasc</h5>
          <p className="rt-mock-sub">Ana Petrescu invited you to Acme. Sign in to join, no org to create.</p>
          <div className="rt-mock-opt"><span className="rt-mock-mark">G</span><span className="rt-mock-t"><b>Continue with Google</b><span>For the many people who have no GitHub account</span></span><span className="rt-mock-arrow">→</span></div>
          <div className="rt-mock-opt"><span className="rt-mock-mark">GH</span><span className="rt-mock-t"><b>Continue with GitHub</b><span>OAuth, one identity</span></span><span className="rt-mock-arrow">→</span></div>
        </div>
      </div>
    </div>
  </Step>

  <Step title="Sign in">
    Choose GitHub or Google, whichever you have.
  </Step>

  <Step title="Join the org">
    One click. You never see a create-an-org screen.
  </Step>

  <Step title="Claim your imported identity">
    If a migration carried your work across, say which name is you.

    <div className="rt-mock">
      <div className="rt-mock-bar">
        <span className="rt-mock-dot" />

        <span className="rt-mock-dot" />

        <span className="rt-mock-dot" />

        <span className="rt-mock-url">dash.retasc.com</span>
      </div>

      <div className="rt-mock-body">
        <div className="rt-mock-card">
          <div className="rt-mock-eyebrow">Imported history</div>
          <h5>Is this you?</h5>
          <p className="rt-mock-sub">The import carried this human across. A name isn't proof, so only you can say.</p>
          <div className="rt-mock-opt"><span className="rt-mock-t"><b>Ben Alvarez</b><span>from Jira</span></span><span className="rt-mock-btn" style={{marginTop: 0, padding: "6px 12px", fontSize: "0.78em"}}>That's me</span></div>
        </div>
      </div>
    </div>
  </Step>

  <Step title="Connect your agent">
    The same handover an owner gets: copy a block, paste it to your agent, and it
    sets the folder up itself.

    <div className="rt-mock">
      <div className="rt-mock-bar">
        <span className="rt-mock-dot" />

        <span className="rt-mock-dot" />

        <span className="rt-mock-dot" />

        <span className="rt-mock-url">dash.retasc.com/onboarding</span>
      </div>

      <div className="rt-mock-body">
        <div className="rt-mock-card">
          <div className="rt-mock-eyebrow">Last step</div>
          <h5>Connect your agent</h5>
          <p className="rt-mock-sub">Same handover as an org owner gets: paste this to the agent running in your project folder.</p>
          <div className="rt-mock-code"><span>Set Retasc up in the folder you're…</span><span className="rt-mock-copy">Copy</span></div>
          <div className="rt-mock-wait"><span className="rt-mock-pulse" /> Waiting for your agent's first call…</div>
        </div>
      </div>
    </div>

    ```text theme={"dark"}
    Set Retasc up in the folder you're working in, so you can pull work from my queue.

    First tell me its full path, and wait for me to say go.

    Then run exactly this:
    npx @retasc/cli bind --setup rtscsetup_7ka92m

    If Node 18 or newer isn't installed, install it. Prefer a way that doesn't need
    admin rights. Only ask me if there's no other option.

    When it's done, restart yourself so the Retasc tools load, then check my queue
    and tell me what you find.
    ```
  </Step>
</Steps>

## What you can do

Every membership is **owner**, **admin**, or **member**. Invites always join as
`member`, an owner upgrades someone from there.

|                                                            | Owner | Admin | Member |
| ---------------------------------------------------------- | ----- | ----- | ------ |
| Read and write issues, claim work                          | ✓     | ✓     | ✓      |
| Mint, rotate, and revoke **their own** agent keys          | ✓     | ✓     | ✓      |
| Invite teammates, offboard ordinary members                | ✓     | ✓     | -      |
| Run billing, connectors, imports, projects, settings       | ✓     | ✓     | -      |
| Export org data                                            | ✓     | -     | -      |
| Change a member's role, delete the org, transfer ownership | ✓     | -     | -      |

<Note>
  **Admin runs the org day to day**, everything above except deleting the org,
  exporting its data, or acting on the owner or another admin. It's the role for
  someone who shouldn't wait on the owner for routine ops.
</Note>

<Note>
  **Upgrading to admin is Dash-only, and owner-only.** From the Dashboard's Team tab,
  the owner clicks **Make admin** next to a member's name (a confirm step, since it's
  a real permission grant), or **Make member** to reverse it, no confirm needed. There
  is no CLI command for this, and it isn't exposed over MCP either, on purpose: an
  admin who could grant admin would be self-propagating.
</Note>

<Note>
  Members are free and unlimited, Retasc meters actions, not seats, so adding people
  costs nothing. See [Pricing](/pricing).
</Note>

## Next steps

<CardGroup cols={2}>
  <Card title="Onboarding: starting fresh" icon="rocket" href="/onboarding-owner">
    How your org's owner set this up, and how to invite the next teammate.
  </Card>

  <Card title="Pricing & billing" icon="credit-card" href="/pricing">
    What's metered, the rate card, and how re-authorization works.
  </Card>
</CardGroup>
