Discover the power of AI with our Kotlin Multiplatform app. Choose from the latest open-source text and image models to boost your creativity. Pick the model that fits you, create unique texts or images. and keep everything safe and in sync across your devices.
-
Android app
Download the latest version directly from the Release section
-
WebAssembly
Check the about section
-
Desktop(macOS/Windows/Linux):
1- Build the release by running this command:
./gradlew packageReleaseDistributionForCurrentOS
2- Find binaries in:
composeApp/build/compose/binaries/
-
iOS:
Run iOS emulator via Xcode, Intellij Idea or Android Studio
chat.mp4
imagine.mp4
You.mp4
Chutes AI is a serverless AI compute platform that lets you deploy, run, and scale any AI model in seconds. This project uses FREE models provided by Chutes AI.
-
Get an API Key:
- Sign up at chutes.ai and paste your API key in
ChutesAiEndPoint.kt
:object ChutesAiEndPoint { val API_KEY = "YOUR_API_KEY_HERE" }
- Sign up at chutes.ai and paste your API key in
-
Customize Models:
-
Add new or custom models by editing:
-
Text models:
TextGenModelList.kt
TextModel( title = "DeepSeek V3 0324", chutesName = "deepseek-ai/DeepSeek-V3-0324", description = "DeepSeek-V3-0324 is...", image = Res.drawable.ic_deepseek )
-
Image models:
ImageGenModelList.kt
ImageModel( title = "Chroma", description = "Open-Source, Uncensored...", image = Res.drawable.ic_chroma, chutesName = "chroma", defaultParams = mapOf( "cfg" to 4.5f, "steps" to 30 ) )
-
-
Our development process is divided into five key steps:
- Status: 🎯 Done
- Status: 🎯 Done
- Status: 🎯 Done
- Status: 🎯 Done
- Status: 🔄 in progress
-
User Interface: Uses Compose multiplatfrom.
-
Layers: All data handling, business logic, and presentation layers are implemented using kotlin multiplatform
-
backend: The backend is developed using Ktor framework.
- Material 3 Adaptive (creates adaptive UIs that will adapt themselves automatically)
- Compose Navigation (Navigates between composables with built-in infrastructure and features)
- Koin (Dependency injection)
- Coroutines (asynchronous or non-blocking)
- Sketch (Image loading)
- Ktor Client (HTTP client)
- Markdown renderer (Markdown renderer)
- Drag Select (adding Google Photos style drag-to-select multi-selection to a LazyGrid)
- SQLDelight (SQLDelight generates typesafe Kotlin APIs from your SQL statements.)
app/
├── core/
│ ├── data
│ │ ├── local
│ │ └── remote
│ ├── di
│ ├── navigation
│ ├── sharedViews
│ ├── theme
│ └── util
└── feature/
├── chat/
│ ├── data
│ │ └── model
│ └── ui
│ ├── chat
│ ├── history
│ ├── listDetailPane
│ └── view
├── imagine/
│ ├── data
│ │ └── model
│ └── ui
│ ├── supportingPane
│ ├── util
│ └── view
└──You/
We welcome contributions to our project! Please follow these guidelines when submitting changes:
- Report bugs and feature requests by creating an issue on our GitHub repository.
- Contribute code changes by forking the repository and creating a new branch.
- Ensure your code follows our coding conventions.
- Improve our documentation by submitting changes as a pull request.
Thank you for your interest in contributing to our project!
Copyright 2025 Yassine Abou
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.