Stable release · v1.9.6

Four perspectives. One deliberate answer.

Ask once, then let your signed-in ChatGPT, Claude, Gemini, and Grok web sessions answer, review, challenge, and refine one another in a dedicated desktop workspace.

No API keys · no analytics · local provider profiles · MIT licensed

The four AI-Sister characters together
A workflow, not a tab wall One workspace. Four live sessions.
Feature-frozen

Maintenance mode: four active web sessions by default, with optional experimental Meta AI as a fifth standby. Compatibility, security, accessibility, and release-critical fixes continue.

Latest release →

Start here

Install the stable desktop release.

Choose the artifact for your computer, then sign in on each provider's real page. The control pane never asks for or stores your password.

⊞Verified

Windows

x64 · .exe / .zip

Windows 10/11. Choose the installer or portable build. Unsigned artifacts may trigger SmartScreen; WebView2 is required.

Open downloads →
●Partially verified

macOS

Apple Silicon · .dmg

Ad-hoc signed, not notarized. Use Privacy & Security → Open Anyway after the first launch attempt. No Intel artifact.

Open downloads →
⌁CI-only

Linux

x86_64 · .AppImage

Make the AppImage executable before opening it. Packaging passes CI; a current maintainer real-device report is still needed.

Open downloads →

First run: connect your own sessions

Open ChatGPT, Claude, Gemini, and Grok once, then complete each official sign-in flow. Meta AI is optional in Settings. Accounts, subscriptions, regional rules, quotas, and security challenges still apply.

First run

Sign in on their page

v1.9.6 never asks for the password. A pane is Ready only when its composer can take input.

  1. Get v1.9.6

    Pick the Windows, Apple Silicon, or Linux file.

  2. Sign in there

    Finish that provider's own sign-in inside its WebView.

  3. Check composer

    Signed-out Grok shows Sign in, even when a send button is still there.

  4. Start a workflow

    Quotas, regional availability, and security checks still belong to the provider.

  • the app never asks for a password
  • signed-out Grok says Sign in
  • a composer can take input
No Intel Mac build is published.
  1. 下載這版

    選 Windows、Apple Silicon 或 Linux 的檔案。

  2. 在頁面登入

    在那個 provider 的 WebView 裡完成它自己的登入。

  3. 看輸入框

    沒登入的 Grok 會顯示 Sign in,就算送出鈕還在。

  4. 開始流程

    配額、地區能不能用、安全檢查,還是 provider 的事。

  • 這支程式不問密碼
  • 未登入 Grok 顯示 Sign in
  • 輸入框能接受打字
目前沒有 Intel Mac 的版本。
  1. v1.9.6 を取る

    Windows、Apple Silicon、Linux のどれかのファイルを選びます。

  2. ページでログイン

    その provider 自身のログインを、その WebView の中で終えます。

  3. 入力欄を見る

    未ログインの Grok は Sign in と出します。送信ボタンが残っていてもです。

  4. workflow を始める

    枠、その地域で使えるか、安全確認は、今も provider 側の話です。

  • このアプリはパスワードを聞かない
  • 未ログインの Grok は Sign in
  • 入力欄が文字を受ける
Intel Mac 向けの版は公開されていません。
  1. v1.9.6 holen

    Nimm die Datei für Windows, Apple Silicon oder Linux.

  2. Dort anmelden

    Schließe die eigene Anmeldung des Providers in seinem WebView ab.

  3. Eingabefeld prüfen

    Abgemeldetes Grok zeigt Sign in, auch wenn der Senden Knopf noch da ist.

  4. Workflow starten

    Kontingente, regionale Verfügbarkeit und Sicherheitsprüfungen bleiben beim Provider.

  • die App fragt nie nach dem Passwort
  • abgemeldetes Grok sagt Sign in
  • das Feld nimmt Text an
Für Intel-Macs gibt es keinen Build.

Stable release · v1.9.6

v1.9.6 handles ChatGPT's Chat/Work layout and signed-out Grok.

v1.9.6 follows ChatGPT's newer Chat/Work layout and shows signed-out Grok as Sign in instead of Ready.

