Open-source · v0.3.0 · Chrome 114+

One prompt.
Four perspectives.
A clearer answer.

Coordinate ChatGPT, Claude, Gemini, and Grok from one focused Side Panel. Multi-AI Chat uses the tabs you are already signed into: no model API keys and no separate chat backend.

  • No model API keys
  • No developer server
  • No tracking or telemetry
Multi-AI Chat Side Panel showing a four-provider Consult workflow
Current Side Panel preview with all four provider connections ready.
ChatGPT Claude Gemini Grok

Five ways to think

Choose the conversation, not the plumbing.

Compare answers in parallel or let the models challenge, review, and refine one another in a structured sequence.

01

Free

Send to every selected, ready provider in parallel. The fastest way to compare independent answers.

You → selected AIs
02

Debate

Assign opposing positions, ask a judge to weigh them, then synthesize the strongest result.

Pro → Con → Judge → Synthesis
03

Consult

Gather two independent answers, have another AI review them, then produce one final response.

2 answers → Review → Final
04

Coding

An eight-step loop for specification, review, implementation, testing, revision, and acceptance.

Plan → Build → Test → Accept
05

Roundtable

Four AIs build on the shared discussion across five rounds (twenty contributions in total).

5 rounds × 4 AIs

Five modes

New chats start on Free

Free sends one question to every provider you picked that is already Ready.

  1. Your question

    Every mode begins with this same sentence.

  2. Pick a mode

    The other four modes do not send at once. They pass the work from one role to the next.

  • a new chat is Free
  • Ready providers answer together
  • other modes take turns
Open the panel again and you get the mode saved with that chat.
  1. 你的問題

    哪個模式都從這同一句出發。

  2. 挑一個模式

    另外四個模式不一起送,而是一個角色接一個角色。

  • 新對話就是自由分送
  • Ready 的會一起回答
  • 其他模式輪流來
再打開面板時,會回到那則對話存好的模式。
  1. あなたの質問

    どのモードも、この一文から始まります。

  2. モードを選ぶ

    残りの四つは一度に送りません。役割から役割へ、作業を順に渡します。

  • 新しい会話は自由送信
  • Ready が一緒に答える
  • 他のモードは順番
パネルを開き直すと、その会話に保存されたモードに戻ります。
  1. Deine Frage

    Jeder Modus beginnt mit diesem einen Satz.

  2. Modus wählen

    Die anderen vier Modi senden nicht auf einmal. Sie geben die Arbeit von einer Rolle zur nächsten.

  • ein neuer Chat ist Frei
  • Ready antwortet zusammen
  • die anderen sind an der Reihe
Öffnest du das Panel wieder, kommt der Modus zurück, der mit diesem Chat gespeichert wurde.
  1. 당신의 질문

    어느 모드든 이 한 문장에서 시작합니다.

  2. 모드를 고른다

    나머지 네 모드는 한 번에 보내지 않습니다. 역할에서 역할로 일을 넘깁니다.

  • 새 대화는 자유 전송
  • Ready 가 함께 답한다
  • 다른 모드는 차례대로
패널을 다시 열면, 그 대화에 저장된 모드로 돌아갑니다.

Built for the imperfect web

A failed turn does not have to end the table.

If a provider fails during Roundtable, the run pauses and gives you three explicit choices.

  1. RetryStart a clean request with a fresh ID.
  2. Skip this turnContinue with a safe placeholder, never the provider's error text.
  3. CancelStop the workflow and reject active waiters.

Roundtable

A failed turn waits

Roundtable asks only when a provider reports an error.

  1. Retry

    It resets that provider, then sends a new request ID.

  2. Skip turn

    The next turn sees a fixed placeholder, not the error text.

  3. Cancel

    The run stops, and replies still in flight are dropped.

  4. Panel waits

    Nothing moves on until you choose.

  • retry sends a fresh ID
  • skip hides the error
  • cancel ends that run
The other modes do not stop to ask you.
  1. 重試

    先把那個 provider 清乾淨,再換一個新的 request ID。

  2. 略過這棒

    下一棒看到的是固定佔位句,不是 provider 的錯誤原文。

  3. 取消

    這次執行停掉,還沒回來的回覆也不算數。

  4. 面板在等

    你還沒選,後面就不會動。

  • 重試會換新的 ID
  • 略過不帶錯誤原文
  • 取消就結束這次
