2b1838b0eb
- Update tech stack section - Replace npm commands with pnpm - Add type-check script usage - Add model configuration feature note
75 lines
1.7 KiB
Markdown
75 lines
1.7 KiB
Markdown
# Light Chat
|
|
|
|
A lightweight Android chat application built with React and Capacitor for connecting to locally or remotely hosted LLMs.
|
|
|
|
## Features
|
|
|
|
- **LLM API Integration**: Connect to any OpenAI-compatible API endpoint
|
|
- **Session Management**: Multiple chat sessions with add/remove functionality
|
|
- **Dark Theme**: Sleek black/dark UI design
|
|
- **Conversation Export**: Save chats as text, log, or markdown files
|
|
- **Custom System Prompts**: Inject your own system prompts for personalized interactions
|
|
- **Model Configuration**: Custom model name support for local LLMs
|
|
- **Offline Ready**: Capacitor wrapper for native Android APK generation
|
|
|
|
## Tech Stack
|
|
|
|
- **Frontend**: React + TypeScript
|
|
- **Mobile Wrapper**: Capacitor
|
|
- **Build Tool**: Vite
|
|
- **Package Manager**: pnpm
|
|
- **Testing**: Vitest + React Testing Library
|
|
- **Android Studio**: For final APK generation
|
|
|
|
## Getting Started
|
|
|
|
### Prerequisites
|
|
|
|
- Node.js (v18+)
|
|
- pnpm
|
|
- Android Studio (for APK building)
|
|
- Capacitor CLI
|
|
|
|
### Installation
|
|
|
|
```bash
|
|
# Install dependencies with pnpm
|
|
pnpm install
|
|
|
|
# Start development server
|
|
pnpm dev
|
|
```
|
|
|
|
### Build for Android
|
|
|
|
```bash
|
|
# Type check TypeScript code
|
|
pnpm type-check
|
|
|
|
# Build the web app
|
|
pnpm build
|
|
|
|
# Sync with Capacitor
|
|
npx cap sync
|
|
|
|
# Open in Android Studio
|
|
npx cap open android
|
|
```
|
|
|
|
## Project Structure
|
|
|
|
The codebase follows these principles:
|
|
|
|
- **Simple**: Keep things straightforward
|
|
- **Modular**: Separate concerns into distinct modules
|
|
- **Reusable**: Abstract common functionality
|
|
- **Tested**: Unit tests for all components
|
|
|
|
## Contributing
|
|
|
|
When adding features:
|
|
1. Look for existing similar functions to abstract
|
|
2. Write unit tests
|
|
3. Keep components small and focused
|
|
4. Follow the modular architecture
|