docs: Added documentation on the new OpenAI OAuth support
+26
-2
@@ -128,10 +128,33 @@ coyote --authenticate
|
|||||||
Alternatively, you can use the REPL command `.authenticate`.
|
Alternatively, you can use the REPL command `.authenticate`.
|
||||||
|
|
||||||
This opens your browser for the OAuth authorization flow. Depending on the provider, Coyote will either start a
|
This opens your browser for the OAuth authorization flow. Depending on the provider, Coyote will either start a
|
||||||
temporary localhost server to capture the callback automatically (e.g. Gemini) or ask you to paste the authorization
|
temporary localhost server to capture the callback automatically (e.g. Gemini, OpenAI) or ask you to paste the authorization
|
||||||
code back into the terminal (e.g. Claude). Coyote stores the tokens in `~/.cache/coyote/oauth` and automatically refreshes
|
code back into the terminal (e.g. Claude). Coyote stores the tokens in `<coyote_cache_dir>/coyote/oauth` and automatically refreshes
|
||||||
them when they expire.
|
them when they expire.
|
||||||
|
|
||||||
|
### OpenAI OAuth Note
|
||||||
|
|
||||||
|
OpenAI OAuth requires a **ChatGPT Plus or Pro subscription**. It uses the shared Codex CLI OAuth app registered with
|
||||||
|
OpenAI, so no additional API credentials or app registration are needed.
|
||||||
|
|
||||||
|
When authenticating, Coyote starts a localhost server on port **1455** to capture the OAuth callback automatically. This port is
|
||||||
|
fixed by OpenAI's app registration and cannot be changed. Make sure port 1455 is available when you run
|
||||||
|
`--authenticate`/`.authenticate`.
|
||||||
|
|
||||||
|
When `auth: oauth` is set and no `api_base` is configured, Coyote automatically routes all requests through
|
||||||
|
`chatgpt.com/backend-api/codex/responses` (the OpenAI Responses API), which is what ChatGPT Plus/Pro subscribers have
|
||||||
|
access to. If you later add an `api_key` or a custom `api_base`, Coyote will use the standard `api.openai.com/v1`
|
||||||
|
endpoint instead.
|
||||||
|
|
||||||
|
Example configuration:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
clients:
|
||||||
|
- type: openai
|
||||||
|
name: openai-oauth
|
||||||
|
auth: oauth
|
||||||
|
```
|
||||||
|
|
||||||
### Gemini OAuth Note
|
### Gemini OAuth Note
|
||||||
Coyote uses the following scopes for OAuth with Gemini:
|
Coyote uses the following scopes for OAuth with Gemini:
|
||||||
* https://www.googleapis.com/auth/generative-language.peruserquota
|
* https://www.googleapis.com/auth/generative-language.peruserquota
|
||||||
@@ -165,6 +188,7 @@ coyote -m my-claude-oauth:claude-sonnet-4-20250514 "Hello!"
|
|||||||
## Providers That Support OAuth
|
## Providers That Support OAuth
|
||||||
* Claude
|
* Claude
|
||||||
* Gemini
|
* Gemini
|
||||||
|
* OpenAI (requires ChatGPT Plus or Pro subscription)
|
||||||
|
|
||||||
# Extra Settings
|
# Extra Settings
|
||||||
Coyote also lets you customize some extra settings for interacting with APIs:
|
Coyote also lets you customize some extra settings for interacting with APIs:
|
||||||
|
|||||||
Reference in New Issue
Block a user