What it deliberately does not do
Every product has limits; most sites make you discover them at runtime. These are ShareQuota’s, stated up front — each one with the reasoning behind it and the workaround where one exists.
A ChatGPT subscription login only works for Codex.
Why it is this way
The OAuth token that login produces is only accepted by the Codex Responses backend. It is not valid against api.openai.com, so it cannot serve chat-completions traffic.
What to do instead
Connect an OpenAI API key for everything that is not Codex. Both can be connected at once.
One streaming pair is unfinished.
Why it is this way
Streaming a Gemini subscription login through the Anthropic dialect needs a double translation of the stream that is not wired yet. The binary refuses it cleanly with a 501 rather than corrupting the stream.
What to do instead
Send that combination with streaming off, or connect Gemini with an API key instead of the login.
No spending limits, no rate limits, no response cache — today.
Why it is this way
The engines for all three exist in the source and sit under unit tests, but nothing in the request path calls them yet. An engine that is built but not connected is not a feature, and this site does not present it as one.
What to do instead
Watch the changelog. When they are wired, it will say so there first.
Credentials are stored unencrypted, in a local SQLite file.
Why it is this way
A deliberate threat-model decision, not an oversight. The data directory is created with 0700 permissions on your own disk, and an OS keychain would not move the boundary: anything running as your user can already read your home directory.
What to do instead
Treat the data directory like ~/.ssh, because it is the same class of thing.
It listens on all interfaces, not just localhost.
Why it is this way
Deliberate, so a trusted LAN can share one instance with the sq- key. The management API still refuses anything that does not originate from the machine itself.
What to do instead
Do not run it on an untrusted network without a firewall in front of the port.
The dashboard has no password by default.
Why it is this way
On a single-user machine a mandatory password is friction that protects nothing — the management API is already loopback-only.
What to do instead
Set INITIAL_PASSWORD before first start if the machine is shared.
It keeps no log of your requests or responses.
Why it is this way
Prompts and completions contain your code. By design they are never written to disk or stdout, which also means there is no request history to browse when something fails.
What to do instead
Debugging leans on the upstream error passed through verbatim, and on the dashboard’s Test button.
The ChatGPT login needs port 1455 free.
Why it is this way
The Codex client registration hard-codes its OAuth callback to that port. If something else holds it, the login fails with a clear error rather than a hang.
What to do instead
Free the port for the duration of the login; it is only used during the flow.
The database allows one writer at a time.
Why it is this way
SQLite is deliberately capped at a single connection, which trades a little concurrency for never seeing a "database is locked" error.
What to do instead
None needed — request traffic is not written to the database, so the cap is invisible in use.
If a limit on this page stops being true, the page is wrong and should be treated as a bug — exactly like a feature claim that overshoots.