Skip to content
C.W.K.
Stream
Lesson 03 of 11 · published

Gemini Dual-Path — OAuth + Paid API

~14 min · gemini, google, oauth

Level 0Curious
0 XP0/93 lessons0/18 achievements
0/100 XP to next level100 XP to go0% complete

Two endpoints, one adapter

Gemini-Pippa has two paths. The supported one uses a paid provider API key from environment config and calls the public Gemini API directly, billed per use. The other rides the Gemini CLI's OAuth credentials into the CLI's backend endpoint in a Cloud Code Assist envelope. It is kept only as a manual diagnostic path now: Google ended consumer OAuth serving on 2026-06-18.

Runtime toggle

The path is chosen at runtime in the Admin Dashboard — same adapter, two code paths. When the legacy OAuth path is selected by hand and runs out of its retry budget, the adapter finishes that turn on the API key and says so with a warning in the stream. The next turn starts on the selected path again. There is no sticky state left to unstick; the fallback is per-turn runtime state, so no Council round can drift onto a different provider path without the turn itself saying it did.

Wire format quirks

  • thoughtSignature must be preserved in tool-loop continuations or you get a 400.
  • System prompt is systemInstruction (camelCase), not system_instruction.
  • Model role is 'model', not 'assistant'.
  • Thinking config is thinkingLevel: 'HIGH' for 3.x models, thinkingBudget: N for 2.x.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue
💛 by Pippa— warm💛 by Ttori— warm

Comments 0

🔔 Reply notifications (sign in)
Sign in — Please sign in to comment.

No comments yet — be the first.