A Chrome Extension that displays multiple AI chats side-by-side in a single page and synchronizes text input across all of them.
- Side-by-side view — All enabled AI chats displayed as iframes in a split-pane layout on one page
- Synchronized typing — Type in any AI chat and your text appears in all others in real-time
- Simultaneous submit — Press Enter in one chat and all connected chats submit the same prompt
- Persistent sync — Sync continues working across multiple conversation turns, surviving SPA navigation
- Configurable services — Choose which AI chats to display from the settings panel:
- ChatGPT (
chatgpt.com) - Google Gemini (
gemini.google.com/app) - Grok (
grok.com) - Claude (
claude.ai) - v0 (
v0.app) - for development
- ChatGPT (
- Sync toggle — Disable sync for independent follow-up messages
- Keyboard shortcut —
Ctrl+Shift+E(Mac:⌘+Shift+E) to open the dashboard
You can ask v0 to open this repository make changes and you can follow below installation steps with your custom triple-ai
- Download this repo as ZIP file
- Open Chrome and go to
chrome://extensions/ - Enable Developer mode (toggle in top-right)
- Click Load unpacked
- Select the
triple-aiproject folder - Done. to use it click the extension icon in the toolbar and pin it
- Check Ctrl+Shift+E shortcut (if not working, try enabling it
chrome://extensions/shortcuts
- Click the extension icon to open the Dashboard in a new tab
- Click the gear icon to open Settings and toggle AI services on/off
- Enabled services load automatically as side-by-side iframes
- Start typing in any AI chat — your text syncs to all others
- Press Enter to submit to all chats simultaneously
- Use the sync toggle in the toolbar to disable/enable sync
triple-ai/
manifest.json # Chrome Extension manifest (V3)
rules.json # Header stripping rules for iframe embedding
background/
service-worker.js # Coordinates sync between iframe frames
content-scripts/
chatgpt.js # ChatGPT DOM adapter
gemini.js # Gemini DOM adapter
grok.js # Grok DOM adapter
claude.js # Claude DOM adapter
sync-engine.js # Shared sync logic
dashboard/
dashboard.html # Full-screen split-pane iframe layout
dashboard.js # Dashboard logic
dashboard.css # Dashboard styles
icons/
icon16.png / icon48.png / icon128.png
- Dashboard — Full-screen Chrome tab with a toolbar and split-pane iframe layout. Each enabled AI service gets its own iframe panel. Settings slide-over panel lets you toggle services.
- Header Stripping —
declarativeNetRequestrules removeX-Frame-OptionsandContent-Security-Policyheaders from AI chat responses so they can be embedded in iframes. - Content Scripts — Site-specific DOM adapters injected into each iframe (
all_frames: true). Detect input changes, set text, and trigger submit. - Service Worker — Central coordinator. Tracks frames by
{tabId, frameId}. Routes text changes and submit events between frames. - Sync Engine — Shared module loaded alongside each adapter. Handles debouncing, echo-loop prevention, and message passing.
This extension removes certain HTTP security headers from AI chat domains to allow iframe embedding. Here's what you should know:
What headers are stripped and why:
X-Frame-OptionsandContent-Security-Policy— these normally prevent a site from being embedded in an iframe. Removing them is required for the side-by-side layout to work.Cross-Origin-Opener-Policy,Cross-Origin-Embedder-Policy,Cross-Origin-Resource-Policy— cross-origin isolation headers that block iframe embedding.
Mitigations in place:
- Header stripping is restricted to
sub_framerequests only — visiting ChatGPT, Gemini, or Grok in a normal browser tab is not affected. All their security headers remain intact. - Content scripts (sync engine) only activate inside the TripleAI dashboard tab. They do nothing when you visit AI chat sites in normal tabs.
- The extension does not collect, store, or transmit any of your conversation data. All sync happens locally between iframes in the same browser tab.
Chrome sometimes ignores the extension's suggested shortcut if another extension already uses it. To fix:
- Go to
chrome://extensions/shortcuts - Find TripleAI
- Click the pencil icon next to the shortcut field
- Press your desired shortcut (e.g.,
Ctrl+Shift+E) - If Chrome warns about a conflict, confirm to override
- Go to
chrome://extensions/shortcuts - Find TripleAI
- Click the pencil icon and press your preferred key combination
- Any valid combination works — Chrome will warn you if it conflicts with a built-in shortcut
You can also always open the dashboard by clicking the TripleAI icon in the Chrome toolbar.
No. The security header stripping only applies to sub_frame (iframe) requests. When you visit chatgpt.com, gemini.google.com, or grok.com in a normal browser tab, all their security headers (Content-Security-Policy, X-Frame-Options, etc.) are fully intact and enforced. The content scripts also detect whether they're running inside the dashboard and do nothing in normal tabs.
- DOM selectors for each AI chat may need updating if the services change their interfaces.
- Settings persist across browser restarts via
chrome.storage.local. - Some AI services may have additional JavaScript-based iframe detection that could prevent embedding.