Mai Buddy Desktop AI Agent
Mai Buddy is a highly customizable, personal AI agent that runs as a desktop application. It features GPT integration, ElevenLabs voice synthesis, and dozens of MCP (Model Context Protocol) connections for extending functionality.
Features
AI Integration
- GPT-4 Support: Powered by OpenAI's latest models
- Customizable System Prompts: Tailor the AI's personality and behavior
- Conversation Memory: Maintains context across sessions
- Multiple Model Support: Choose from GPT-4, GPT-4 Turbo, and GPT-3.5 Turbo
Voice Capabilities
- ElevenLabs Integration: High-quality text-to-speech
- Voice Activation: Respond to "Mai Buddy" trigger phrase
- Multiple Voice Options: Choose from various AI voices
- Real-time Speech Recognition: Voice input support
MCP Connections (30+ Integrations)
- Development: GitHub, GitLab, VS Code, Docker
- Communication: Slack, Discord, Microsoft Teams
- Productivity: Notion, Trello, Asana
- Cloud Services: AWS, Google Cloud, Azure, DigitalOcean
- Databases: PostgreSQL, MySQL, MongoDB, Redis
- AI/ML: Hugging Face, Anthropic, Replicate
- Finance: Stripe, Plaid, Salesforce
- Media: YouTube, Spotify, Unsplash
- System: File System, Terminal, Calendar
- Custom: Build your own MCP servers
User Experience
- Always Available: Runs in system tray
- Global Hotkeys: Quick access with keyboard shortcuts
- Customizable Interface: Modern, responsive design
- Cross-Platform: Works on macOS, Windows, and Linux
Installation
Prerequisites
- Node.js 18+
- npm or yarn
- OpenAI API key
- ElevenLabs API key (optional, for voice features)
Quick Start
Clone the repository
git clone https://github.com/djleamen/mai-buddy.git cd mai-buddyInstall dependencies
npm installStart the application
npm startConfigure API keys
- Click the settings icon in the app
- Add your OpenAI API key
- Optionally add ElevenLabs API key for voice features
Configuration
API Keys
- OpenAI: Required for AI functionality
- ElevenLabs: Optional for text-to-speech
- Service-specific keys: Required for each MCP connection you want to use
Hotkeys (Default)
Cmd/Ctrl + Shift + M: Show/hide chat windowCmd/Ctrl + Shift + V: Voice activationCmd/Ctrl + Shift + C: Quick captureCmd/Ctrl + Shift + L: Toggle listeningEscape: Hide window
Voice Settings
- Voice Selection: Choose from available ElevenLabs voices
- Stability: Control voice consistency (0.0 - 1.0)
- Similarity Boost: Enhance voice similarity (0.0 - 1.0)
- Trigger Phrase: "Mai Buddy" (customizable)
MCP Connections
Mai Buddy supports the Model Context Protocol for extending functionality. Available connection types:
Development Tools
- GitHub: Repository management, issue tracking, code search
- GitLab: Project management, CI/CD, merge requests
- VS Code: Editor integration, file operations
- Docker: Container management, image building
Communication Platforms
- Slack: Team messaging, channel management
- Discord: Server management, voice channels
- Microsoft Teams: Collaboration, meetings
Productivity Services
- Notion: Database management, page creation
- Trello: Board management, card operations
- Asana: Project tracking, task management
Cloud Platforms
- AWS: EC2, S3, Lambda management
- Google Cloud: Compute Engine, Cloud Storage
- Azure: Virtual machines, storage accounts
- DigitalOcean: Droplet management, Spaces
Databases
- PostgreSQL: Query execution, schema management
- MySQL: Table operations, data import
- MongoDB: Document operations, collections
- Redis: Key-value operations, caching
Development
Building
# Development mode
npm run dev
# Build for current platform
npm run build
# Build for specific platforms
npm run build-mac
npm run build-win
npm run build-linux
Custom MCP Servers
Create custom MCP servers to extend Mai Buddy's capabilities:
// Example custom MCP server
const WebSocket = require('ws');
const server = new WebSocket.Server({ port: 3001 });
server.on('connection', (ws) => {
ws.on('message', (data) => {
const message = JSON.parse(data);
if (message.method === 'tools/call') {
// Handle custom tool calls
const result = handleCustomTool(message.params);
ws.send(JSON.stringify({
jsonrpc: '2.0',
id: message.id,
result: result
}));
}
});
});
Mai Buddy - Your personal AI companion, always ready to assist! 🤖✨
Built With
- css
- elevenlabs
- gpt-4
- html
- javascript
- mcp
- node.js
- shell
Log in or sign up for Devpost to join the conversation.