Claude Β· ChatGPT Β· Gemini Β· DeepSeek Β· Qwen Β· Grok Β· Perplexity Β· Copilot and more β side by side in one window. Type your prompt once and it goes to all of them at the same time. No API keys, no billing β each panel is a real, logged-in browser view.
| Tool | What it does | |
|---|---|---|
| π’ | Broadcast | Type once, hit Send to all (or Enter). Every panel also has its own β€. |
| π§© | AI picker | 19 built-in AIs + add your own by URL β with an Advanced editor for custom selectors. |
| π | Prompt library | Save prompts you reuse and drop them back into the composer in one click. |
| β¬οΈ | Export / compare | Grab every panel's latest answer into one Markdown file β prompt on top, one section per AI. |
| β | Command palette | β/Ctrl+K to run any action or jump to a panel, no mouse needed. |
| βοΈ | Settings | Default view, theme, paste-all, scroll-sync, and a User-Agent override β one home. |
| πͺ | Import logins | Pull auth cookies from Edge/Chrome (macOS/Windows/Linux) so you skip re-logging-in. |
| βοΈ AI picker + add your own | β Command palette (β/Ctrl+K) |
![]() |
![]() |
| π Prompt library | βοΈ Settings |
![]() |
![]() |
- π’ Broadcast to every panel β one prompt, all models, at once.
- π§© 19 built-in AIs + custom sites β Claude, ChatGPT, Gemini, Grok, Perplexity, Copilot, DeepSeek, Qwen, Le Chat (Mistral), Kimi, Meta AI, Poe, Pi, You.com, Doubao, Groq, HuggingChat, Character.AI, LMArena. Add any site by URL; teach it selectors via Advanced.
- π Dedicated login window β a real, full-size browser window sharing the panels' session (clean Chrome UA so Google/Cloudflare don't block sign-in). Log in once, everywhere.
- πͺ Import logins from Edge/Chrome β decrypts your existing cookies (like
yt-dlp --cookies-from-browser) on macOS, Windows and Linux. - πΌοΈ Paste an image to all panels β
β/Ctrl+Van image and it uploads into every AI (verified before the prompt sends). - ποΈ Built for focus β 2Γ2 grid β mobile columns, light/dark, drag headers to reorder, double-click to maximize, optional synced scroll,
β/βprompt history,β/Ctrl+Kcommand palette.
These sites block plain web embedding (Cloudflare bot checks + anti-iframe rules). Multi-AI sidesteps that entirely: every panel is a genuine Chromium browser view pointing at the real website. You use your own logged-in accounts β nothing is proxied, no keys, no per-token cost.
flowchart LR
U([You]) -->|one prompt| B["broadcast() Β· renderer/broadcast.js"]
B --> I1[inject β Claude webview]
B --> I2[inject β Gemini webview]
B --> I3[inject β DeepSeek webview]
B --> I4[inject β Qwen webview]
I1 & I2 & I3 & I4 --> S{{Real AI websites Β· your logged-in session}}
S -->|answers render in place| U
Each site in the catalog (renderer/catalog.js) holds its URL, login URL, brand color, and optional CSS selectors for the input box and send button. broadcast() injects a tiny script into every enabled panel to fill the box and click send.
Tech: Electron 33 (Chromium <webview> panels) Β· vanilla JS/HTML/CSS Β· no framework, no bundler, zero runtime dependencies. Auth persists in an Electron session partition; UI preferences in localStorage.
git clone https://github.com/battastudio/MulAI.git
cd MulAI
npm install # downloads Electron (~150 MB, one-time)
npm start # opens the Multi-AI windowFirst run: click Log in (or Import) and sign in to the AIs you want. If a panel shows a Cloudflare check, complete it right inside the panel β it's a real browser. Then type a prompt and Send to all.
Build a standalone app bundle:
npm run package:mac # β dist/Multi-AI-darwin-*
npm run package:win # β dist/Multi-AI-win32-x64 (build on/for Windows)
npm run package:linux # β dist/Multi-AI-linux-x64No .env, no config, no API keys. See docs/ for a page per tool.
multi_ai/
βββ main.js # Electron main process β window, login windows, IPC, UA spoof
βββ preload.js # contextBridge β window.multiai (IPC) + shared UA
βββ constants.js # single source of truth for the spoofed User-Agent
βββ renderer/ # the app, split into β€150-line modules on the window.MAI namespace
β βββ core.js # state, store, DOM refs, helpers (loads first)
β βββ catalog.js # the AI site registry (add a provider here)
β βββ inject-text.js # type-and-send payload injected into each panel
β βββ inject-file.js # image attach (file input + CDP drop) + preview verify
β βββ panels.js # render panels, drag-reorder, maximize
β βββ broadcast.js # the two-phase send
β βββ picker.js Β· prompt-library.js Β· settings.js Β· export.js
β βββ command-palette.js Β· shortcuts.js Β· toolbar.js Β· scroll-sync.js Β· image.js
β βββ app.js # boot + wiring (loads last)
βββ cookies/ # cross-platform cookie import (index dispatches by OS)
β βββ common.js Β· macos.js Β· windows.js Β· linux.js
βββ index.html # window shell + all modals
βββ styles.css # light/dark themes, panels, modals
βββ scripts/check-lines.js # the β€150-line CI gate
βββ build/icon.* # app icons (svg/png/icns/ico)
New here? Read CONTRIBUTING.md β it's the short rulebook that keeps this codebase small.
- Windows/Linux cookie import is code-complete but only lightly tested β the decrypt math has self-checks, but real-profile import was verified on macOS only. On Windows,
sqlite3must be onPATH. - Selectors can break. Injection depends on each site's CSS selectors. When a site redesigns its input/send button, that panel stops sending β fix it in
renderer/catalog.js(or, for a custom site, the picker's Advanced fields). - Some logins are device-bound. Google/Gemini cookies won't import; use the Log in window for those.
- Bot-detection sites. ChatGPT and Grok may challenge automation β complete any check inside the panel.
- Per-site image/answer support varies. Image paste and answer-export are best-effort heuristics across differing chat DOMs.
PRs welcome. The rules are deliberately short β see CONTRIBUTING.md. Before opening a PR: npm run lint (β€150 lines/file) and npm test (cookie self-checks) must pass, and update the README/docs/ for any user-facing change.
MIT Β© 2026 Hassan Al-Najjar
A personal productivity tool that automates your own logged-in sessions. Automating these websites may conflict with their Terms of Service β use responsibly, for personal use only.





