A concise and efficient AI assistant dialogue tool developed with Flutter, supporting various large language models and available on desktop and web clients. Simple Chat enables you to easily converse with various advanced AI models, customize dialogue parameters, and use multiple interaction modes.
- Cross-Platform Support: Compatible with Windows, macOS, Linux desktop clients, and web browsers
- Instant Messaging: Based on modern messaging mechanisms
- AI Dialogue Assistant: Interact with various large language models
- Support for multiple AI model providers including OpenAI, Anthropic, Google Gemini, Volcano Engine, and DeepSeek
- Default integration with high-quality models like GPT-4o-mini
- Customizable dialogue parameters (temperature, creativity, thought openness, etc.)
- Multiple conversation modes: chat mode, document mode, code mode
- Intelligent topic management: automatically creates new topics and provides context summaries
- Advanced AI Dialogue Features:
- Custom role settings and pre-input templates
- Adjustable reasoning intensity and response style
- Automatic conversation history management and summarization
- Theme Customization: Support for dark/light mode switching
- Multilingual Support: Built-in internationalization framework
- Local Data Storage: Secure local storage of chat records using drift (moor) database
- Flutter SDK >= 3.29.0
- Dart SDK >= 3.0.0
- Node.js (for running commands in package.json)
- Development IDE (VS Code or Android Studio recommended)
- Clone the repository
git clone https://github.com/yh4922/simple-chat.git
cd simple_chat
- Install dependencies
flutter pub get
- Run the application
# Run in development environment
npm run dev
# Run in web browser
npm run dev:web
This project uses flutter_distributor for building and packaging.
# Global installation of flutter_distributor
dart pub global activate flutter_distributor
# Build Android APK
flutter_distributor package --platform android --targets apk --flutter-build-args=dart-define=INIT_ENV=prod --flutter-build-args=release
# Build Windows application (EXE installer)
flutter_distributor package --platform windows --targets exe --flutter-build-args=dart-define=INIT_ENV=prod
# Build Linux application (DEB package)
flutter_distributor package --platform linux --targets deb --flutter-build-args=dart-define=INIT_ENV=prod
# Build macOS application (DMG image)
flutter_distributor package --platform macos --targets dmg --flutter-build-args=dart-define=INIT_ENV=prod
# Build Web application
flutter build web --release --dart-define=INIT_ENV=prod --dart-define=FLUTTER_WEB_CANVASKIT_URL=canvaskit
The project also defines some shortcut commands for building in package.json:
# Build Android APK
npm run build-apk
# Build iOS application
npm run build-ios
# Build Web application
npm run build-web
# Build Windows application
npm run build-windows
# Build Linux application
npm run build-linux
# Build macOS application
npm run build-macos
The project uses GitHub Actions for automated building and release processes. When a new version tag (e.g., v0.0.5+5
) is pushed to the repository, it automatically triggers multi-platform builds and creates release packages.
# Create and push a new version tag to trigger the build
npm run tag:demo # or custom tag: git tag v[version_number] && git push origin v[version_number]
# Generate internationalization files
npm run i18n
npm run i18n:dart
# Generate App icons
npm run app:icon
# Generate code
npm run code
# Watch for code changes and auto-generate
npm run code:watch
lib/
├── consts/ # Constants definition
├── database/ # Database configuration and operations
├── i18n/ # Internationalization resources
├── layout/ # Layout components
├── models/ # Data models
├── router/ # Routing management
├── states/ # State management (using Riverpod)
├── theme/ # Theme configuration
├── utils/ # Utility functions
├── views/ # Page views
│ ├── chat/ # Chat-related pages
│ ├── demo/ # Example pages
│ └── home/ # Homepage
├── widgets/ # Reusable components
└── main.dart # Application entry point
- Framework: Flutter
- State Management: Flutter Riverpod
- Routing: auto_route
- Database: drift (SQLite ORM)
- Internationalization: intl
- Desktop Support: window_manager
- UI Notifications: bot_toast
Modify theme-related configurations in the lib/theme/
directory.
The application supports internationalization. You can add or modify multilingual resources in the lib/i18n/
directory.
Generate language files:
flutter pub run intl_utils:generate
Simple Chat supports multiple AI model providers and configuration options that you can customize according to your needs:
- OpenAI (default)
- Anthropic
- Google Gemini
- Volcano Engine
- DeepSeek
You can customize various AI assistant parameters in the application, including:
- Temperature: Controls the creativity and rigor of responses (between 0-2)
- Top P: Controls how many possibilities the model considers (between 0-1)
- Presence Penalty: Controls the degree of concept repetition avoidance (between -2 and 2)
- Frequency Penalty: Controls vocabulary richness (between -2 and 2)
- Max Tokens: Controls the maximum number of tokens per interaction
- Reasoning Effort: Options include low, medium, and high
- Auto Create Topic: Automatically creates a new topic when exceeding the specified conversation history count
- Max Topic History: Sets the threshold for triggering new topic creation
- Auto Summary: When enabled, the model summarizes historical messages to maintain context coherence
You can set assistant configurations in code, for example:
Assistant assistant = Assistant(
id: 1,
name: "ChatGPT Assistant",
)
- Fork the project
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details
For any questions or suggestions, please contact us through:
- GitHub Issues: https://github.com/yh4922/simple-chat/issues
- Email: [email protected]
Simple Chat - Making chat simple again 2025