01

ChatGPT's Chat/Work layout

Some ChatGPT accounts now get a newer page layout without the markers the app used to follow a conversation. The app confirms the send from your message bubble, reads only the final answer, and waits for the answer's action row before finishing. Controls on your own message never count as a finished answer.

02

Signed-out Grok shows Sign in

Anonymous grok.com shows Sign in / Sign up as links and keeps its send button, so the pane used to say Ready. It now shows Sign in, both on the homepage and on Grok's sign-up paywall after a send.

03

A replaced page fails the step

Since v1.9.5, a step waiting on a provider fails when that provider's page is replaced mid-turn, instead of silently waiting out the timeout. Detection is a new bootId. The prompt is not re-sent to the replacement page: a re-send could double-send if the original send had landed.

04

Composer fill is measured

Advisory STATUS_REPORT fields fill, fillChars, and fillMs carry character counts only. Prompt text never goes into the payload or the event log.

Choose the conversation shape

Six presets. More than six answers.

Compare quickly, challenge an argument, build software plans, or spend a full session turning many perspectives into a decision.

01

Free

Selected providers answer in parallel for fast comparison and image prompts.

Parallel · selected providers
02

Debate

Pro, con, judge, and synthesis roles stress-test a decision or argument.

4 roles · sequential
03

Consult

Two independent answers feed a review and a final recommendation.

Parallel + review
04

Coding

Specification, reviews, implementation passes, tests, acceptance, and final output.

8 structured steps
05

Roundtable

Four seats carry same-session history through five adversarial rounds.

5 rounds · 20 contributions
06

Brainstorm

Rotating lenses move from framing and divergence to a decision-ready portfolio.

12 rounds · 48 contributions

Brainstorm is intentionally substantial: keep all four sessions signed in and allow about 45 to 90 minutes. Preflight identifies an unavailable role instead of silently replacing it.

Six presets

New chats start on Free

Free asks the providers you picked, all at once. The other presets give each role a turn.

  1. Your question

    Whichever preset you pick, it starts from this one question.

  2. Pick a preset

    Free sends right away. Every other preset runs preflight before its first role.

  • a new chat opens on Free
  • parallel, or role by role
  • preflight can stop the run
Preflight stops the run when a provider is not ready, or when one provider holds two roles.
  1. 你的問題

    你選哪個 preset,都從這一個問題開始。

  2. 挑 preset

    自由分送馬上送出。其他 preset 會先跑 preflight,才輪到第一個角色。

  • 新對話開在自由分送
  • 平行,或一個角色一個
  • 沒過 preflight 就不跑
只要有 provider 還沒就緒,或同一家佔了兩個角色,preflight 就會擋下來。
  1. あなたの質問

    どの preset を選んでも、この一つの質問から始まります。

  2. preset を選ぶ

    Free はすぐに送ります。他の preset は、最初の役割の前に preflight を走らせます。

  • 新しい会話は Free で開く
  • 並列か、役割ごと
  • preflight を通らないと走らない
準備できていない provider があるとき、または一つの provider が二つの役割を持つときは、preflight で止まります。
  1. Deine Frage

    Welches Preset du auch wählst, es beginnt mit dieser einen Frage.

  2. Preset wählen

    Frei sendet sofort. Jedes andere Preset macht vor der ersten Rolle eine Vorprüfung.

  • ein neues Gespräch öffnet auf Frei
  • parallel oder Rolle für Rolle
  • fällt die Vorprüfung durch, läuft es nicht
Die Vorprüfung hält den Lauf an, wenn ein Provider nicht bereit ist oder ein Provider zwei Rollen hat.

Brainstorm

Brainstorm waits for you

A provider error stops Debate, Consult, Coding, and Roundtable. Free keeps going.

  1. Retry

    It stops that provider, resets its pull, and runs the step again.

  2. Skip seat

    The answer becomes a fixed placeholder, so the error text is not kept.

  3. Cancel

    The workflow aborts, and providers still working are stopped.

  4. Brainstorm waits

    The run stays here until you choose.

  • retry runs that step again
  • skip keeps a placeholder
  • cancel ends the workflow
