# Settings and sign-in

> The Settings and Account tabs on code.extension.dev hold the model, the effort, the permissions, the agent or chat switch, the browser profile and your session.

Canonical: https://docs.extension.dev/code/settings
This page as Markdown: https://docs.extension.dev/code/settings.md
Section: Code
Siblings: [AI generation](https://docs.extension.dev/code.md) · [Terminal](https://docs.extension.dev/code/terminal.md) · [Chat mode](https://docs.extension.dev/code/chat-mode.md) · [Starters and templates](https://docs.extension.dev/code/starters.md) · [Live preview](https://docs.extension.dev/code/preview.md) · [Select to edit](https://docs.extension.dev/code/select-to-edit.md) · [The Code tab](https://docs.extension.dev/code/code-tab.md) · [Build console](https://docs.extension.dev/code/build-console.md) · [Checkpoints](https://docs.extension.dev/code/checkpoints.md) · [Drafts](https://docs.extension.dev/code/drafts.md) · [Firefox engine](https://docs.extension.dev/code/firefox-engine.md) · [Download and run locally](https://docs.extension.dev/code/download-and-run.md) · [Share links](https://docs.extension.dev/code/share.md) · [Publish and import](https://docs.extension.dev/code/publish.md) · [Generation allowance](https://docs.extension.dev/code/allowance.md)
Map of every page: https://docs.extension.dev/llms.txt · Whole corpus: https://docs.extension.dev/llms-full.txt

---

# Settings and sign-in

Settings is the tab that holds the model, the terminal controls, the agent or
chat switch and the browser profile. Account is the tab that holds your
session. Reach for them when the terminal should behave differently, or
when you need to sign out.

## Quick start

Open **Settings** in the header. Under **Model**, pick a model from
**Available models**, or type `/model` in the terminal. Under **Terminal
controls**, set **Fast mode**, **Effort** and **Permissions**. Under
**Runtime**, the **Assistant surface** card switches between the terminal
and chat mode.


## How it works

### Model

**Terminal model** shows the active model and lists **Available models**,
the same roster the terminal's `/models` command prints. Choose one here or
with `/model` in the terminal. The roster is set by the server, and a model
outside it is refused as `MODEL_NOT_AVAILABLE`.

### Terminal controls

| Control | Values | What it does |
| --- | --- | --- |
| Fast mode | On, Off | On sends `/fast`; Off sends `/model <model> normal` |
| Effort | normal, fast | Sends `/model <model> <effort>` |
| Permissions | ask, auto, yolo | Sets what the agent may run unprompted, the same as `/permissions <mode>` |

### Assistant surface

The terminal is the default. The **Assistant surface** card under
**Runtime** offers **Switch to chat mode** and, from chat, **Switch to
terminal mode**. Your choice is remembered in this browser. When the browser
has no WebAssembly JSPI the card says so and the switch is disabled, and
chat mode is on.

### Generation allowance

The **Generation allowance** row under **Runtime** reads the month and the
day, used and limit, and both UTC reset times. See
[Generation allowance](/code/allowance).

### Browser profile

The **Browser** section holds the profile each preview runs on. The default
discards the profile when the preview closes. **Keep this project's browser
profile** keeps storage between runs. See [Live preview](/code/preview).

### Account

The **Account** tab has one section, **Session**, which says who is signed
in. **Sign out** signs you out of Extension.dev. Signed out, it reads **Not
signed in** with a **Sign in** button.

### Sign-in

Every address on code.extension.dev needs a session. Signed out, the page is
a door titled **Sign in to Extension.dev** with one button, **Sign in with
GitHub**, and you come back to exactly the address you asked for. If the
session ends while a tab is open, a prompt reads **Your session expired**,
says the work in progress is saved on this device, and offers **Sign in and
continue**.

While the workbench is private, only logins on its allowlist get in. A
signed-out visitor sees **Not available**, and a signed-in login outside the
list sees **Private alpha**.

### Terminal commands the shim refuses

The terminal is a browser, so some of the agent's own commands do not apply
here. Typed, each answers with the reason:

| Command | Answer |
| --- | --- |
| `/login`, `/logout` | Accounts live in extension.dev; use the account panel |
| `/setup`, `/credits`, `/balance` | No key needed; billing lives in your plan |
| `/copy`, `/paste` | The clipboard is the browser's |
| `/mcp`, `/skills`, `/sandbox`, `/background` | Need a machine, not a browser tab |
| `/quit` | Reload the page to restart the terminal |

## Reference

| Setting | Where | Also in the terminal |
| --- | --- | --- |
| Model | Settings, Model | `/model`, `/models` |
| Fast mode | Settings, Terminal controls | `/fast` |
| Effort | Settings, Terminal controls | |
| Permissions | Settings, Terminal controls | `/permissions <ask\|auto\|yolo>` |
| Terminal or chat | Settings, Runtime, Assistant surface | |
| Generation allowance | Settings, Runtime | `usage` |
| Browser profile | Settings, Browser | |
| Session | Account, Session | |

## When it fails

- **The Assistant surface switch is disabled.** The browser has no
  WebAssembly JSPI. Chat mode is on. Use Chrome or Edge 137 or newer, or
  Firefox 153 or newer, for the terminal.
- **A link with `?terminal=1` still opens chat mode.** A choice saved in this
  browser wins over the link. Switch back under **Assistant surface**.
- **A model call is refused as `MODEL_NOT_AVAILABLE`.** The model is not on
  the server's roster. Pick one from **Available models**.
- **The page is a sign-in door.** Your session ended. Sign in with GitHub
  and you return to the same address. The draft in this browser is still
  there.
- **The page says Private alpha.** Your login is not on the allowlist yet.
  There is nothing to fix on your side.

## Next

- [Terminal](/code/terminal) for the slash commands the settings mirror
- [Generation allowance](/code/allowance) for the row under Runtime
- [Drafts](/code/drafts) for what a session keeps on your account
