When things take effect
Q: I changed the configuration and ChatGPT.app does not care. Changes to providers, upstream models, mappings and window templates need you to quit and reopen ChatGPT.app — a running wrapper holds the snapshot it read at startup. Switching the default model applies immediately and needs no restart.
Q: I changed a window and the session still uses the old one. The context window is injected once, when a session is created. A live session’s override cannot be updated and is flagged “window pending”; fork it (“continue from chat” in ChatGPT.app), clone it, or restart the app.
Q: I asked for 1M and got 608K. Effective window = min(injected value, catalogue cap) × 95%, which is exactly what the form displays.
Q: The window slider will not go past 272K. The app model id matches no catalogue entry, so it falls back to the default. Add a window template named after that id prefix on the “Model mapping” page.
Providers and keys
Q: A card says “no key”. The keychain has no key for that provider (it may have been cleaned up). Edit the provider and enter it again; old values are never echoed back.
Q: Where do keys live, and are they uploaded anywhere?
They live in the system keychain (macOS Keychain / Windows Credential Manager) and in the
local relay process’s memory — never in a config file, never in logs. The relay listens on
127.0.0.1 only and substitutes the upstream key while forwarding, so nothing outside that
process ever sees it.
Q: One model never shows a “used by” value. It is in the catalogue (asset layer) only. Without a mapping it will not appear in ChatGPT.app — add one on the “Model mapping” page.
Q: What do “native” and “translated” mean?
Native means the upstream supports /v1/responses, so requests pass through with tool
definitions and system instructions intact. Translated means the upstream only offers
chat/completions and the local layer converts responses ⇄ chat (streaming and tool calls
included). On the translation path images and files are dropped, so reasoning models are
better served by native endpoints.
Q: How do I get back to official models temporarily?
Turn off the global switch in Settings and restart the app, or set the official-model policy
to passthrough and pick an official model in a new session (that session cannot switch back
to a third-party model afterwards).
Troubleshooting
Q: A session will not open and reports Model provider 'xxx' not found.
The provider stored with the session cannot be resolved from the current configuration. Adopt
it to keep using third-party models, or hand it over to open natively — see
Session management.
Q: Coskey does not seem to be active after restarting the app.
Check the Status page (or run coskey doctor). Usual causes: the login-level environment
variable was not injected, the wrapper is not installed, or the app was launched before the
wrapper was installed.
Q: How do I confirm the chain actually works?
The “relay” row on the Status page should be live while the app has a session open. For
detail, enable debug logging to see a summary of each rewrite and route (no keys involved).
Logs live in ~/.coskey/logs/, default to warn level and are redacted.
Q: Can I still open my old sessions after uninstalling Coskey?
Adopted sessions carry coskey as their provider, so removing Coskey outright leaves them
unopenable. Choose “restore the pre-adoption provider” during uninstall, or hand them over
first — see Disable and uninstall.
Q: Do multiple accounts or app instances interfere? The injection is a user-level environment variable, so every ChatGPT.app instance for the same user shares one Coskey configuration and the same keychain entries.