{"id":47705414,"url":"https://github.com/mxnix/kick","last_synced_at":"2026-05-16T09:07:49.159Z","repository":{"id":344853734,"uuid":"1182413803","full_name":"mxnix/kick","owner":"mxnix","description":"KiCk — локальный OpenAI-совместимый прокси для Gemini CLI в нативном Flutter-приложении","archived":false,"fork":false,"pushed_at":"2026-03-23T09:05:54.000Z","size":7751,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-24T06:39:43.146Z","etag":null,"topics":["flutter","gemini","gemini-cli","openai","openai-compatible","openai-compatible-proxy-server"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mxnix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-15T13:45:38.000Z","updated_at":"2026-03-23T09:05:51.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mxnix/kick","commit_stats":null,"previous_names":["mxnix/kick"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/mxnix/kick","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxnix%2Fkick","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxnix%2Fkick/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxnix%2Fkick/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxnix%2Fkick/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mxnix","download_url":"https://codeload.github.com/mxnix/kick/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mxnix%2Fkick/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31312744,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flutter","gemini","gemini-cli","openai","openai-compatible","openai-compatible-proxy-server"],"created_at":"2026-04-02T17:54:58.740Z","updated_at":"2026-05-16T09:07:49.151Z","avatar_url":"https://github.com/mxnix.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"static/github/logo/logo.png\" alt=\"KiCk logo\" width=\"112\" height=\"112\"\u003e\n\n\u003ch1\u003eKiCk\u003c/h1\u003e\n\n\u003cp\u003e\n  \u003cstrong\u003eA native local OpenAI-compatible proxy for Gemini CLI and Kiro.\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp\u003e\n  Connect your accounts, start a local \u003ccode\u003e/v1\u003c/code\u003e endpoint, and use Gemini CLI or Kiro from tools that already speak the OpenAI API.\n\u003c/p\u003e\n\n\u003cp\u003e\n  \u003ca href=\"https://github.com/mxnix/kick/releases/latest\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/v/release/mxnix/kick?style=flat-square\u0026color=2b90d9\" alt=\"Latest release\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/mxnix/kick/actions/workflows/ci.yml\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/mxnix/kick/ci.yml?style=flat-square\u0026label=ci\" alt=\"CI status\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/mxnix/kick/releases\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/downloads/mxnix/kick/total?style=flat-square\" alt=\"Downloads\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://flutter.dev/\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Flutter-02569B?style=flat-square\u0026logo=flutter\u0026logoColor=white\" alt=\"Built with Flutter\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/mxnix/kick/blob/main/LICENSE.md\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/mxnix/kick?style=flat-square\" alt=\"License\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp\u003e\n  \u003ca href=\"https://github.com/mxnix/kick/releases/latest\"\u003e\u003cstrong\u003eDownload\u003c/strong\u003e\u003c/a\u003e |\n  \u003ca href=\"#quickstart\"\u003eQuickstart\u003c/a\u003e |\n  \u003ca href=\"#screenshots\"\u003eScreenshots\u003c/a\u003e |\n  \u003ca href=\"docs/PRIVACY.md\"\u003ePrivacy\u003c/a\u003e |\n  \u003ca href=\"docs/CONTRIBUTING.md\"\u003eContributing\u003c/a\u003e |\n  \u003ca href=\"README_RU.md\"\u003eRussian README\u003c/a\u003e\n\u003c/p\u003e\n\n\u003c/div\u003e\n\n---\n\n## Screenshots\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"static/github/screenshots/en_home.png\" alt=\"KiCk home screen with proxy address, API key, active accounts, and start button\" width=\"180\"\u003e\n  \u003cimg src=\"static/github/screenshots/en_accounts.png\" alt=\"KiCk accounts screen with account search, counters, provider badge, and account actions\" width=\"180\"\u003e\n  \u003cimg src=\"static/github/screenshots/en_settings.png\" alt=\"KiCk settings screen with appearance, network, retries, access, model, and Google Search sections\" width=\"180\"\u003e\n  \u003cimg src=\"static/github/screenshots/en_logs.png\" alt=\"KiCk logs screen with search, export actions, severity filters, and empty log state\" width=\"180\"\u003e\n\u003c/p\u003e\n\n## What KiCk Does\n\nKiCk 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.\n\n| Area | What you get |\n| --- | --- |\n| Local API | OpenAI-compatible `http://127.0.0.1:3000/v1` endpoint |\n| Providers | Gemini CLI via Google sign-in, Kiro via GitHub or Google sign-in |\n| Platforms | Windows, Linux, and Android |\n| Accounts | Multiple accounts with priority ordering and availability handling |\n| Privacy | Tokens, settings, keys, and logs stay on your device |\n\n## Quickstart\n\n1. Download the latest build from [Releases](https://github.com/mxnix/kick/releases/latest), or install from a Linux repository below.\n2. Open **Accounts** and connect a Gemini CLI or Kiro account.\n3. For Gemini CLI, enter your `Google Cloud` project ID. For Kiro, sign in through GitHub or Google in the browser.\n4. Return to **Home**, start the proxy, and copy the local endpoint plus API key.\n5. Use them in Gemini CLI, SillyTavern, another OpenAI-compatible client, or your own app.\n\nThe default endpoint is `http://127.0.0.1:3000/v1`. You can change the host, port, LAN access, and API key behavior in settings.\n\n## Features\n\n- Local OpenAI-compatible proxy with `/v1/chat/completions` and `/v1/responses`, including SSE streaming via `\"stream\": true`.\n- Account pool for Gemini CLI and Kiro with priorities, retries, cooldowns, and model filters.\n- Native account connection flows for Google sign-in and Kiro sign-in via GitHub or Google.\n- Configurable address, port, LAN access, access key, retry policy, and custom model IDs.\n- One-click profile push to a running SillyTavern instance.\n- Searchable logs with export, raw request logging controls, and sensitive data masking.\n- Android background mode, desktop tray support, and launch-at-startup options.\n- English and Russian interface, documentation, and release metadata.\n\n## Supported Routes\n\n- `GET /health`\n- `GET /v1/models`\n- `POST /v1/chat/completions`\n- `POST /v1/responses`\n\n## Request Example\n\n```bash\ncurl http://127.0.0.1:3000/v1/chat/completions \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_API_KEY\" \\\n  -d '{\n    \"model\": \"gemini-3.1-pro-preview\",\n    \"messages\": [\n      {\"role\": \"user\", \"content\": \"Write a short greeting\"}\n    ]\n  }'\n```\n\nIf API key protection is disabled, remove the `Authorization` header.\n\n## Install\n\n| Platform | Options |\n| --- | --- |\n| Windows | Download the installer from [Releases](https://github.com/mxnix/kick/releases/latest). |\n| Linux | Use AppImage, `.deb`, `.rpm`, `.pkg.tar.zst`, `.tar.gz`, APT/RPM/Pacman repositories, or [AUR](https://aur.archlinux.org/packages/kick-bin). |\n| 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). |\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eLinux repositories\u003c/strong\u003e\u003c/summary\u003e\n\nDebian, Ubuntu, and Linux Mint:\n\n```bash\ncurl -fsSL https://mxnix.github.io/kick/linux/kick.asc | sudo gpg --dearmor -o /usr/share/keyrings/kick.gpg\necho \"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\nsudo apt update\nsudo apt install kick\n```\n\nFedora/RHEL/openSUSE-style systems:\n\n```bash\nsudo rpm --import https://mxnix.github.io/kick/linux/kick.asc\nsudo tee /etc/yum.repos.d/kick.repo \u003e/dev/null \u003c\u003c'EOF'\n[kick]\nname=KiCk\nbaseurl=https://mxnix.github.io/kick/linux/rpm/x86_64\nenabled=1\ngpgcheck=0\nrepo_gpgcheck=1\ngpgkey=https://mxnix.github.io/kick/linux/kick.asc\nEOF\nsudo dnf install kick\n```\n\nArch Linux-style systems:\n\n```bash\ncurl -fsSL https://mxnix.github.io/kick/linux/kick.asc | sudo pacman-key --add -\nsudo 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 }')\"\nsudo tee -a /etc/pacman.conf \u003e/dev/null \u003c\u003c'EOF'\n[kick]\nServer = https://mxnix.github.io/kick/linux/pacman/x86_64\nSigLevel = DatabaseRequired PackageOptional\nEOF\nsudo pacman -Sy kick\n```\n\nOr install from the AUR:\n\n```bash\nyay -S kick-bin\n```\n\n```bash\nparu -S kick-bin\n```\n\nOn GNOME, tray support may require the AppIndicator extension.\n\n\u003c/details\u003e\n\n## Privacy\n\n- Sign-in tokens and the local access key are stored in the device's secure storage.\n- Settings, account lists, and logs are stored locally.\n- Full raw request logging is disabled by default.\n- Sensitive values are masked when logs are saved or exported.\n- Anonymous analytics is disabled by default.\n\nRead the full [Privacy Policy](docs/PRIVACY.md).\n\n## Troubleshooting\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eCommon fixes\u003c/strong\u003e\u003c/summary\u003e\n\n- Port already in use: choose a different port in settings.\n- No active accounts: connect a Gemini CLI or Kiro account, or re-enable an existing one.\n- Google sign-in expired: reconnect the Gemini CLI account.\n- Kiro session expired: sign in to Kiro again.\n- Google asks for verification: open the verification page and sign in with the same account.\n- Wrong `Google Cloud` project ID or disabled access: verify the project and its settings.\n- `429` errors: wait for the limit to reset or enable temporary account cooldown.\n\n\u003c/details\u003e\n\n## Build From Source\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eDeveloper setup\u003c/strong\u003e\u003c/summary\u003e\n\n1. Install Flutter and the required Android, Windows, or Linux tooling for your target platform.\n2. Install dependencies and run tests:\n\n```powershell\nflutter pub get\nflutter test\n```\n\n3. Run the app:\n\n```powershell\nflutter run -d windows\n```\n\n```bash\nflutter run -d linux\n```\n\n```powershell\nflutter run -d android\n```\n\n4. Build the Windows installer locally with Inno Setup 6:\n\n```powershell\npowershell -NoProfile -ExecutionPolicy Bypass -File .\\scripts\\build-windows-installer.ps1\n```\n\n5. Build Linux packages locally with `nfpm` and `appimagetool`:\n\n```bash\nscripts/build-linux-packages.sh\n```\n\nBuild and release details live in [CONTRIBUTING.md](docs/CONTRIBUTING.md). Localization notes live in [LOCALIZATION.md](docs/LOCALIZATION.md).\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmxnix%2Fkick","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmxnix%2Fkick","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmxnix%2Fkick/lists"}