其他模式不會停下來問你。
  1. 再試行

    その provider を片付けてから、新しい request ID で送り直します。

  2. この発言を飛ばす

    次の発言に渡すのは決まったプレースホルダーで、エラー文そのものは渡しません。

  3. 中止

    この実行は止まり、まだ戻っていない返信も数えません。

  4. パネルが待つ

    選ぶまで、先には進みません。

  • 再試行は新しい ID
  • 飛ばすとエラー文は出ない
  • 中止でその実行は終わり
他のモードは、あなたに尋ねるために止まりません。
  1. Nochmal

    Der Provider wird zurückgesetzt, dann geht eine neue Request ID raus.

  2. Runde überspringen

    Die nächste Runde sieht einen festen Platzhalter, nicht den Fehlertext.

  3. Abbrechen

    Der Lauf stoppt, und Antworten, die noch unterwegs sind, zählen nicht.

  4. Das Panel wartet

    Weiter geht es erst, wenn du dich entscheidest.

  • Nochmal schickt eine neue ID
  • Überspringen versteckt den Fehler
  • Abbrechen beendet den Lauf
Die anderen Modi halten nicht an, um dich zu fragen.
  1. 다시 시도

    그 provider 를 정리한 뒤, 새 request ID 로 다시 보냅니다.

  2. 이 발언을 건너뛴다

    다음 발언이 보는 것은 고정된 자리표시이고, provider 의 오류 문장이 아닙니다.

  3. 취소

    이번 실행은 멈추고, 아직 돌아오지 않은 답도 치지 않습니다.

  4. 패널이 기다린다

    고르기 전에는 앞으로 가지 않습니다.

  • 다시 시도는 새 ID
  • 건너뛰면 오류 문장은 없다
  • 취소하면 그 실행은 끝
다른 모드는 당신에게 묻기 위해 멈추지 않습니다.

Small panel, deliberate engineering

Reliable enough for real workflows.

Connection recovery

Provider tabs are rediscovered after service-worker restarts, and packaged content scripts are repaired when needed.

Request isolation

Each request has its own ID, so a late answer cannot complete the wrong step or a later workflow.

Honest readiness

A provider becomes Ready only after its composer confirms that the signed-in page can accept input.

Local by default

Settings and up to 30 conversations stay in Chrome. Follow up, start fresh, or remove the extension to delete its storage.

Request path

Typed here, answered there

The Side Panel only talks to background.js. The content script types into the provider page you already have open.

  1. Side Panel

    You type the question here. This panel does not call a provider itself.

  2. Service worker

    background.js passes it on and waits for that request ID.

  3. Content script

    It fills the composer on the page and reads the reply that appears.

  4. Provider page

    ChatGPT, Claude, Gemini, or Grok receives it as a normal typed prompt.

  • typed in the Side Panel
  • background.js waits
  • the page shows the reply
Nothing here calls a model API, and there is no Multi-AI Chat server on the path.
  1. 側邊面板

    問題在這裡打。這個面板自己不聯絡 provider。

  2. 背景服務

    background.js 把問題送出去,並等那個 request ID 回來。

  3. 內容腳本

    它把字填進頁面上的輸入框,再把出現的回覆讀回來。

  4. 供應商頁

    ChatGPT、Claude、Gemini 或 Grok 收到的,就像你自己打上去的一樣。

  • 在側邊面板打字
  • background.js 在等
  • 回覆出現在那一頁
這條路不呼叫模型 API,中間也沒有 Multi-AI Chat 自己的伺服器。
  1. サイドパネル

    質問はここで打ちます。このパネル自身は provider を呼びません。

  2. 背景処理

    background.js が質問を渡し、その request ID が戻るのを待ちます。

  3. 内容スクリプト

    ページの入力欄に文字を入れ、現れた返信を読み取ります。

  4. 提供元のページ

    ChatGPT、Claude、Gemini、Grok は、自分で打った文として受け取ります。

  • サイドパネルで打つ
  • background.js が待つ
  • 返信はそのページに出る
