Skip to content

SimonSchubert/Kai

Repository files navigation

Kai

Web Android iOS Platform JVM

An open-source AI assistant with persistent memory that runs on Android, iOS, Windows, Mac, Linux, and Web.

App Store Play Store F-Droid Web

Homebrew (macOS):

brew install --cask simonschubert/tap/kai

AUR (Arch Linux):

yay -S kai-bin

Direct downloads

Platform Format Download
Android APK GitHub Releases
macOS DMG GitHub Releases
Windows MSI GitHub Releases
Linux DEB GitHub Releases
Linux RPM GitHub Releases
Linux AppImage GitHub Releases

Features

  • Persistent memory — Kai remembers important details across conversations and uses them automatically
  • Customizable soul — Define the AI's personality and behavior with an editable system prompt
  • Encrypted local conversation storage
  • Text to speech output
  • Seamless switch between services
  • Image attachments (all services)

Tools

Tools can be enabled or disabled in settings. Memory tools are always available when memory is enabled.

  • Store Memory - Saves important information for future conversations
  • Forget Memory - Removes outdated or incorrect memories
  • Get Local Time - Provides the current date and time
  • Get Location - Estimates location based on IP address for location-aware responses
  • Send Notification - Sends push notifications to the device (Android only)
  • Create Calendar Event - Creates calendar events directly from the chat (Android only)
  • Run Shell Command - Execute shell commands on the device (Desktop and Android)
  • Web Search - Search the web for current information
  • Schedule Task - Schedule tasks to run at a specific time or on a recurring cron schedule
  • Cancel Task - Cancel a scheduled task
  • List Tasks - List all scheduled tasks

How It Works

                        ┌────────┐
                        │  User  │
                        └───┬────┘
                            │ message
                            ▼
               ┌─────────────────────────┐
               │          Chat           │
               │                         │
               │  prompt + memories      │
               │        │                │
               │        ▼                │
               │    ┌────────┐           │
               │    │   AI   │◀─┐        │
               │    └───┬────┘  │        │
               │        │   tool calls   │
               │        │   & results    │
               │        ▼      │        │
               │    ┌────────┐ │        │
               │    │ Tools  │─┘        │
               │    └───┬────┘          │
               │        │               │
               └────────┼───────────────┘
                        │ store / recall
                        ▼
               ┌─────────────────┐    hitCount >= 5
               │     Memory      │───────────────────┐
               │                 │                   │
               │  facts, prefs,  │                   ▼
               │  learnings      │          ┌────────────────┐
               │                 │◀─delete──│ Promote into   │
               └─────────────────┘          │ System Prompt  │
                        ▲                   └────────────────┘
                        │ reviews
                        │
               ┌─────────────────┐
               │    Heartbeat    │
               │                 │
               │  autonomous     │
               │  self-check     │
               │  every 30 min   │
               │  (8am–10pm)     │
               │                 │
               │  all good?      │
               │  → stays silent │
               │  needs action?  │
               │  → notifies user│
               └─────────────────┘
  • Chat — User sends a message. The AI responds, calling tools (memory, web search, shell, etc.) in a loop until it has a final answer.
  • Memory — The AI stores and recalls facts, preferences, and learnings. Memories that prove useful (5+ hits) can be promoted into the system prompt permanently.
  • 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.

Screenshots

Desktop

Desktop App

Web

Web App

Mobile

Mobile Screenshot 1 Mobile Screenshot 2 Mobile Screenshot 3 Mobile Screenshot 4 Mobile Screenshot 5 Mobile Screenshot 6

Supported services:

Screenshot automatisation

Integrated in github actions to update mobile screenshots for fastlane and this readme. To run manually:

./gradlew updateScreenshots

Supported Languages

Afrikaans, 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

Sponsors

This 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.

Credits

Lottie animation: https://lottiefiles.com/free-animation/loading-wDUukARCPj

Mistral: https://mistral.ai/