On a provider error, the other presets do not ask you.
  1. 再跑一次

    先停掉那個 provider,清掉 pull 狀態,再跑一次。

  2. 略過這席

    回答改成固定佔位句,錯誤原文不會留下來。

  3. 取消

    workflow 中止,還在忙的 provider 也停下來。

  4. 激盪在等

    你還沒選,這次就停在這裡。

  • 重試會再跑那一步
  • 略過只留佔位句
  • 取消會結束流程
provider 出錯時,其他 preset 不會問你。
  1. もう一度

    その provider を止め、pull の状態を消して、もう一度その段を走らせます。

  2. この席を飛ばす

    答えは決まったプレースホルダーになり、エラー文は残りません。

  3. 中止

    workflow は中止になり、まだ動いている provider も止まります。

  4. Brainstorm が待つ

    選ぶまで、この実行はここに留まります。

  • 再試行はその段をもう一度
  • 飛ばすと置き文だけ残る
  • 中止で workflow は終わり
provider のエラーでは、他の preset はあなたに尋ねません。
  1. Nochmal

    Er stoppt diesen Provider, setzt den Pull zurück und führt den Schritt noch einmal aus.

  2. Sitz überspringen

    Die Antwort wird ein fester Platzhalter, der Fehlertext bleibt nicht.

  3. Abbrechen

    Der Workflow bricht ab, und Provider, die noch arbeiten, werden gestoppt.

  4. Brainstorming wartet

    Der Lauf bleibt hier, bis du dich entscheidest.

  • Nochmal führt den Schritt erneut aus
  • Überspringen lässt einen Platzhalter
  • Abbrechen beendet den Workflow
Bei einem Fehler des Providers fragen dich die anderen Presets nicht.

Local-first by design

Your sessions stay yours.

The app coordinates real provider pages while keeping its own state on your computer. It adds workflow, not another conversation cloud.

  1. 1

    Sign in directly

    Each provider runs in a separate local WebView profile. The app never asks for your password.

  2. 2

    Choose a workflow

    Select parallel targets or assign structured roles; unavailable providers are surfaced before a serial run.

  3. 3

    Review one transcript

    Read chronological results, inspect the live provider when needed, then continue or start a clean conversation.

Message path

Rust carries the prompt

You type in the local control pane. That pane does not reach the provider page on its own.

  1. Control pane

    The TypeScript workflow engine runs in this pane.

  2. Rust core

    Rust types the question into that page and pulls the answer back.

  3. Page script

    The injected script fills the composer on that page.

  4. Provider page

    The signed-in page receives the prompt.

  • typed in the control pane
  • Rust pulls the reply back
  • the provider page receives it
No API key is used, and there is no Multi-AI Chat server on the path.
  1. 控制窗格

    TypeScript 的 workflow 引擎就跑在這個窗格裡。

  2. Rust 核心

    Rust 把問題打進那一頁,再把回答拉回來。

  3. 頁面腳本

    注入的腳本把問題填進那一頁的輸入框。

  4. 供應商頁

    已登入的那一頁會收到這個問題。

  • 在控制窗格打字
  • Rust 把回覆拉回來
  • 供應商頁收到問題
這條路不用 API 金鑰,中間也沒有 Multi-AI Chat 自己的伺服器。
  1. 制御ペイン

    TypeScript の workflow エンジンは、このペインで動きます。

  2. Rust の中核

    Rust がそのページに質問を打ち、答えを引き戻します。

  3. 注入スクリプト

    注入されたスクリプトが、そのページの入力欄に質問を入れます。

  4. 提供元のページ

    ログイン済みのページが、その質問を受け取ります。

  • 制御ペインで打つ
  • Rust が返信を引き戻す
  • 提供元のページが受け取る