この道はモデルの API を呼びません。途中に Multi-AI Chat のサーバーもありません。
  1. Side Panel

    Die Frage tippst du hier. Dieses Panel ruft selbst keinen Provider auf.

  2. Service Worker

    background.js gibt sie weiter und wartet auf diese Request ID.

  3. Inhaltsskript

    Es füllt das Eingabefeld auf der Seite und liest die Antwort, die dort erscheint.

  4. Providerseite

    ChatGPT, Claude, Gemini oder Grok bekommt sie wie einen normal getippten Text.

  • im Side Panel getippt
  • background.js wartet
  • die Antwort steht auf der Seite
Dieser Weg ruft keine Modell API auf, und dazwischen steht kein Server von Multi-AI Chat.
  1. 사이드 패널

    질문은 여기서 칩니다. 이 패널 자체는 provider 를 부르지 않습니다.

  2. 서비스 워커

    background.js 가 질문을 넘기고, 그 request ID 가 돌아오기를 기다립니다.

  3. 콘텐츠 스크립트

    페이지의 입력칸에 글을 넣고, 거기에 나타난 답을 읽어 옵니다.

  4. 제공자 페이지

    ChatGPT, Claude, Gemini, Grok 은 직접 친 글처럼 받습니다.

  • 사이드 패널에서 친다
  • background.js 가 기다린다
  • 답은 그 페이지에 나온다
이 길은 모델 API 를 부르지 않고, 중간에 Multi-AI Chat 서버도 없습니다.

Request IDs

Only that ID can finish

That ID keeps a late reply tied to the send that asked for it.

  1. New send

    Each send builds its ID from the workflow, the provider, and a random value.

  2. Match the ID

    This step ends only when the provider and the ID both match.

  3. Drop the late one

    If the ID is not the one this step is waiting on, the reply is ignored.

  • each send gets its own ID
  • only that pair can finish
  • late replies stay out
A late reply from an older send cannot touch a later workflow either.
  1. 新的送出

    每次送出時,ID 由 workflow、provider 和一段亂數組成。

  2. 核對 ID

    provider 和 ID 都對上,這一步才結束。

  3. 晚到不算

    ID 不是這一步在等的那組,這則回覆就當沒看到。

  • 每次送出都有自己的 ID
  • 只有那一組能完成
  • 晚到的回覆進不來
晚到的舊回覆,也碰不到之後的 workflow。
  1. 新しい送信

    送信のたびに、workflow と provider と乱数から ID を作ります。

  2. ID を照合

    provider と ID の両方が合って、初めてこの段は終わります。

  3. 遅い返信は捨てる

    ID がこの段の待ちと違うとき、その返信は見なかったことにします。

  • 送信ごとに自分の ID
  • その組だけが完了できる
  • 遅い返信は入れない
遅れて届いた古い返信は、後の workflow にも触れられません。
  1. Neues Senden

    Jedes Senden baut seine ID aus Workflow, Provider und einem Zufallswert.

  2. ID vergleichen

    Der Schritt endet nur, wenn Provider und ID beide stimmen.

  3. Späte Antwort verwerfen

    Stimmt die ID nicht mit der, auf die dieser Schritt wartet, wird die Antwort ignoriert.

  • jedes Senden hat eine eigene ID
  • nur dieses Paar darf fertig werden
  • späte Antworten bleiben draußen
Eine späte Antwort auf ein älteres Senden kommt auch an einen späteren Workflow nicht heran.
  1. 새 전송

    보낼 때마다 workflow, provider, 무작위 값으로 ID 를 만듭니다.

  2. ID 를 맞춘다

    provider 와 ID 가 둘 다 맞아야 이 단계가 끝납니다.

  3. 늦은 답은 버린다

    ID 가 이 단계가 기다리는 것이 아니면, 그 답은 못 본 것으로 합니다.

  • 보낼 때마다 자기 ID
  • 그 짝만 끝낼 수 있다
  • 늦은 답은 들어오지 않는다
늦게 온 이전 답은 나중 workflow 에도 닿지 못합니다.

Official Chrome Web Store release

Add Multi-AI Chat to Chrome.

The Chrome Web Store listing is v0.3.0 (updated 2026-09-23), and Chrome updates it automatically. Chrome rolls updates out gradually, so a given user may not have v0.3.0 yet. The versioned ZIP below is the same release, for manual installation.

1

Install from the Chrome Web Store

