A cross-platform chat interface for language models built with Kotlin/Compose Multiplatform.
This project is not vibe-coded! While LLMs helped with some repetitive tasks, all code was carefully reviewed and written by a human. This is a personal side project I work on in my free time to learn new technologies and experiment with Kotlin Multiplatform. It's far from perfect and there are likely many things that could be done better. If you spot something wrong or have suggestions for improvements, feel free to create a merge request.
- Cross-Platform - Native apps for Android, iOS, and Desktop from a single codebase
- Multiple AI Providers - OpenAI, Google, Anthropic, Nexos AI
- Streaming Responses - Real-time streaming chat with markdown rendering
- Local Storage - Offline message history and settings persistence
- Modern Stack - Compose Multiplatform, Decompose, SQLDelight, Ktor, Koin, Arrow-kt
| Chat | History | Model Providers | Settings |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- Support for OpenRouter, Ollama, DeepSeek, GitHub Copilot providers
- Image attachments (input/output)
- Audio attachments (input/output)
- File attachments (output)
- Separate Desktop design
- JDK 21 or higher
- Android SDK (for Android development)
- Xcode (for iOS development, macOS only)
# Desktop
./gradlew :shared:run
# Android APK
./gradlew :androidApp:assembleDebug
# iOS - open in Xcode
open iosApp/iosApp.xcodeproj./gradlew :shared:jvmTest
./gradlew detektAllLM-Client/
├── shared/ # Multiplatform shared code
├── androidApp/ # Android application
├── iosApp/ # iOS Xcode project
└── gradle/ # Build configuration
See CLAUDE.md for detailed architecture documentation.
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make changes and run
./gradlew detektAll - Commit and push:
git commit -m 'Add feature' && git push origin feature/my-feature - Open a Pull Request
- JetBrains for Kotlin Multiplatform and Compose Multiplatform
- Koog Framework for AI agent capabilities
- Decompose by @arkivanov for navigation and component architecture
- Koin for dependency injection
- Haze by @chrisbanes for blur effects
- SQLDelight by Cash App for multiplatform database
- Multiplatform Markdown Renderer by @mikepenz for markdown rendering
- All the amazing open-source libraries that make this project possible



