> Canonical HTML: [https://docs.schematic.rs/commands/account/](https://docs.schematic.rs/commands/account/)

# Account commands

Pup uses your Schematic account to link repositories, prepare commits, and start checks. Login is interactive and opens your browser.

## `pup login`

Authenticate Pup with Schematic:

**Usage**

```console
pup login
```

**Terminal**

```console
$ pup login
Opening your browser to log in to Schematic...
✓ Logged in · you@example.com · Your organization
```

Pup uses OAuth Authorization Code with PKCE. It starts a short-lived callback on your computer, opens the Schematic authorization page, and stores the resulting credential in your operating system’s credential store.

If Pup cannot open the browser, it prints the authorization URL. Open that URL on the same computer and finish login normally.

### Choose an organization

If your account belongs to more than one Schematic organization, `pup login` asks which organization Pup should use:

**Terminal**

```console
$ pup login
Opening your browser to log in to Schematic...

Choose an organization:
  1. Your organization
  2. Another organization

Organization [1]: 1
✓ Logged in · you@example.com · Your organization
```

The selection remains active until you log in again or log out. Running `pup login` while already authenticated refreshes the login and prints the active identity.

### Exit behavior

The command exits with status `0` after credentials have been stored. Closing the browser, rejecting authorization, or receiving an invalid callback produces a nonzero exit status and leaves existing credentials unchanged.

> **Automation:** `pup login` is intended for an interactive terminal. Noninteractive service credentials are not part of the initial CLI surface.

## `pup logout`

Remove Pup’s locally stored Schematic credential:

**Usage**

```console
pup logout
```

**Terminal**

```console
$ pup logout
✓ Logged out · repository preparation paused
```

Logout pauses network work and removes the local credential. It does not delete linked associations, prepared source, temporary Pup commits, checks, Problems, or results. The next authenticated command asks you to run `pup login`, after which preparation resumes.

The command is safe to run when already logged out.