Open the official listing and choose Add to Chrome.

Get it from the Chrome Web Store →

New in v0.3.0: experimental Meta AI standby, off by default.

2

Sign in and ask

Pin Multi-AI Chat, open the Side Panel, then open and sign in to each provider once. When a composer is detected, that provider shows Ready.

3

Manual / developer install

Need the versioned files? Download the v0.3.0 ZIP and checksum, verify and extract it, then enable Developer mode at chrome://extensions and choose Load unpacked. That ZIP is the manual install for the same v0.3.0 release the store lists.

SHA-256

d7e976872d2e19cf8867ea7562c263d7de31f175e706ea44b67a204db3233d80
Show verification commands

Windows PowerShell

(Get-FileHash .\multi-ai-chat-store-v0.3.0.zip -Algorithm SHA256).Hash.ToLower()

macOS / Linux

shasum -a 256 multi-ai-chat-store-v0.3.0.zip
Read the GitHub v0.3.0 release notes →
Prefer to build from source?

Requires Chrome 114+, Node.js 22.18+, npm, and Git. After the build, load the generated dist/ folder.

git clone https://github.com/TED-H-com/multi-ai-chat.git
cd multi-ai-chat
npm ci
npm run verify

First run

Ready needs the composer

Each provider has to pass one check before it shows Ready.

  1. Install v0.3.0

    Use the Chrome Web Store, or load that same release ZIP unpacked.

  2. Open the panel

    The extension's toolbar button opens it.

  3. Check composer

    The content script looks for a composer that can take input.

  4. Shows Ready

    Then that provider is marked Ready, and Free can send to it.

  • v0.3.0 is the release
  • the Side Panel is open
  • the composer can take text
A tab that is merely open does not count.
  1. 裝這版

    可以從 Chrome 線上應用程式商店裝,或把同一版 ZIP 解開後載入。

  2. 打開面板

    點擴充功能的工具列按鈕就會開。

  3. 看輸入框

    內容腳本要找到一個能打字的輸入框。

  4. 顯示 Ready

    這時 provider 才標成 Ready,自由分送也才會送給它。

  • 版本是 v0.3.0
  • 側邊面板已打開
  • 輸入框可以打字
分頁只是開著,不算 Ready。
  1. v0.3.0 を入れる

    Chrome ウェブストアから入れるか、同じ版の ZIP を展開して読み込みます。

  2. パネルを開く

    拡張機能のツールバーボタンを押すと開きます。

  3. 入力欄を見る

    内容スクリプトは、文字を受け付ける入力欄を探します。

  4. Ready と出す

    そこで provider が Ready になり、自由送信の送り先に入ります。

  • 版は v0.3.0
  • サイドパネルは開いている
  • 入力欄は文字を受ける
タブが開いているだけでは、Ready になりません。
  1. v0.3.0 installieren

    Nimm den Chrome Web Store, oder lade dieselbe Release ZIP entpackt.

  2. Panel öffnen

    Der Knopf der Erweiterung in der Symbolleiste öffnet es.

  3. Eingabefeld prüfen

    Das Inhaltsskript sucht ein Eingabefeld, das Text annimmt.

  4. Zeigt Ready

    Dann wird der Provider als Ready markiert, und Frei kann an ihn senden.

  • die Version ist v0.3.0
  • das Side Panel ist offen
  • das Feld nimmt Text an
Ein Tab, der nur offen ist, zählt nicht als Ready.
  1. v0.3.0 설치

    Chrome 웹 스토어에서 설치하거나, 같은 판의 ZIP 을 풀어 불러옵니다.

  2. 패널을 연다

    확장 프로그램의 도구 모음 버튼을 누르면 열립니다.

  3. 입력칸을 본다

    콘텐츠 스크립트는 글을 받을 수 있는 입력칸을 찾습니다.

  4. Ready 를 표시

    그때 provider 가 Ready 로 표시되고, 자유 전송이 그쪽으로 보낼 수 있습니다.

  • 버전은 v0.3.0
  • 사이드 패널이 열려 있다
  • 입력칸이 글을 받는다
탭이 열려 있기만 해서는 Ready 가 아닙니다.

Private by architecture

Your conversations are not our product.

There is no Multi-AI Chat backend, analytics, tracking, advertising, or telemetry. Prompts go directly to the provider pages you select.

