{"id":39614729,"url":"https://github.com/simonschubert/kai","last_synced_at":"2026-05-24T13:01:28.507Z","repository":{"id":270241403,"uuid":"909717778","full_name":"SimonSchubert/Kai","owner":"SimonSchubert","description":"OpenClaw alternative in your pocket","archived":false,"fork":false,"pushed_at":"2026-05-22T22:58:39.000Z","size":2175151,"stargazers_count":832,"open_issues_count":57,"forks_count":110,"subscribers_count":13,"default_branch":"main","last_synced_at":"2026-05-23T00:27:42.194Z","etag":null,"topics":["ai","ai-assistant","android","chatbot","gemma4","ios","jetpack-compose","kotlin-multiplatform","litert","openai-compatible","openclaw"],"latest_commit_sha":null,"homepage":"https://kai9000.com/","language":"Kotlin","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/SimonSchubert.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","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},"funding":{"github":["SimonSchubert"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":null,"thanks_dev":null,"custom":null}},"created_at":"2024-12-29T15:21:32.000Z","updated_at":"2026-05-22T19:55:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"358ea54e-0671-4ea4-b8f3-b55048edd8e3","html_url":"https://github.com/SimonSchubert/Kai","commit_stats":null,"previous_names":["simonschubert/kai"],"tags_count":89,"template":false,"template_full_name":null,"purl":"pkg:github/SimonSchubert/Kai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimonSchubert%2FKai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimonSchubert%2FKai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimonSchubert%2FKai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimonSchubert%2FKai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SimonSchubert","download_url":"https://codeload.github.com/SimonSchubert/Kai/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimonSchubert%2FKai/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33434704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T22:14:44.296Z","status":"online","status_checked_at":"2026-05-24T02:00:06.296Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["ai","ai-assistant","android","chatbot","gemma4","ios","jetpack-compose","kotlin-multiplatform","litert","openai-compatible","openclaw"],"created_at":"2026-01-18T08:15:55.061Z","updated_at":"2026-05-24T13:01:28.062Z","avatar_url":"https://github.com/SimonSchubert.png","language":"Kotlin","funding_links":["https://github.com/sponsors/SimonSchubert"],"categories":[],"sub_categories":[],"readme":"# Kai\n\n\u003cimg src=\"https://img.shields.io/badge/Platform-Web-f7df1c?logo=javascript\" alt=\"Web\"\u003e \u003cimg src=\"https://img.shields.io/badge/Platform-Android-34a853.svg?logo=android\" alt=\"Android\" /\u003e \u003cimg src=\"https://img.shields.io/badge/Platform-iOS-lightgrey.svg?logo=apple\" alt=\"iOS\" /\u003e \u003cimg src=\"https://img.shields.io/badge/Platform-Windows/macOS/Linux-e10707.svg?logo=openjdk\" alt=\"Platform JVM\" /\u003e\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"kai-mascot.png\" height=\"80\"\u003e\n\nAn **open-source AI assistant with persistent memory** that runs on **Android, iOS, Windows, Mac, Linux, and Web**.\n\n**[Documentation](https://simonschubert.github.io/Kai/docs/)**\n\u003c/div\u003e\n\n## Installation\n\n[![App Store](https://raw.githubusercontent.com/SimonSchubert/Kai/main/screenshots/app_store_badge.png)](https://apps.apple.com/us/app/kai-ai/id6758148023)\n[![Play Store](https://raw.githubusercontent.com/SimonSchubert/Kai/main/screenshots/play_store_badge.png)](https://play.google.com/store/apps/details?id=com.inspiredandroid.kai)\n[![F-Droid](https://raw.githubusercontent.com/SimonSchubert/Kai/main/screenshots/fdroid_badge.png)](https://f-droid.org/en/packages/com.inspiredandroid.kai/)\n[![Web](https://raw.githubusercontent.com/SimonSchubert/Kai/main/screenshots/web_badge.png)](https://simonschubert.github.io/Kai)\n\nHomebrew (macOS):\n\n```\nbrew install --cask simonschubert/tap/kai\n```\n\nAUR (Arch Linux):\n\n```\nyay -S kai-bin\n```\n\nWinget (Windows):\n\n```\nwinget install SimonSchubert.Kai\n```\n\n### Direct Downloads\n\n| Platform | Format | Download |\n|----------|--------|----------|\n| Android | APK | [GitHub Releases](https://github.com/SimonSchubert/Kai/releases) |\n| macOS | DMG | [GitHub Releases](https://github.com/SimonSchubert/Kai/releases) |\n| Windows | MSI | [GitHub Releases](https://github.com/SimonSchubert/Kai/releases) |\n| Linux | DEB | [GitHub Releases](https://github.com/SimonSchubert/Kai/releases) |\n| Linux | RPM | [GitHub Releases](https://github.com/SimonSchubert/Kai/releases) |\n| Linux | AppImage | [GitHub Releases](https://github.com/SimonSchubert/Kai/releases) |\n\n## Features\n\n- **Persistent memory** — Kai remembers important details across conversations and uses them automatically\n- **Customizable soul** — Define the AI's personality and behavior with an editable system prompt\n- **Multi-service fallback** — 17 LLM providers with automatic failover\n- **Tool execution** — Web search, notifications, calendar events, shell commands, and more\n- **MCP server support** — Connect to remote tool servers via the Model Context Protocol\n- **Autonomous heartbeat** — Periodic self-checks that surface anything needing attention\n- **Settings export/import** — Backup and restore all settings as a JSON file\n- **Encrypted storage** — Conversations stored locally with encryption\n- **Text to speech** — Listen to AI responses\n- **Linux Sandbox** — On Android, the AI can run shell commands, scripts, and tools in a secure sandboxed Linux environment\n- **Image attachments** — Attach images to any conversation\n\n## Linux Sandbox (Android)\n\nOn Android, Kai includes a built-in Linux environment that the AI can use to execute shell commands, run scripts, and operate tools on your behalf. This turns Kai from a chat-only assistant into one that can take real action — installing packages, processing data, running Python scripts, and more.\n\n- **Powered by Alpine Linux** — A lightweight ~3 MB download sets up a full Linux userland via [proot](https://proot-me.github.io/), no root required\n- **Optional packages** — One tap installs bash, curl, wget, git, jq, python3, pip, and Node.js\n- **Interactive terminal** — A built-in terminal lets you run commands manually alongside the AI\n- **Secure** — Everything runs sandboxed inside the app with no access to the host system\n\nEnable it in **Settings \u003e Linux Sandbox**.\n\n\u003cimg src=\"screenshots/mobile-7.png\" alt=\"Linux Sandbox\" height=\"300\"\u003e\n\n## Screenshots\n\n### Desktop\n\n\u003cimg src=\"screenshots/desktop-1.png\" alt=\"Desktop App\" height=\"300\"\u003e\n\n### Web\n\n\u003cimg src=\"screenshots/web-1.png\" alt=\"Web App\" height=\"300\"\u003e\n\n### Mobile\n\n\u003cimg src=\"screenshots/mobile-1.png\" alt=\"Mobile Screenshot 1\" height=\"300\"\u003e \u003cimg src=\"screenshots/mobile-2.png\" alt=\"Mobile Screenshot 2\" height=\"300\"\u003e \u003cimg src=\"screenshots/mobile-3.png\" alt=\"Mobile Screenshot 3\" height=\"300\"\u003e \u003cimg src=\"screenshots/mobile-4.png\" alt=\"Mobile Screenshot 4\" height=\"300\"\u003e \u003cimg src=\"screenshots/mobile-5.png\" alt=\"Mobile Screenshot 5\" height=\"300\"\u003e \u003cimg src=\"screenshots/mobile-6.png\" alt=\"Mobile Screenshot 6\" height=\"300\"\u003e\n\n## How It Works\n\n```\n                        ┌────────┐\n                        │  User  │\n                        └───┬────┘\n                            │ message\n                            ▼\n               ┌─────────────────────────┐\n               │          Chat           │\n               │                         │\n               │  prompt + memories      │\n               │        │                │\n               │        ▼                │\n               │    ┌────────┐           │\n               │    │   AI   │◀─┐        │\n               │    └───┬────┘  │        │\n               │        │   tool calls   │\n               │        │   \u0026 results    │\n               │        ▼      │        │\n               │    ┌────────┐ │        │\n               │    │ Tools  │─┘        │\n               │    └───┬────┘          │\n               │        │               │\n               └────────┼───────────────┘\n                        │ store / recall\n                        ▼\n               ┌─────────────────┐    hitCount \u003e= 5\n               │     Memory      │───────────────────┐\n               │                 │                   │\n               │  facts, prefs,  │                   ▼\n               │  learnings      │          ┌────────────────┐\n               │                 │◀─delete──│ Promote into   │\n               └─────────────────┘          │ System Prompt  │\n                        ▲                   └────────────────┘\n                        │ reviews\n                        │\n               ┌─────────────────┐\n               │    Heartbeat    │\n               │                 │\n               │  autonomous     │\n               │  self-check     │\n               │  every 30 min   │\n               │  (8am–10pm)     │\n               │                 │\n               │  all good?      │\n               │  → stays silent │\n               │  needs action?  │\n               │  → notifies user│\n               └─────────────────┘\n```\n\n- **Chat** — User sends a message. The AI responds, calling tools (memory, web search, shell, etc.) in a loop until it has a final answer.\n- **Memory** — The AI stores and recalls facts, preferences, and learnings. Memories that prove useful (5+ hits) can be promoted into the system prompt permanently.\n- **Heartbeat** — A background self-check runs every 30 minutes. It reviews memories, pending tasks, and emails. If something needs attention, it notifies the user. Otherwise, it stays silent.\n\n## Supported Services\n\n| Service | Website |\n|---|---|\n| Anthropic | https://console.anthropic.com |\n| Cerebras | https://cerebras.ai |\n| DeepSeek | https://www.deepseek.com |\n| Gemini | https://aistudio.google.com |\n| Groq | https://groq.com |\n| Hugging Face | https://huggingface.co |\n| LongCat | https://longcat.chat |\n| Mistral | https://mistral.ai |\n| Moonshot AI | https://moonshot.cn |\n| NVIDIA | https://developer.nvidia.com |\n| Ollama Cloud | https://ollama.com |\n| OpenAI | https://openai.com |\n| OpenRouter | https://openrouter.ai |\n| Together AI | https://together.ai |\n| Venice AI | https://venice.ai |\n| xAI | https://x.ai |\n| OpenAI-Compatible API | Ollama, LM Studio, etc. |\n\nPlus a built-in **Free** tier that requires no API key.\n\n## MCP Servers\n\nKai supports the [Model Context Protocol](https://modelcontextprotocol.io/) for connecting to external tool servers. Go to **Settings \u003e Tools \u003e Add MCP Server** to connect to any Streamable HTTP MCP endpoint, or pick from a curated list of popular free servers:\n\n| Server | Description |\n|--------|-------------|\n| Fetch | Fetch web content and convert HTML to markdown |\n| DeepWiki | AI-powered docs for any GitHub repo |\n| Sequential Thinking | Structured step-by-step problem-solving |\n| Context7 | Up-to-date library and framework docs |\n| Globalping | Ping, traceroute, DNS from global probes |\n| CoinGecko | Real-time crypto prices and market data |\n| Manifold Markets | Prediction market data and odds |\n| Find-A-Domain | Domain availability across 1,444+ TLDs |\n\nAll popular servers are free and require no API key. MCP servers auto-reconnect on app startup.\n\n## Integrations\n\n### Splinterlands Auto-Battle (Android \u0026 Desktop)\n\nKai can automatically play [Splinterlands](https://splinterlands.com) Wild Ranked battles. Configure one or more LLM services in priority order, add your Hive account, and hit Start -- Kai will continuously find matches, pick teams using LLM-powered strategy, and submit them on-chain. Falls back to a simple greedy picker if all LLM services fail. Available in **Settings \u003e Integrations**.\n\n## Supported Languages\n\nAfrikaans, Albanian, Amharic, Arabic, Belarusian, Bengali, Bulgarian, Chinese (Simplified), Chinese (Traditional), Croatian, Czech, Danish, Dutch, English, Estonian, Filipino, Finnish, French, German, Greek, Gujarati, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Kazakh, Korean, Latvian, Lithuanian, Malay, Marathi, Norwegian, Persian, Polish, Portuguese, Punjabi, Romanian, Romansh, Russian, Serbian, Slovak, Slovenian, Spanish, Swahili, Swedish, Tamil, Telugu, Thai, Turkish, Ukrainian, Urdu, Vietnamese, Zulu\n\n## Contributing\n\n### Screenshot Automation\n\nTwo separate screenshot pipelines exist, both using Compose screenshot tests:\n\n**README screenshots** — Used for this README. CI runs this automatically on every push and auto-commits any changes.\n\n```bash\n./gradlew :screenshotTests:updateScreenshots\n```\n\n**Store screenshots** — Generates localized screenshots for the Play Store in all supported locales. Upload via fastlane.\n\n```bash\n./gradlew :screenshotTests:generateStoreScreenshots\nbundle exec fastlane android upload_screenshots\n```\n\n## Sponsors\n\nThis project is open-source and maintained by a single developer. If you find this app useful, please consider sponsoring to help take it to the next level with more features and faster updates.\n\n## Credits\n\n- Lottie animation: https://lottiefiles.com/free-animation/loading-wDUukARCPj\n- Mistral: https://mistral.ai/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimonschubert%2Fkai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimonschubert%2Fkai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimonschubert%2Fkai/lists"}