Skip to content

Repository files navigation

OpenChat — Production-Grade Android AI IDE

OpenChat is a high-performance, native Android application built with Jetpack Compose, designed to provide a pixel-perfect AI interaction experience with full workspace and agentic capabilities.

🚀 Features

  • Blazing Fast Streaming: Tokens appear instantly with minimal latency.
  • Agentic Workspace: AI can read, create, and edit files in your local workspace.
  • Multimodal Support: Attach images and documents for rich context.
  • Artifacts System: Render HTML/JS/CSS snippets in a live preview.
  • Local Persistence: Full session history and workspace files stored via Room and internal storage.
  • Voice Integration: Speech-to-Text and Text-to-Speech support for hands-free interaction.
  • Pro Design: Minimal, dark/light theme (inspired by Claude Android).

🛠 Tech Stack

  • UI: Jetpack Compose (Material 3)
  • Architecture: MVVM + Clean Architecture + Repository Pattern
  • Dependency Injection: Dagger Hilt
  • Database: Room (SQLite)
  • Networking: Retrofit + OkHttp (SSE support)
  • Local Storage: DataStore (Preferences)
  • Formatting: Markwon (Markdown) + Prism.js (Syntax Highlighting)

📦 Build & Installation

1. Clone the Repository

git clone https://github.com/yourusername/openchat.git
cd openchat

2. Setup API Keys

OpenChat supports multi-provider integration. You don't need to hardcode keys:

  1. Open the app on your device.
  2. Navigate to History (Sidebar) > API Config.
  3. Add your OpenAI, Anthropic, or custom provider keys.

3. Build the APK locally

Ensure you have Android Studio Hedgehog+ and JDK 17 installed.

./gradlew assembleDebug

The APK will be located at openchat/app/build/outputs/apk/debug/app-debug.apk.

4. GitHub Actions (Auto-Build & Release)

The repository is configured with GitHub Actions to automate builds:

  • Debug Builds: Every push to main generates a debug APK in the "Actions" tab.
  • Release Builds: Pushing a tag (e.g., v1.0.0) triggers a signed release APK and a GitHub Release.

Setting up Signing Secrets (Required for Releases)

Add these secrets to your GitHub repository (Settings > Secrets and variables > Actions):

  1. KEYSTORE_BASE64: Generate a keystore, then encode it:
    keytool -genkey -v -keystore openchat.jks -keyalg RSA -keysize 2048 -validity 10000 -alias openchat
    base64 -w 0 openchat.jks > encoded.txt
    # Copy content of encoded.txt to GitHub Secret
  2. KEYSTORE_PASSWORD: The password for your keystore.
  3. KEY_ALIAS: openchat (or your chosen alias).
  4. KEY_PASSWORD: Your key password.

Trigger a Release

git tag v1.0.0
git push origin v1.0.0

📝 License

MIT License. See LICENSE for details.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages