MultiVibeChat
Python app that provides a unified interface for conversing and prompting multiple popular AI chat services simultaneously with their native Websites, no APIs needed.
Install / Use
/learn @mato200/MultiVibeChatREADME
MultiVibeChat 3
<!-- Replace with a real screenshot URL later -->
Multi AI Chat Desktop Client
A PyQt6-based desktop application for managing and interacting with multiple AI chat services simultaneously in a unified interface.
Acknowledgments
- Built with PyQt6 and QtWebEngine
- Inspired by the need to compare AI responses efficiently
- Inspired by mol-ai/GodMode 🫡
- Inspired by MultiGPT, ChatHub browser extensions 🤭
- Community contributions welcome
Features
- Multi-Panel Interface - Chat with multiple AI services side-by-side
- Synchronized Prompts - Send the same prompt to all AIs simultaneously
- NO APIs NEEDED - Uses native websites, all possible with free accounts
- Profile Management - Create and switch between different user profiles (automatically creates new browser profiles in "C:\Users\YourUsername.MultiVibeChat" directory)
- Persistent Sessions - Your login states are preserved between sessions
- Flexible Layouts - Toggle between 2x2 grid and 4x1 or Nx1 column layouts
- Zoom Control - Ctrl+scroll to adjust text size (website zoom) in each panel
- OAuth Support - Handles popup-based authentication flows
- Developer Tools - Built-in web inspector (Ctrl+Shift+I)
Supported AI Services
- ChatGPT (OpenAI)
- Claude (Anthropic)
- Grok (xAI)
- Gemini AI Studio (Google)
- Kimi (Moonshot AI)
Installation
Either install it or just run pre-build MultiVibeChat.exe :)
Prerequisites
- Python 3.8 or higher
- pip package manager
Setup
- Clone this repository:
git clone https://github.com/mato200/MultiVibeChat.git
cd MultiVibeChat
- Install required dependencies:
pip install PyQt6 PyQt6-WebEngine
- Run the application:
python MVC3.py
Usage
Basic Operation
- First Launch: The app will open with all four AI services loaded
- Login: Click "Login Mode" to enable manual login mode, then sign in to each service. I recommend signing in 1st to google's Ai studio
- Send Prompts: Type your prompt in the text box and press
Ctrl+Enteror click "Send to All" - Compare Responses: View responses from all AIs simultaneously
Keyboard Shortcuts
Ctrl+Enter- Send prompt to all AIsCtrl+Scroll- Zoom in/out in any panelAlt- Show URL barsCtrl+Shift+I- Open developer tools (right-click)
Profile Management
Creating Profiles:
- Type a new profile name in the Profile dropdown
- Click "Switch / Create"
- A new window will open with the new (browser) profile
Switching Profiles:
- Select an existing profile from the dropdown
- Click "Switch / Create"
Profiles store separate authentication states, cookies, and settings.
Login Mode
The "Login Mode" toggle allows manual interaction with websites:
- OFF (default): Prompts are automatically sent to all AIs
- ON: Disables automatic prompt injection, allowing you to manually interact with login pages
- idk if this is actually true lol, AI made a summary
Use Login Mode when:
- Signing in for the first time
- Handling two-factor authentication
- Dealing with OAuth flows
Pop-up Authentication
When services use OAuth pop-up windows (like Grok's Google sign-in):
- Click the sign-in button on the service
- A pop-up window will appear
- Complete the authentication (It asked me for 2FA confirm on my phone)
- The pop-up will auto-close when done
Alternatively, use the "🔐 Sign in with Google" button (dont really..) for a dedicated sign-in window.
Technical Details
Browser Compatibility
This application uses QtWebEngine (Chromium-based) and includes:
- Standard Chrome user agent
- Modern HTTP headers (sec-ch-ua, Sec-Fetch-*)
- JavaScript compatibility layers for Chrome APIs
- Popup window handling
Profile Storage
Profiles are stored in Home directory: E.g. C:\Users\MyName.multi_vibe_chat_profile_default
.multi_vibe_chat_profile_default/
.multi_vibe_chat_profile_work/
.multi_vibe_chat_profile_personal/
Each profile contains:
- Cookies and session data
- Local storage
- Cache
- IndexedDB data
Configuration
Last used profile is stored in .multi_vibe_chat_config.json
Troubleshooting
"This browser is not supported" errors
Some services may show browser compatibility warnings. Try:
- Enable "Login Mode" and sign in manually
- Use the dedicated sign-in dialog
- Update your PyQt6-WebEngine to the latest version
Sessions not persisting
Ensure the profile directories have write permissions:
chmod -R 755 .multi_vibe_chat_profile_*
Pop-ups not working
If OAuth popups don't open:
- Check that JavaScript is enabled (it should be by default)
- Try using the manual "🔐 Sign in with Google" button
- Use Login Mode and complete authentication in the main panel
Development
Project Structure
├── MVC3.py # Main application file
├── README.md # This file
└── .multi_vibe_chat_* # Profile directories (auto-generated)
Code Structure
RequestInterceptor- Adds standard HTTP headersCustomWebEnginePage- Handles navigation and popupsCustomWebEngineView- Main browser view with zoom supportMultiVibeChat- Main application window and logic
Privacy & Security
- All data is stored locally on your machine, except for queries you are sending to AI providers, obviously
- No telemetry or tracking
- Sessions are isolated per profile
- Use different profiles for different accounts
Note: This application stores credentials locally. Ensure your computer is secure and encrypted.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the GPL-3.0 license
Disclaimer
This software is provided for educational and personal use. Users are responsible for ensuring their use complies with the terms of service of any third-party AI services they access through this application.
Support
For issues, questions, or feature requests, please open an issue on GitHub.
Happy AI chatting! 🤖✨
