# Accounts

The actions of the account group, with their input fields and their names on every transport.

10 actions: 9 on the command line, 8 as MCP tools, 9 as HTTP endpoints and 10 in the page.

## account.decks

**My presentations.** The caller’s deck index with the owner and the caller’s role per row: owned, shared with me, recent, trash, or all for an admin; on a checkout every deck as owned.

| Field  | Type                                                | Required | Description |
| ------ | --------------------------------------------------- | -------- | ----------- |
| `view` | "owned" \| "shared" \| "recent" \| "trash" \| "all" | yes      |             |

* Command line: `turboslide account decks --view <view>`
* MCP tool: `deck_list_my_decks`
* HTTP: `POST /api/actions/account.decks`
* Runs on: command line, MCP, HTTP, page.
* Changes the presentation: no.

## account.tokens.create

**Create API key.** Mints an API key owned by the caller with a name, scopes and an optional expiry, shown once; never over MCP, and refused on a checkout, which has no accounts.

| Field       | Type                                                                | Required | Description |
| ----------- | ------------------------------------------------------------------- | -------- | ----------- |
| `name`      | string                                                              | yes      |             |
| `scopes`    | "read" \| "comment" \| "write" \| "export" \| "share" \| "admin"\[] | yes      |             |
| `expiresAt` | string                                                              | no       |             |

* Command line: `turboslide account tokens create --to <to> --name <name> --scope <scopes> --expires <expiresAt>`
* MCP tool: No MCP tool.
* HTTP: `POST /api/actions/account.tokens.create`
* Runs on: command line, HTTP, page.
* Changes the presentation: yes.

## account.tokens.list

**API keys.** The caller’s API keys without their secrets.

It takes no input.

* Command line: `turboslide account tokens list --to <to>`
* MCP tool: `deck_list_tokens`
* HTTP: `POST /api/actions/account.tokens.list`
* Runs on: command line, MCP, HTTP, page.
* Changes the presentation: no.

## account.tokens.revoke

**Revoke API key.** Revokes one of the caller’s keys; its MCP sessions close.

| Field     | Type   | Required | Description |
| --------- | ------ | -------- | ----------- |
| `tokenId` | string | yes      |             |

* Command line: `turboslide account tokens revoke <tokenId> --to <to>`
* MCP tool: `deck_revoke_token`
* HTTP: `POST /api/actions/account.tokens.revoke`
* Runs on: command line, MCP, HTTP, page.
* Changes the presentation: yes.

## account.me

**Account.** The caller’s principal, trust state, label, mark, avatar choice and sessions; the CLI can write the mark as a PNG.

| Field       | Type   | Required | Description                               |
| ----------- | ------ | -------- | ----------------------------------------- |
| `avatarPng` | string | no       | CLI: write the mark as a PNG to this path |

* Command line: `turboslide account me --avatar-png <avatarPng>`
* MCP tool: `deck_get_me`
* HTTP: `POST /api/actions/account.me`
* Runs on: command line, MCP, HTTP, page.
* Changes the presentation: no.

## account.setName

**Change name.** Sets the display name under the rules of SPEC-3 0.19 (NFC, 1 to 40 code points with a letter or digit, no bidi controls, the reserved and confusable lists, unique per deck by skeleton); the refusal sentences are fixed.

| Field  | Type   | Required | Description |
| ------ | ------ | -------- | ----------- |
| `name` | string | yes      |             |

* Command line: `turboslide account name <name>`
* MCP tool: `deck_set_my_name`
* HTTP: `POST /api/actions/account.setName`
* Runs on: command line, MCP, HTTP, page.
* Changes the presentation: yes.

## account.setAvatar

**Change avatar.** Chooses the mark: initials, a glyph field, a dither plate, or a picture for signed in principals only.

| Field      | Type                                           | Required | Description                                                                                    |
| ---------- | ---------------------------------------------- | -------- | ---------------------------------------------------------------------------------------------- |
| `variant`  | "initials" \| "glyph" \| "dither" \| "picture" | yes      |                                                                                                |
| `initials` | string                                         | no       |                                                                                                |
| `salt`     | integer                                        | no       | Another glyph or plate                                                                         |
| `picture`  | string                                         | no       | A data URL of a JPEG, PNG, WebP or GIF under 512 KB; sharp re-encodes it and keeps no original |

* Command line: `turboslide account avatar --variant <variant> --initials <initials> --another --picture <file>`
* MCP tool: `deck_set_my_avatar`
* HTTP: `POST /api/actions/account.setAvatar`
* Runs on: command line, MCP, HTTP, page.
* Changes the presentation: yes.

## account.sessions

**Sessions.** The caller’s sign in sessions, the current one marked.

It takes no input.

* Command line: `turboslide account sessions --to <to>`
* MCP tool: `deck_list_sessions`
* HTTP: `POST /api/actions/account.sessions`
* Runs on: command line, MCP, HTTP, page.
* Changes the presentation: no.

## account.signOut

**Sign out.** Ends one sign in session, or every other one with all.

| Field       | Type   | Required | Description |
| ----------- | ------ | -------- | ----------- |
| `sessionId` | string | no       |             |
| `all`       | true   | no       |             |

* Command line: `turboslide account sign-out --all --to <to>`
* MCP tool: `deck_sign_out`
* HTTP: `POST /api/actions/account.signOut`
* Runs on: command line, MCP, HTTP, page.
* Changes the presentation: yes.

## account.forget

**Forget this browser.** Replaces the anonymous cookie with a fresh id and clears the browser’s mirrors; window only.

It takes no input.

* Command line: No CLI command.
* MCP tool: No MCP tool.
* HTTP: No HTTP endpoint.
* Runs on: page.
* Changes the presentation: yes.
