An open API service indexing awesome lists of open source software.

https://github.com/mxnix/kick

KiCk — локальный OpenAI-совместимый прокси для Gemini CLI в нативном Flutter-приложении
https://github.com/mxnix/kick

flutter gemini gemini-cli openai openai-compatible openai-compatible-proxy-server

Last synced: about 1 month ago
JSON representation

KiCk — локальный OpenAI-совместимый прокси для Gemini CLI в нативном Flutter-приложении

Awesome Lists containing this project

README

          

KiCk logo

KiCk


A native local OpenAI-compatible proxy for Gemini CLI and Kiro.


Connect your accounts, start a local /v1 endpoint, and use Gemini CLI or Kiro from tools that already speak the OpenAI API.



Latest release


CI status


Downloads


Built with Flutter


License


Download |
Quickstart |
Screenshots |
Privacy |
Contributing |
Russian README

---

## Screenshots


KiCk home screen with proxy address, API key, active accounts, and start button
KiCk accounts screen with account search, counters, provider badge, and account actions
KiCk settings screen with appearance, network, retries, access, model, and Google Search sections
KiCk logs screen with search, export actions, severity filters, and empty log state

## What KiCk Does

KiCk runs a local OpenAI-compatible server on your device and forwards requests to Gemini CLI through connected Google accounts, or to Kiro through a signed-in Kiro account. It is built for people who want a native app around local AI proxying: account management, keys, logs, retries, model routing, and one-button startup.

| Area | What you get |
| --- | --- |
| Local API | OpenAI-compatible `http://127.0.0.1:3000/v1` endpoint |
| Providers | Gemini CLI via Google sign-in, Kiro via GitHub or Google sign-in |
| Platforms | Windows, Linux, and Android |
| Accounts | Multiple accounts with priority ordering and availability handling |
| Privacy | Tokens, settings, keys, and logs stay on your device |

## Quickstart

1. Download the latest build from [Releases](https://github.com/mxnix/kick/releases/latest), or install from a Linux repository below.
2. Open **Accounts** and connect a Gemini CLI or Kiro account.
3. For Gemini CLI, enter your `Google Cloud` project ID. For Kiro, sign in through GitHub or Google in the browser.
4. Return to **Home**, start the proxy, and copy the local endpoint plus API key.
5. Use them in Gemini CLI, SillyTavern, another OpenAI-compatible client, or your own app.

The default endpoint is `http://127.0.0.1:3000/v1`. You can change the host, port, LAN access, and API key behavior in settings.

## Features

- Local OpenAI-compatible proxy with `/v1/chat/completions` and `/v1/responses`, including SSE streaming via `"stream": true`.
- Account pool for Gemini CLI and Kiro with priorities, retries, cooldowns, and model filters.
- Native account connection flows for Google sign-in and Kiro sign-in via GitHub or Google.
- Configurable address, port, LAN access, access key, retry policy, and custom model IDs.
- One-click profile push to a running SillyTavern instance.
- Searchable logs with export, raw request logging controls, and sensitive data masking.
- Android background mode, desktop tray support, and launch-at-startup options.
- English and Russian interface, documentation, and release metadata.

## Supported Routes

- `GET /health`
- `GET /v1/models`
- `POST /v1/chat/completions`
- `POST /v1/responses`

## Request Example

```bash
curl http://127.0.0.1:3000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "gemini-3.1-pro-preview",
"messages": [
{"role": "user", "content": "Write a short greeting"}
]
}'
```

If API key protection is disabled, remove the `Authorization` header.

## Install

| Platform | Options |
| --- | --- |
| Windows | Download the installer from [Releases](https://github.com/mxnix/kick/releases/latest). |
| Linux | Use AppImage, `.deb`, `.rpm`, `.pkg.tar.zst`, `.tar.gz`, APT/RPM/Pacman repositories, or [AUR](https://aur.archlinux.org/packages/kick-bin). |
| Android | Download the APK from [Releases](https://github.com/mxnix/kick/releases/latest) or [Obtainium](http://apps.obtainium.imranr.dev/redirect.html?r=obtainium://add/https://github.com/mxnix/kick). |

Linux repositories

Debian, Ubuntu, and Linux Mint:

```bash
curl -fsSL https://mxnix.github.io/kick/linux/kick.asc | sudo gpg --dearmor -o /usr/share/keyrings/kick.gpg
echo "deb [signed-by=/usr/share/keyrings/kick.gpg] https://mxnix.github.io/kick/linux/apt stable main" | sudo tee /etc/apt/sources.list.d/kick.list
sudo apt update
sudo apt install kick
```

Fedora/RHEL/openSUSE-style systems:

```bash
sudo rpm --import https://mxnix.github.io/kick/linux/kick.asc
sudo tee /etc/yum.repos.d/kick.repo >/dev/null <<'EOF'
[kick]
name=KiCk
baseurl=https://mxnix.github.io/kick/linux/rpm/x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=1
gpgkey=https://mxnix.github.io/kick/linux/kick.asc
EOF
sudo dnf install kick
```

Arch Linux-style systems:

```bash
curl -fsSL https://mxnix.github.io/kick/linux/kick.asc | sudo pacman-key --add -
sudo pacman-key --lsign-key "$(curl -fsSL https://mxnix.github.io/kick/linux/kick.asc | gpg --show-keys --with-colons | awk -F: '/^pub:/ { print $5; exit }')"
sudo tee -a /etc/pacman.conf >/dev/null <<'EOF'
[kick]
Server = https://mxnix.github.io/kick/linux/pacman/x86_64
SigLevel = DatabaseRequired PackageOptional
EOF
sudo pacman -Sy kick
```

Or install from the AUR:

```bash
yay -S kick-bin
```

```bash
paru -S kick-bin
```

On GNOME, tray support may require the AppIndicator extension.

## Privacy

- 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 values are masked when logs are saved or exported.
- Anonymous analytics is disabled by default.

Read the full [Privacy Policy](docs/PRIVACY.md).

## Troubleshooting

Common fixes

- Port 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: sign in to Kiro again.
- Google asks for verification: open the verification page and sign in with the same account.
- Wrong `Google Cloud` project ID or disabled access: verify the project and its settings.
- `429` errors: wait for the limit to reset or enable temporary account cooldown.

## Build From Source

Developer setup

1. Install Flutter and the required Android, Windows, or Linux tooling for your target platform.
2. Install dependencies and run tests:

```powershell
flutter pub get
flutter test
```

3. Run the app:

```powershell
flutter run -d windows
```

```bash
flutter run -d linux
```

```powershell
flutter run -d android
```

4. Build the Windows installer locally with Inno Setup 6:

```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\build-windows-installer.ps1
```

5. Build Linux packages locally with `nfpm` and `appimagetool`:

```bash
scripts/build-linux-packages.sh
```

Build and release details live in [CONTRIBUTING.md](docs/CONTRIBUTING.md). Localization notes live in [LOCALIZATION.md](docs/LOCALIZATION.md).