đ YUMLABS â
A professional, multi-purpose desktop assistant built with Rust
Features âĸ Installation âĸ Usage âĸ Documentation âĸ Contributing
đ About â
YUMLABS is a sleek, always-on-top desktop assistant that combines the power of AI, productivity tools, and financial tracking into a single, elegant interface. Built with Rust and the Iced GUI framework, it delivers blazing-fast performance with a modern, professional design.
⨠Highlights â
- đ¤ AI-Powered - Integrated with Perplexity and Gemini LLMs for intelligent queries
- đ Task Management - MongoDB-backed todo system for persistent task tracking
- đ Finance Tracking - Real-time stock market data with AI-powered analysis
- đ¨ Beautiful UI - Professional dark theme with smooth interactions
- ⥠Lightning Fast - Native Rust performance with async operations
- đĒ Always Available - Compact, always-on-top window for quick access
đ¯ Features â
đ§ LLM Integration â
Query multiple AI providers directly from your desktop:
- Perplexity AI - Advanced reasoning and research capabilities
- Gemini - Google's powerful language model
- Copy responses to clipboard with one click
- Model selection for fine-tuned control
â Todo Management â
Stay organized with a persistent task system:
- Create, complete, and delete tasks
- MongoDB backend for reliable storage
- Clean, intuitive interface
- Real-time updates
đš Finance Dashboard â
Track the stock market with AI insights:
- Real-time stock quotes via Finnhub API
- AI-powered stock recommendations
- Daily market analysis
- Smart caching (refreshes daily)
- Visual indicators for gains/losses
đ ī¸ Tools Hub â
Quick access to your favorite services:
- VS Code integration
- Twitch, YouTube, GitHub shortcuts
- Perplexity, Claude, and more
- One-click navigation
đ Installation â
Prerequisites â
- Rust (2021 edition or later) - Install Rust
- MongoDB - Install MongoDB
- API Keys (optional, for full functionality):
Quick Start â
Clone the repository
bashgit clone https://github.com/yourusername/yumlabs.git cd yumlabsSet up environment variables
Create a
.envfile in the project root:envPERPLEXITY_API_KEY=your_perplexity_key_here GEMINI_API_KEY=your_gemini_key_here MONGODB_URI=mongodb://localhost:27017Build and run
bashcargo build --release cargo run --release
Development Mode â
For active development with auto-reload:
cargo install cargo-watch
cargo watch -x runđģ Usage â
Window Controls â
- Position: Bottom-right corner (optimized for 1920x1080 displays)
- Size: 300x550 pixels - compact and unobtrusive
- Always on Top: Quick access without switching windows
- Transparent: Blends seamlessly with your desktop
Keyboard Shortcuts â
- Focus: Query input is auto-focused on startup
- Enter: Submit queries or create tasks
- Escape: Clear input or go back
Navigation â
- Home Icon: Return to main LLM view
- Tools Icon: Access tools dashboard
- Todo Icon: Open task manager
- Finance Icon: View stock market data
đī¸ Architecture â
YUMLABS follows a clean, modular architecture inspired by MVC patterns:
src/
âââ main.rs # Application entry point
âââ models.rs # State management & message types
âââ update/ # Business logic layer
â âââ llm_updater.rs
â âââ todo_updater.rs
â âââ finance_updater.rs
âââ view/ # UI rendering layer
â âââ llm_view.rs
â âââ todo_view.rs
â âââ finance_view.rs
â âââ components.rs
âââ api.rs # LLM API integration
âââ finance.rs # Finance API & data models
âââ mongo_connection.rs # Database connection
âââ theme.rs # UI styling system
âââ colors.rs # Color paletteKey Technologies â
| Technology | Purpose |
|---|---|
| Iced 0.13 | Cross-platform GUI framework |
| Tokio | Async runtime for non-blocking operations |
| Reqwest | HTTP client for API calls |
| MongoDB | Persistent data storage |
| Serde | JSON serialization/deserialization |
| Arboard | Clipboard operations |
đ¨ Design System â
YUMLABS features a carefully crafted design system with:
- 15-color palette - Minimal, purposeful color choices
- Professional dark theme - Easy on the eyes
- Consistent spacing - 8px grid system
- Smooth interactions - Hover and focus states
- Custom components - Buttons, inputs, tooltips, and more
Color Philosophy â
- Primary Blue (#4285F4) - Interactive elements
- Success Green (#34BB72) - Positive indicators
- Error Red (#F2434F) - Warnings and losses
- Neutral Grays - Layered backgrounds and text hierarchy
đ Documentation â
- Developer Documentation - Comprehensive technical guide
- Finance Implementation - Stock market feature details
- API Reference - Module documentation
đ ī¸ Development â
Building from Source â
# Debug build
cargo build
# Release build (optimized)
cargo build --releaseRunning Tests â
cargo testCode Quality â
# Linting
cargo clippy
# Formatting
cargo fmtAdding Features â
- Create new view in
src/view/ - Add state struct in
src/models.rs - Create updater in
src/update/ - Wire up navigation in
view/mod.rsandupdate/mod.rs
See Developer Documentation for detailed guides.
đ¤ Contributing â
Contributions are welcome! Please follow these guidelines:
- 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
Code Standards â
- Follow Rust best practices
- Use the existing design system
- Write clear commit messages
- Add tests for new features
- Update documentation
đ License â
This project is licensed under the MIT License.
đ Acknowledgments â
- Iced - Excellent Rust GUI framework
- Perplexity AI - Powerful AI research assistant
- Google Gemini - Advanced language model
- Finnhub - Real-time stock market data
đ§ Contact â
YUMLABS Team - [yumlabs.team@gmail.com]
Project Link: CodingInCarhartts
Made with â¤ī¸ and Rust
â Star this repo if you find it useful!