FAQ

When changes take effect, keys, windows, and how to troubleshoot.

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.