You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -16,8 +17,8 @@ This project is a swiss-army knife for anyone working with language models and a
16
17
-[Popular Scenarios](#popular-scenarios)
17
18
-[Errors and Troubleshooting](#errors-and-troubleshooting)
18
19
-[Support](#support)
20
+
-[License](#license)
19
21
-[Changelog](#changelog)
20
-
-[License](#license)
21
22
22
23
## Use Cases
23
24
@@ -39,7 +40,7 @@ This project is a swiss-army knife for anyone working with language models and a
39
40
- Multiple front-ends, many providers: exposes OpenAI, Anthropic, and Gemini APIs while routing to OpenAI, Anthropic, Gemini, OpenRouter, ZAI, Qwen, and more
40
41
- OpenAI compatibility: drop-in `/v1/chat/completions` for most clients and coding agents
41
42
- Streaming everywhere: consistent streaming and non‑streaming support across providers
42
-
- Gemini OAuth personal gateway: use Google’s free personal OAuth (CLI-style) through an OpenAI-compatible endpoint
43
+
- Gemini OAuth personal gateway: use Google's free personal OAuth (CLI-style) through an OpenAI-compatible endpoint
43
44
44
45
### Reliability
45
46
@@ -63,7 +64,7 @@ This project is a swiss-army knife for anyone working with language models and a
63
64
64
65
- Wire capture and audit: optional request/response capture file plus usage tracking
65
66
66
-
## Supported LLM APIs
67
+
## Supported APIs (Front-Ends) and Providers (Back-Ends)
67
68
68
69
These are ready out of the box. Front-ends are the client-facing APIs the proxy exposes; back-ends are the providers the proxy calls.
69
70
@@ -91,6 +92,55 @@ These are ready out of the box. Front-ends are the client-facing APIs the proxy
91
92
|`zai-coding-plan`| ZAI Coding Plan |`ZAI_API_KEY`| Works with any supported front-end and coding agent |
Choose the Gemini integration that fits your environment.
98
+
99
+
| Backend | Authentication | Cost | Best for |
100
+
| - | - | - | - |
101
+
|`gemini`| API key (`GEMINI_API_KEY`) | Metered (pay-per-use) | Production apps, high-volume usage |
102
+
|`gemini-cli-oauth-personal`| OAuth (no API key) | Free tier with limits | Local development, testing, personal use |
103
+
|`gemini-cli-cloud-project`| OAuth + `GOOGLE_CLOUD_PROJECT` (ADC/service account) | Billed to your GCP project | Enterprise, team workflows, central billing |
104
+
105
+
Notes
106
+
107
+
- Personal OAuth uses credentials from the local Google CLI/Code Assist-style flow and does not require a `GEMINI_API_KEY`.
108
+
- Cloud Project requires `GOOGLE_CLOUD_PROJECT` and Application Default Credentials (or a service account file).
109
+
110
+
Quick setup
111
+
112
+
For `gemini` (API key)
113
+
114
+
```bash
115
+
export GEMINI_API_KEY="AIza..."
116
+
python -m src.core.cli --default-backend gemini
117
+
```
118
+
119
+
For `gemini-cli-oauth-personal` (free personal OAuth)
120
+
121
+
```bash
122
+
# Install and authenticate with the Google Gemini CLI (one-time):
123
+
gemini auth
124
+
125
+
# Then start the proxy using the personal OAuth backend
-`--host 0.0.0.0` and `--port 8000` to change bind address
117
-
-`--config config/config.example.yaml` to load a saved config
118
-
119
-
### Configuration Format
120
-
- Configuration files are YAML-only. JSON configs are deprecated and not supported by the loader.
121
-
- Keep `pyproject.toml` for packaging/tooling, and JSON for wire-capture logs only.
122
-
- On startup, the server validates YAML files and refuses to start on syntax/schema errors.
167
+
-`--config config/config.example.yaml` to load a saved config
123
168
-`--capture-file wire.log` to record requests/replies (see Debugging)
124
169
-`--disable-auth` for local only (forces host=127.0.0.1)
125
170
@@ -168,66 +213,13 @@ Write outbound requests and inbound replies/streams to a rotating file for troub
168
213
- Content rewriting: REPLACE/PREPEND/APPEND rules on inbound/outbound content
169
214
- Context window enforcement: per-model token limits with friendly errors
170
215
171
-
## Gemini Backends Overview
172
-
173
-
Choose the Gemini integration that fits your environment.
174
-
175
-
| Backend | Authentication | Cost | Best for |
176
-
| - | - | - | - |
177
-
|`gemini`| API key (`GEMINI_API_KEY`) | Metered (pay-per-use) | Production apps, high-volume usage |
178
-
|`gemini-cli-oauth-personal`| OAuth (no API key) | Free tier with limits | Local development, testing, personal use |
179
-
|`gemini-cli-cloud-project`| OAuth + `GOOGLE_CLOUD_PROJECT` (ADC/service account) | Billed to your GCP project | Enterprise, team workflows, central billing |
180
-
181
-
Notes
182
-
183
-
- Personal OAuth uses credentials from the local Google CLI/Code Assist-style flow and does not require a `GEMINI_API_KEY`.
184
-
- Cloud Project requires `GOOGLE_CLOUD_PROJECT` and Application Default Credentials (or a service account file).
185
-
186
-
Quick setup
187
-
188
-
For `gemini` (API key)
189
-
190
-
```bash
191
-
export GEMINI_API_KEY="AIza..."
192
-
python -m src.core.cli --default-backend gemini
193
-
```
194
-
195
-
For `gemini-cli-oauth-personal` (free personal OAuth)
196
-
197
-
```bash
198
-
# Install and authenticate with the Google Gemini CLI (one-time):
199
-
gemini auth
200
-
201
-
# Then start the proxy using the personal OAuth backend
0 commit comments