API キーは使いません。途中に Multi-AI Chat のサーバーもありません。
  1. Steuerfeld

    Die TypeScript Workflow Engine läuft in diesem Feld.

  2. Rust Kern

    Rust tippt die Frage in diese Seite und holt die Antwort zurück.

  3. Seitenskript

    Das eingesetzte Skript füllt das Eingabefeld auf dieser Seite.

  4. Providerseite

    Die angemeldete Seite empfängt die Frage.

  • im Steuerfeld getippt
  • Rust holt die Antwort zurück
  • die Providerseite empfängt sie
Es wird kein API-Schlüssel verwendet, und dazwischen steht kein Server von Multi-AI Chat.

Two editions, one idea

Pick the workspace that fits.

Both editions use your signed-in web sessions without API keys. The difference is how much workflow and local tooling you want around them.

Desktop and browser extension comparison
FeatureDesktopBrowser extension
Best forDedicated workflows and local continuityLightweight work inside Chrome
WorkspaceTauri app with isolated provider profilesSide Panel plus your existing tabs
Local toolsSessions, snapshots/replay, diagnostics, text filesBrowser-native, compact controls
Shared foundationFour real web sessions · zero API keysReal provider tabs · zero API keys

A narrow trust boundary

No API keys. No telemetry. No hidden relay.

Your prompts go to the providers you select. The app does not add an account server or analytics layer between you and them.

Provider webviews receive zero Tauri permissions
  • Cookies and provider profiles remain in local app data, isolated per provider.

  • Only the bundled local control pane can call app commands.

  • Adapter updates are schema-validated JSON and cannot expand bundled URL scopes.

  • Snapshots are opt-in, local, and use one of four frozen privacy tiers.

  • Diagnostics exclude page text, input values, cookies, storage, queries, and fragments.

  • Exports, debug bundles, and share actions require an explicit user action.

Trust line

Only the pane can call

Provider pages load inside the app, but they stay on the far side of the trust line.

  1. Control pane

    The capability file names only this pane, so only it can call commands.

  2. Local profiles

    Each provider's cookies stay in its profile under local app data.

  3. Provider WebView

    These WebViews can't call Tauri, and they have no remote.urls grant.

  • only this pane calls commands
  • cookies stay in the profile
  • the provider page is past the line
  • On this computer
  • Trust line
  • Provider page
Snapshots stay off until you turn them on. They stay on this computer, never include cookies, and are never uploaded.
  1. 控制窗格

    capability 檔只寫了這個窗格,所以只有它能下命令。

  2. 本機資料

    每家的 cookie 都留在本機 app data 裡的那個 profile。

  3. WebView

    這些 WebView 呼叫不了 Tauri,也沒有 remote.urls。

  • 只有這個窗格能呼叫
  • cookie 留在 profile
  • 供應商頁在界線外
  • 在這台電腦
  • 信任界線
  • 供應商頁面
快照先是關的,要你打開才會存。它們留在這台電腦,沒有 cookie,也不會上傳。
  1. 制御ペイン

    capability ファイルに書いてあるのはこのペインだけなので、コマンドを呼べるのもここだけです。

  2. ローカルの profile

    各 provider の cookie は、ローカルの app data にある自分の profile に残ります。

  3. WebView

    これらの WebView は Tauri を呼べず、remote.urls もありません。

  • 呼べるのはこのペインだけ
  • cookie は profile に残る
  • 提供元のページは境目の外
  • このパソコン
  • 信頼の境目
  • 提供元のページ
スナップショットは、自分でオンにするまでオフです。このパソコンに残り、cookie は含まず、アップロードもしません。
  1. Steuerfeld

    Die Capability nennt nur dieses Feld, also kann nur es Befehle aufrufen.

  2. Lokale Profile

    Die Cookies jedes Providers bleiben in seinem Profil unter den lokalen App-Daten.

  3. Provider WebView

    Diese WebViews können Tauri nicht aufrufen und haben kein remote.urls.

  • nur dieses Feld ruft Befehle auf
  • Cookies bleiben im Profil
  • die Anbieterseite liegt hinter der Grenze
  • Auf diesem Computer
  • Vertrauensgrenze
  • Anbieterseite
