AI-powered desktop assistant built with Flutter and Google Gemini 2.0 Flash API with full OS interaction capabilities.
- π¬ Natural Conversation with Google Gemini AI (2.0 Flash model)
- π οΈ 26 OS Tools - AI can interact with your computer
- π§ Persistent Memory - AI remembers important information between sessions
- β° Timers & Reminders - Set timers with notifications
- π Localization - Russian and English languages
- π Proxy Support - Works in restricted regions
- π₯ System Tray - Minimize to tray, quick access
- π¨ Beautiful Dark UI - Elegant gradient design with purple accents
- β¨ Smooth Animations - Optional, can be disabled
- π Chat History - Persistent chat sessions
- π Secure Storage - API keys stored securely
- π Markdown Support - Rich text with code highlighting
| Tool | Description |
|---|---|
read_file |
Read text file contents |
write_file |
Create or overwrite files |
list_directory |
Show folder contents |
create_directory |
Create new folders |
delete |
Delete files or folders |
search_files |
Search files by name pattern |
| Tool | Description |
|---|---|
system_info |
OS, CPU, memory info |
disk_info |
Disk space information |
network_info |
Network interfaces and IPs |
list_processes |
List running processes |
get_process_path |
Find process executable path |
kill_process |
Terminate process by PID |
| Tool | Description |
|---|---|
run_command |
Execute PowerShell commands |
run_admin_command |
Execute as administrator |
launch_app |
Launch applications |
open_file |
Open file in default app |
open_url |
Open URL in browser |
| Tool | Description |
|---|---|
read_clipboard |
Read clipboard text |
write_clipboard |
Copy text to clipboard |
| Tool | Description |
|---|---|
set_timer |
Create timer with message |
list_timers |
Show active timers |
cancel_timer |
Cancel timer by ID |
| Tool | Description |
|---|---|
save_memory |
Remember information |
recall_memory |
Retrieve saved info |
list_memories |
Show all memories |
forget_memory |
Delete memory entry |
- Google Gemini API key from ai.google.dev
- Go to Releases
- Download
gemini-assistant-windows-x64.zip - Extract to any folder
- Run
gemini_assistant.exe - Enter your API key in settings
Requirements: Flutter SDK 3.10.3 or higher
- Clone the repository:
git clone https://github.com/silasWorked/gemini-assistant.git
cd gemini-assistant- Install dependencies:
flutter pub get- Run the app:
flutter run -d windowsOn first launch, you'll be prompted to enter your Gemini API key:
- Click the settings icon (βοΈ) in the sidebar
- Enter your API key from Google AI Studio
- The key will be securely stored locally
If you're in a region where Google API is blocked:
- Go to Settings
- Enable HTTP Proxy
- Enter your proxy details (host, port, optional auth)
- Click "Check" to verify connection
lib/
βββ main.dart # App entry point
βββ l10n/
β βββ app_localizations.dart # Localization strings
βββ models/
β βββ app_settings.dart # Settings model
β βββ chat_message.dart # Message model
β βββ chat_session.dart # Session model
βββ screens/
β βββ chat_screen.dart # Main chat UI
β βββ tools_page.dart # Tools management
β βββ memory_page.dart # Memory viewer
βββ services/
β βββ gemini_service.dart # Gemini API client
β βββ chat_history_service.dart # History persistence
β βββ tray_service.dart # System tray
β βββ tools/ # OS tools
β βββ tool_base.dart
β βββ tool_registry.dart
β βββ file_tools.dart
β βββ system_tools.dart
β βββ command_tools.dart
β βββ clipboard_tools.dart
β βββ timer_tools.dart
β βββ memory_tools.dart
βββ viewmodels/
β βββ chat_viewmodel.dart # State management
βββ widgets/
βββ chat_bubble.dart
βββ chat_input.dart
βββ navigation_sidebar.dart
βββ settings_dialog.dart
βββ ...
| Package | Purpose |
|---|---|
provider |
State management |
http |
API requests |
flutter_secure_storage |
Secure key storage |
flutter_markdown |
Markdown rendering |
path_provider |
Local storage paths |
uuid |
Unique IDs |
system_tray |
System tray integration |
window_manager |
Window control |
local_notifier |
Desktop notifications |
Ask the AI to:
English:
- "Show what's on my desktop"
- "Find all .log files in Windows folder"
- "What processes are using the most memory?"
- "Open google.com"
- "Remember that my project is in C:\Projects\MyApp"
- "Set a timer for 5 minutes"
Russian:
- "ΠΠΎΠΊΠ°ΠΆΠΈ ΡΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΡΠΎΠ»Π΅"
- "ΠΠ°ΠΉΠ΄ΠΈ Π²ΡΠ΅ .log ΡΠ°ΠΉΠ»Ρ Π² ΠΏΠ°ΠΏΠΊΠ΅ Windows"
- "ΠΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠ°ΠΌΡΡΠΈ?"
- "ΠΡΠΊΡΠΎΠΉ google.com"
- "ΠΠ°ΠΏΠΎΠΌΠ½ΠΈ ΡΡΠΎ ΠΌΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² C:\Projects\MyApp"
- "ΠΠΎΡΡΠ°Π²Ρ ΡΠ°ΠΉΠΌΠ΅Ρ Π½Π° 5 ΠΌΠΈΠ½ΡΡ"
β οΈ Note: OS tools are optimized for Windows. On macOS/Linux the chat works, but some tools (commands, processes, system info) may not work correctly or require adaptation.
flutter build windows --releaseThe executable will be at build/windows/x64/runner/Release/
flutter build macos --releaseflutter build linux --release- API keys are stored using platform-secure storage
- Dangerous operations (delete, kill process) require user confirmation
- Tool execution can be disabled in settings
- Individual tool categories can be toggled on/off
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Google Gemini API for the AI backend
- Flutter for the amazing framework