Settings
Open with ⌘, (or the gear in the toolbar). Settings are stored in local SQLite; secrets go to the macOS Keychain (see Security). If the Keychain refuses a write, the value is kept in the database instead of being lost, and saving reports which secret that happened to.
License
Shows trial/licensed status and lets you activate a code. See Licensing.
AI Agent
| Setting | Notes |
|---|---|
| Provider | OpenAI or Anthropic |
| API token | Stored in the Keychain, never in the database |
| Model | Suggestions per provider (e.g. GPT‑5.1, Claude Sonnet 5); free text — any model id your key supports |
| Ask before the AI writes files | On by default — pauses with a preview before each file write |
Switching provider auto-selects that provider's newest suggested model.
Citation probe
Asks ChatGPT, Claude and Perplexity the question a page is meant to answer and records whether they cite it — see Features.
| Setting | Notes |
|---|---|
| OpenAI / Anthropic / Perplexity API key | One per engine, stored in the Keychain. An empty OpenAI or Anthropic key falls back to the AI Agent key when that provider is selected there, so a key is never pasted twice. Only engines with a key are offered. |
| Model (per engine) | Defaults: gpt-5.5, claude-opus-5, sonar — the current flagships with web search. Any model id your key supports. |
| Perplexity endpoint | Defaults to https://api.perplexity.ai/chat/completions. Perplexity has moved its API surface more than once; change it here if their documentation names a new chat-completions URL. |
Each probe sends the question (and, through the engine's own web search, nothing else) to the providers you enabled, and costs a few cents per engine on your account.
Performance (Core Web Vitals)
| Setting | Notes |
|---|---|
| Measure performance | Adds the Performance category on single-page analysis |
| PageSpeed API key | Optional; raises Google's rate limits |
| Strategy | Mobile or Desktop |
Google Search Console
Real impressions, clicks, CTR and average position from Google — as measured facts alongside Sjá's own analysis.
Search Console has no API-key path: every call needs a user-consented OAuth
token, and its scope (webmasters.readonly) is one Google classifies as
sensitive. Rather than shipping an OAuth client of ours (which would put a
non-confidential secret in the binary and require Google's app verification),
you connect your own client:
- In Google Cloud Console, create an OAuth client of type Desktop app.
- Enable the Google Search Console API for that project.
- Paste the client id and client secret into Settings.
- Hit Connect Google — your browser opens Google's consent screen, and the
app catches the redirect on a temporary
127.0.0.1port (PKCE, S256).
Because the Cloud project is yours, the "unverified app" screen is expected and harmless; approve it for your own account.
| Setting | Notes |
|---|---|
| OAuth client id | From your Google Cloud project; stored in the database |
| OAuth client secret | Stored in the Keychain, never in the database |
| Connect a separate Google account per project | Off: one account for the whole app. On: each project signs in to its own account |
| Connect / Disconnect | Connect stores a refresh token in the Keychain; Disconnect deletes it |
| Show properties | Lists the properties the account can read, flagging the one that covers the current project |
One account, or one per project?
Leave the toggle off if every property you work on sits under a single Google account — one sign-in then covers all projects, and each project is matched to a property by URL coverage.
Turn it on for agency setups where each client has their own Google account. The OAuth client stays shared (one Cloud project can serve any number of accounts); only the sign-in differs, and every project keeps its own refresh token. Connect and Disconnect then act on the selected project, so pick the project first.
Switching the toggle deletes nothing: a token stored under the other mode stays in the Keychain and comes back when you switch back. Use Disconnect to remove one for good.
Domain properties (sc-domain:) cover every subdomain; URL-prefix properties
only cover URLs under their prefix. Properties where you are an unverified
user return no data and are marked as such.
Analysis defaults
| Setting | Notes |
|---|---|
| Default language | Sent as Accept-Language; As served (the default) negotiates nothing |
| Default market | Optional country variant, e.g. Portuguese + Brazil → pt-BR |
| Default recipe | The objective/recipe selected on launch |
| Request timeout | Seconds per HTTP request (3–120) |
Branding
Agency / company name — shown in the header of exported PDF reports.