Snapshots bleiben aus, bis du sie einschaltest. Sie bleiben auf diesem Computer, enthalten keine Cookies und werden nicht hochgeladen.

Honest boundaries

Automation follows changing websites.

Evidence is reported as evidence, not as a promise that every provider, account, or platform path works today.

Provider changes

A DOM or login-flow change can temporarily break automatic input, send, or completion detection until an adapter update ships.

Account rules remain

Subscriptions, quotas, regional rules, and challenges still apply. Claude requires login; Gemini and Grok blocks need user action.

Platform evidence differs

Windows launch is verified, macOS Apple Silicon is partially verified, and Linux packaging is currently CI-only.

These changes are not live-retested

The v1.9.6 changes have automated coverage only and have not been retested live. No Chat/Work account was available, and no signed-in Grok page was captured live, so the next live check is a Chat/Work account sending one prompt automatically and a signed-in Grok pane staying Ready. Installed apps pick up the Grok and ChatGPT adapter updates through the adapter update (at startup and every six hours) since 2026-09-30, but the ChatGPT Chat/Work engine changes need v1.9.6. An engine that goes silent or wedges while its page is never replaced still waits out the 10-minute inactivity window and the 60-minute absolute cap. Meta stays on inputStrategy: "default". Meta stop, new-session reset, and profile persistence remain unverified. Prior Windows launch evidence, the earlier Apple Silicon three-provider login report, and Linux CI-only packaging remain the current platform record. There is no new Windows, macOS, or Linux launch check for v1.9.6.

Frozen product scope

v1.9.6 keeps five choices with exactly four active. Meta AI is experimental, optional, and standby by default. Guest, email/mobile, or Facebook/Instagram sign-in must finish in the Meta pane. No sixth provider, marketplace, graph editor, embedded terminal agent, telemetry, self-updater, or new snapshot schema is planned.

Adapter refresh

Only a newer file lands

A newer adapter file can replace the one already in the app.

  1. Fetch JSON

    This happens at startup, then again every six hours.

  2. Check scope

    The file must match the schema, and no URL may widen the bundled hosts.

  3. Keep current

    A failed, older, or same version file leaves the current adapter in place.

  • fetched on its own
  • wider URLs are rejected
  • a bad file is not applied
It has to pass the checks before it replaces yours.
  1. 抓 JSON

    啟動時抓一次,之後每六小時再抓。

  2. 檢查範圍

    檔案要符合 schema,而且網址不能比內建的主機清單更寬。

  3. 留著現版

    失敗、較舊或同一版的檔,都讓現在的 adapter 繼續留著。

  • 程式自己會去抓
  • 更寬的網址過不了
  • 不合格的檔不套用
要換上去,還得先通過檢查。
  1. JSON を取る

    起動時に一度、その後は六時間ごとに取ります。

  2. 範囲を見る

    ファイルは schema に合い、どの URL も同梱のホストより広くてはいけません。

  3. 今の版を残す

    失敗したファイル、より古いファイル、同じ版のファイルは、今の adapter を残します。

  • アプリが自分で取る
  • 広い URL は通らない
  • 不合格なファイルは入れない
置き換える前に、検査を通らなければなりません。
  1. JSON holen

    Einmal beim Start, danach alle sechs Stunden.

  2. Umfang prüfen

    Die Datei muss zum Schema passen, und keine URL darf die mitgelieferten Hosts erweitern.

  3. Aktuelle Fassung lassen

    Eine fehlgeschlagene, ältere oder gleich alte Datei lässt den aktuellen Adapter stehen.

  • holt sie von selbst
  • weitere URLs kommen nicht durch
  • eine schlechte Datei wird nicht angewendet
Sie muss die Prüfung bestehen, bevor sie deine ersetzt.

Open source, maintenance-minded

Built for people who want more than the first answer.

Multi-AI Chat Desktop is MIT-licensed software by Ted Huang / TED-H, sponsored by AI-Sister.com. Issues and pull requests are welcome within the frozen maintenance scope.

Ready when your sessions are

Ask once. Make the answers work together.

Download v1.9.6 →