A local OpenAI-compatible proxy for Gemini CLI and Kiro in a native Flutter app
README на русском: README_RU.md
Supported platforms
What It Is
KiCk starts a local OpenAI-compatible endpoint on your device and forwards requests to Gemini CLI through connected Google accounts, or to Kiro through an AWS Builder ID session. It is built for people who want to use Gemini CLI or Kiro without the terminal, manual sign-in setup, or a separate local server.
What It Does
- Runs a local endpoint at
http://127.0.0.1:3000/v1by default. - Accepts OpenAI-format requests.
- Works with multiple Gemini CLI and Kiro accounts, supports priority ordering, and can temporarily remove a problematic account from rotation.
- Connects Gemini CLI through Google sign-in in the browser and Kiro through AWS Builder ID.
- Lets you change the address, port, access key, retry count, and model list.
- Shows proxy status, account status, and logs.
- Can run in the background on Android.
- Can start together with Windows.
Get Started
- Download the latest version from the releases page.
- Open the accounts screen and connect a Gemini CLI or Kiro account.
- If you choose Gemini CLI, enter your
Google Cloudproject ID. For Kiro, just complete AWS Builder ID authorization. - Return to the main screen and start the proxy.
- Copy the local endpoint and access key, if required.
- Use them in your app, Gemini CLI, or any other OpenAI-compatible client.
The default endpoint is http://127.0.0.1:3000/v1. You can change it in settings.
Supported Endpoints
GET /healthGET /v1/modelsPOST /v1/chat/completionsPOST /v1/responses
Request Example
curl http://127.0.0.1:3000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "gemini-2.5-pro",
"messages": [
{"role": "user", "content": "Write a short greeting"}
]
}'If you disabled the access key requirement, you can remove the Authorization header.
What You Can Configure
- Network settings: address, port, and LAN access.
- Access control: API key requirement, viewing the current key, and rotating it.
- Reliability: retry count, delay after
429, and temporary account cooldowns. - Models: additional model list and blocked models for a specific account.
- Google: default web search and whether sources are shown in responses.
- App settings: theme, log verbosity, Android background mode, and Windows auto-start.
Where Data Is Stored
- Sign-in tokens and the local access key are stored in the device's secure storage.
- Settings, account lists, and logs are stored locally.
- Full raw request logging is disabled by default.
- Sensitive data is masked when logs are saved or exported.
- Anonymous analytics is disabled by default.
Details: Privacy Policy.
If Something Does Not Work
- The port is already in use: choose a different port in settings.
- No active accounts: connect a Gemini CLI or Kiro account, or re-enable an existing one.
- Google sign-in expired: reconnect the Gemini CLI account.
- Kiro session expired: reconnect the Kiro account.
- Google asks you to verify the account: open the verification page and sign in with the same account.
- The
Google Cloudproject ID is wrong or the required access is disabled: verify the project and its settings. 429error: wait for the limit to reset or enable temporary account cooldown.
Build From Source
- Install Flutter and the required Android tooling.
- Run:
flutter pub get
flutter test- To run during development, use:
flutter run -d windowsor
flutter run -d android- To build the Windows installer locally, install Inno Setup 6:
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\build-windows-installer.ps1Build and release details: CONTRIBUTING.md.

