A Modern, Real-Time AI Assistant with Voice and Visual Capabilities
Julie is a sophisticated AI assistant application built with .NET 8 and WPF, featuring real-time voice interaction, screen sharing capabilities, and seamless integration with Google's Gemini API. Experience the future of AI assistance with a beautiful, modern interface and powerful multimodal capabilities.
Beautiful chat interface with modern UI design
Pop-up to allow the permision for using mic and the screen context
Comprehensive settings panel for API configuration and preferences
- Real Gemini Integration: Direct integration with Google's Gemini 1.5 Flash API
- Intelligent Responses: Context-aware AI conversations with advanced reasoning
- Message History: Complete conversation tracking and management
- Error Handling: Robust error handling with user-friendly feedback
- Real-time audio capture and playback with NAudio
- Voice recording with privacy disclaimer
- High-quality voice processing capabilities
- Audio device selection and management
- Multi-monitor screen capture capabilities
- Screen context integration for visual assistance
- Selective screen area capture
- Performance-optimized rendering
- Beautiful UI: Professional gradient backgrounds and modern design
- Message Bubbles: Elegant message display with timestamps
- Typing Indicators: Real-time connection status and thinking indicators
- Welcome Messages: Guided user experience from first launch
- Modern WPF Design: Clean, professional interface with smooth gradients
- Responsive Layout: Adaptive design that works on different screen sizes
- Visual Feedback: Interactive elements with hover effects and focus states
- Status Indicators: Real-time connection status with visual cues
- API Key Management: Secure storage and validation of Gemini API keys
- Connection Testing: Automatic API key validation and connection testing
- Real-time Updates: Instant settings application without restart
- Device Preferences: Audio device configuration and management
Julie follows a clean, modular architecture with clear separation of concerns:
๐ Julie/
โโโ ๐ง Julie.Core/ # Core business logic and models
โโโ โ๏ธ Julie.Services/ # Service implementations and interfaces
โโโ ๐จ Julie.UI/ # WPF views and ViewModels
โโโ ๐ Julie.App/ # Application composition and startup
| Component | Technology | Purpose |
|---|---|---|
| Framework | .NET 8 | Cross-platform runtime |
| UI Framework | WPF | Native Windows UI with MVVM |
| MVVM | CommunityToolkit.Mvvm | Data binding and commands |
| Audio | NAudio | Audio capture/playback |
| AI API | Google Gemini 1.5 Flash | AI conversation engine |
| HTTP Client | System.Net.Http | API communication |
| JSON | System.Text.Json | Data serialization |
| DI Container | Microsoft.Extensions.DependencyInjection | Service management |
| Logging | Microsoft.Extensions.Logging | Structured logging |
- โ HTTP-based Gemini Client: Direct REST API integration with Gemini 1.5 Flash
- โ Real-time Chat: Working text conversations with AI responses
- โ Connection Management: API key validation and connection status
- โ Modern UI: Beautiful WPF interface with gradients and animations
- โ Message History: Complete conversation tracking and storage
- ๐ Live API Integration: Planned for voice and multimodal features
- Windows 10/11 (version 1903 or later)
- .NET 8 SDK or later
- Visual Studio 2022 (recommended) or Visual Studio Code
- Google Gemini API Key from Google AI Studio
-
Clone the repository
git clone https://github.com/infinit-X/Julie.git cd Julie -
Restore dependencies
dotnet restore
-
Configure API Key
- Obtain a Google Gemini API key from Google AI Studio
- Launch the application and enter your API key in the Settings panel
- The app will automatically test and validate your key
-
Build the solution
dotnet build
-
Run the application
dotnet run --project src/Julie.App
- Launch Julie from the built executable or Visual Studio
- Enter API Key: Open Settings and enter your Google Gemini API key
- Verify Connection: Check that the status shows "Connected" with a green indicator
- Start Chatting: Type a message and press Enter or click Send
- Explore Features: Try voice recording (with privacy disclaimer) and screen context
- Enjoy: Experience seamless AI assistance with beautiful UI!
To use Julie, you need a Google Gemini API key:
- Visit Google AI Studio
- Sign in with your Google account
- Navigate to "Get API Key" section
- Create a new API key for your project
- Copy the key and paste it into Julie's Settings
- Click "Save Settings" to validate and connect
Supported Models:
gemini-1.5-flash-latest(Currently used for chat)gemini-2.0-flash-live-001(Planned for voice features)gemini-1.5-pro-latest(Available for complex tasks)
| Document | Description |
|---|---|
| ๐ Development Progress | Current development status and milestones |
| ๐ Guidelines | Development guidelines and best practices |
| ๐๏ธ Project Structure | Detailed architecture documentation |
| ๐จ UI/UX Design Guide | Design principles and UI guidelines |
| ๐ API Integration Guide | Gemini API integration documentation |
| ๐ค Contributing Guidelines | How to contribute to the project |
- ๐ Available Models - List of supported Gemini models
- ๐ก Live API Documentation - Gemini Live API reference
- โ๏ธ Configuration Examples - Sample configuration files
Julie/
โโโ src/
โ โโโ Julie.Core/ # ๐ง Core Models & Utilities
โ โ โโโ Models/ # Data models and entities
โ โ โโโ Audio/ # Audio processing utilities
โ โ โโโ Screen/ # Screen capture functionality
โ โ โโโ API/ # API client implementations
โ โ
โ โโโ Julie.Services/ # โ๏ธ Service Layer
โ โ โโโ Interfaces/ # Service contracts
โ โ โโโ Implementations/ # Service implementations
โ โ โโโ Configuration/ # Service configuration
โ โ
โ โโโ Julie.UI/ # ๐จ User Interface
โ โ โโโ Views/ # XAML views and code-behind
โ โ โโโ ViewModels/ # MVVM ViewModels
โ โ โโโ Controls/ # Custom user controls
โ โ
โ โโโ Julie.App/ # ๐ Application Host
โ โโโ Configuration/ # App configuration
โ โโโ Services/ # DI container setup
โ โโโ Startup/ # Application initialization
โ
โโโ docs/ # ๐ Documentation
โโโ tests/ # ๐งช Unit and integration tests
โโโ assets/ # ๐จ Images and resources
{
"GoogleAI": {
"ApiKey": "your-gemini-api-key-here",
"Model": "gemini-1.5-flash-latest",
"ApiVersion": "v1beta",
"BaseUrl": "https://generativelanguage.googleapis.com"
}
}- โ Text Chat: Fully functional with Gemini 1.5 Flash
- โ API Integration: HTTP-based REST API client
- โ Connection Management: Real-time status updates
- โ Message History: Complete conversation tracking
- ๐ Voice Features: In development with Live API
- ๐ Screen Context: Planned multimodal integration
{
"Audio": {
"SampleRate": 16000,
"BufferSize": 1024,
"InputDevice": "default",
"OutputDevice": "default",
"EnableVoiceRecording": true
}
}We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please use the GitHub Issues page to report bugs.
- โ Core Architecture: Complete and stable
- โ Service Layer: Fully implemented with proper interfaces
- โ Gemini API Integration: Working HTTP client with real responses
- โ Chat Functionality: Text conversations fully operational
- โ UI Implementation: Modern WPF interface with beautiful design
- โ Connection Management: API key validation and status tracking
- โ Message History: Conversation storage and display
- โ Error Handling: Comprehensive error management and user feedback
- ๐ Voice Features: Live API integration in progress
- ๐ Screen Context: Multimodal capabilities planned
- โณ Testing: Unit tests and integration tests needed
- โณ Packaging: MSI installer and deployment automation
Current Build Status: โ All core features functional, 0 compilation errors
- โ Implemented working Gemini 1.5 Flash integration
- โ Added real-time chat with AI responses
- โ Created beautiful gradient UI with modern design
- โ Added API key validation and connection testing
- โ Implemented message history and conversation management
- โ Added voice recording disclaimer and privacy notices
- โ Enhanced error handling with user-friendly messages
- Basic text chat with Gemini API
- Modern WPF user interface
- API key management and validation
- Message history and conversation tracking
- Connection status and error handling
- Live API Integration: Real-time voice conversations with Gemini 2.0 Flash Live
- Multimodal Capabilities: Screen context analysis and image understanding
- Voice Input/Output: Audio recording and speech synthesis
- Advanced Models: Integration with Gemini 2.5 Pro for complex tasks
- Screen Analysis: Context-aware responses based on screen content
- Multi-language support and localization
- Custom AI model integration and fine-tuning
- Plugin system for extensibility
- Cloud synchronization and backup
- Advanced voice commands and shortcuts
- Mobile companion app
- Audio processing optimization for real-time performance
- Memory usage reduction and garbage collection optimization
- Startup time improvement and lazy loading
- Background processing for non-blocking operations
- Caching strategies for improved response times
This project is licensed under the MIT License - see the LICENSE file for details.
- Google Gemini Team for the powerful AI API
- Microsoft for .NET 8 and WinUI 3
- CommunityToolkit for MVVM utilities
- NAudio for audio processing capabilities
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Project Wiki
โญ If you find Julie helpful, please consider giving it a star! โญ
Made with โค๏ธ by Infinit-X