Read the full privacy policy

What stays local

Interface settings, up to 30 conversations, and an optional HackMD token live in chrome.storage.local. Provider content scripts cannot read that token.

What the extension accesses

sidePanel, tabs, scripting, and storage; host access is limited to ChatGPT, Claude, Gemini, Grok, and (only when you publish) api.hackmd.io. meta.ai is requested only after you activate Meta.

What leaves your device

The prompts you send to selected providers, plus the current conversation and your own token only if you explicitly publish to HackMD. Nothing is sent to the developer.

Trust line

Chats stay in Chrome

A prompt leaves only for a provider you selected, or for HackMD after you publish.

  1. Side Panel

    You read and type on this extension page.

  2. Service worker

    It delivers the prompt only to the provider tabs you picked.

  3. Provider page

    That site gets the prompt as if you had typed it there.

  4. HackMD

    api.hackmd.io is called only after you choose Publish, with your token.

  • up to 30 chats stay local
  • the token stays out of page scripts
  • HackMD waits for Publish
  • On this device
  • Trust line
  • Leaves the device
Settings and the optional HackMD token stay in chrome.storage.local. Nothing is sent to the developer.
  1. 側邊面板

    閱讀和打字都在這個擴充頁面上。

  2. 背景服務

    它只把問題送到你點選的那些 provider 分頁。

  3. 供應商頁

    那一站收到的內容,就像你親自打上去的。

  4. HackMD

    api.hackmd.io 只在你按發布之後,才會用你的 token 呼叫。

  • 最多 30 則留在本機
  • token 不給內容腳本
  • 發布才聯絡 HackMD
  • 在這台裝置
  • 信任界線
  • 離開裝置
設定和選用的 HackMD token 留在 chrome.storage.local。不會把東西送給開發者。
  1. サイドパネル

    読むのも打つのも、この拡張機能のページです。

  2. 背景処理

    選んだ provider のタブにだけ質問を届けます。

  3. 提供元のページ

    そのサイトが受け取る文は、自分で打ったものと同じです。

  4. HackMD

    api.hackmd.io を呼ぶのは、公開を選んだあとで、あなたの token を使います。

  • 会話は最大 30 件、この端末
  • token は内容スクリプトに渡さない
  • 公開してから HackMD
  • この端末
  • 信頼の境目
  • 端末の外
設定と、任意の HackMD token は chrome.storage.local に残ります。開発者には何も送りません。
  1. Side Panel

    Lesen und Tippen passiert auf dieser Erweiterungsseite.

  2. Service Worker

    Er liefert die Frage nur an die Provider Tabs, die du gewählt hast.

  3. Providerseite

    Die Seite bekommt den Text so, als hättest du ihn dort getippt.

  4. HackMD

    api.hackmd.io wird erst nach Veröffentlichen aufgerufen, mit deinem Token.

  • höchstens 30 Chats bleiben hier
  • das Token bleibt weg von den Seitenskripten
  • HackMD erst nach Veröffentlichen
  • Auf diesem Gerät
  • Vertrauensgrenze
  • Verlässt das Gerät
Einstellungen und das optionale HackMD Token bleiben in chrome.storage.local. An den Entwickler geht nichts.
  1. 사이드 패널

    읽고 치는 곳은 이 확장 프로그램 페이지입니다.

  2. 서비스 워커

    고른 provider 탭에만 질문을 전달합니다.

  3. 제공자 페이지

    그 사이트가 받는 글은, 거기서 직접 친 것과 같습니다.

  4. HackMD

    api.hackmd.io 는 게시를 고른 뒤에만, 당신의 token 으로 부릅니다.

  • 대화는 최대 30개, 이 기기
  • token 은 콘텐츠 스크립트에 안 준다
  • 게시한 뒤에 HackMD
  • 이 기기
  • 신뢰의 경계
  • 기기 밖
설정과 선택인 HackMD token 은 chrome.storage.local 에 남습니다. 개발자에게는 아무것도 보내지 않습니다.

Need a dedicated workspace?

Meet Multi-AI Chat Desktop.

Choose the desktop edition for isolated provider profiles, focused live WebViews, snapshots, replay, checkpoints, and local-file workflows.

Explore the desktop edition →