Guides ·
Hop Gemini to Grok
Chat Transfer hops Gemini to Grok in Chrome by pasting a wrapped handoff from the open Gemini thread on gemini.google.com into Grok’s composer at grok.com locally — Full, Last N, or last assistant — without account migration and without silent-send.
Version 0.4.0 is live on the Chrome Web Store. Soft Auto-Send stays opt-in and default off. Preferences live in chrome.storage.local. 0.4.0 also ships a local Library (archive → search → continue on this device); that is the longer-lived product direction, and this hop guide stays valid. Add to Chrome
What “hop Gemini to Grok” means here
People search “hop Gemini to Grok,” “transfer Gemini chat to Grok,” or “continue Gemini thread in Grok” for two different jobs. Chat Transfer only does the first:
| Job | What moves | Chat Transfer |
|---|---|---|
| Hop current thread | The Gemini chat you have open on gemini.google.com: Full, Last N, or last assistant → Grok composer at grok.com | Yes. Copy and export stay on this device too |
| Full-account migration | Gemini Gems, custom instructions, and Google-account memories — or Grok / xAI history and memories | No |
| Keep two sites in sync | An ongoing mirror after the hop, including TransferLLM-style account sync | No. One hop does not watch later messages |
| Send | Who presses Send on Grok | Paste never silent-sends. Soft Auto-Send is opt-in, default off, and asks once |
Gemini into ChatGPT instead of Grok: Hop Gemini to ChatGPT. ChatGPT into Grok: Hop ChatGPT to Grok. Claude into Grok: Hop Claude to Grok. Same extension, same local paste; this page starts on Gemini and lands in Grok.
Where the hop reads Gemini, and where Grok lands
Open the Gemini thread you want to continue — a chat on https://gemini.google.com/, not an empty new chat. The Gemini adapter matches gemini.google.com and the legacy bard.google.com host (including those subdomains). Extract reads visible turns from public hooks such as user-query / model-response (and related data-test-id / data-testid text). Hashed Angular class names are not the primary hooks. A hop from Bard still lands on Grok, not Bard.
Open target always opens Grok’s canonical new-chat URL (https://grok.com/) and pastes there. It does not append into an existing Grok conversation, and it does not keep Gemini and Grok in sync after you send. Host access also includes grok.x.ai and x.com / twitter.com paths under /i/grok so Copy / Export / hop from a tab already on those Grok surfaces can still read the open thread. A hop toward Grok still lands on grok.com, not inside an X Grok drawer. Destination Send is Grok’s control (grokSendButton / Send), never Gemini’s.
Grok’s composer is a TipTap / ProseMirror box. Chat Transfer writes the hop with DOM events; it does not call page-world editor APIs. If the box is empty after land, paste the hop backup yourself — Soft Auto-Send does not run on a failed land. Before inject, if Grok’s composer already has a stale draft, paste land best-effort clears once, then pastes the exact hop preview.
Steps: Gemini → Grok in Chrome
- Add Chat Transfer from the Chrome Web Store (0.4.0).
- Open the Gemini chat you want to continue in Grok (a thread on gemini.google.com, not an empty new chat). The adapter also detects the legacy bard.google.com host; the hop still lands on grok.com, not Bard.
- Open the popup or side panel → pick a hop payload (Full, Last N, or last assistant) → choose Open target / hop toward Grok (or the hop-to-last-used shortcut if you bound Grok last).
- Grok’s new-chat page (
https://grok.com/) gets a best-effort paste into the composer. If the box is empty, paste the hop backup yourself — Soft Auto-Send does not run on a failed land. - You click Send on Grok — unless Soft Auto-Send is on (see below).
Extract runs only when you hop, Copy, or Export. Chat Transfer does not scrape Gemini in the background. The wrapped hop names Gemini as the source (“The following is a transcript from Gemini… Absorb it as context and continue from the last turn…”) and, when the tab URL is http(s), adds a Source: line with query, hash, and credentials stripped. Copy and Export stay unwrapped — no hop wrapper and no Source: line. Longer install walkthrough: How to use.
Optional Also open can open one more Site with the same hop preview (from Gemini with Grok selected, that extra Site is Claude). Status still says you need to press Send on each destination. There is no third destination.
What the Gemini extract actually keeps
Gemini’s page mixes turns with chrome, thoughts, and optional Gem panels. Chat Transfer reads the open thread from public hooks (user-query / model-response and related text), then filters:
- Cheap Gemini chrome is not a turn. Copy, Good / Bad response, Regenerate, Show more / Show less, Thoughts / Thinking, Google it, Sources, Export to Docs, Modify response, Double-check, Listen, and Share stay out of the hop.
- Thought containers stay out. Nodes such as
model-thoughtsandthoughts-containerare skipped, so Gemini “thinking” is not pasted into Grok as assistant text. - Gems / custom instructions are panel-only. A system turn is read only when those instruction panels are currently in the DOM. A usual plain Gemini chat returns no system prompt. Checking Keep system prompt does not invent a Gem. The Gem itself is not rebuilt inside Grok.
- Empty assistant honesty. If a Gemini assistant turn is in the extract list but its trimmed body is empty (the model-response slot is there; the paragraphs did not land), hop status says to check the page before hopping — it does not invent reply text.
- Scroll cap honesty. Scroll & extract stops after 12 attempts. If the turn count was still growing, status can remind once on the next successful Open target: “Last extract hit the scroll cap. More turns may remain.”
- Visible attachments become
[attachment not exported: …]— file bytes are not invented, and Gemini canvases / uploaded images are not re-attached in Grok.
Code blocks use Gemini’s ordered DOM fences when those <pre> or Gemini code-block shells are present: a heading becomes an ATX Markdown heading, a rendered code block becomes a fenced block with a language tag when the page shows one, and the prose between them stays between them. Headings and fences are not zipped by index. If that walk is empty or loses most of the visible text, the previous innerText path stays so a plain user bubble does not go hollow. Chat Transfer does not mint fences from guessed live markup when the extract missed them.
Payload choices for a Grok hop
- Full — the turns read from the open Gemini page, wrapped with a short continue line for Grok.
- Last N — the last N turns. N starts at 10. Presets set 4, 8, or 16. Useful when the Gemini thread is long and you only need recent context in Grok.
- Last assistant — only the last assistant reply from Gemini, when you want Grok to react to that answer alone.
Hop / Copy / Export / Overflow: Hop pastes the wrapped preview. Copy puts the unwrapped transcript on the clipboard. Export downloads Markdown on this device (same unwrapped transcript as Copy). Over about 12k characters, Grok’s composer gets a short Last N (or compact) paste and the full Markdown downloads as a .md so a cut is not silent. Copy and Export stay the full unwrapped transcript — no hop wrapper. See Overflow paste.
Soft Auto-Send stays opt-in (default off)
A hop paste into Grok does not silent-send. Soft Auto-Send is opt-in (hopSoftAutoSend in chrome.storage.local, default off). After a successful paste it asks once: “Send this hop now?” Confirm presses Grok Send once; Cancel leaves the paste; a failed paste never asks. There is no upgrade path that turns the box on for existing installs. Full walkthrough: Soft Auto-Send. Same facts as the privacy policy (2026-10-09).
When the setting is on, Confirm is one best-effort press — not a retry loop. If Send is not pressable on the first look, Chat Transfer polls briefly (about two seconds) before one click; if that still misses, it may dispatch one plain Enter on the composer. That is the whole press budget for that hop. Try attach full.md can put a file in the box; that path still never clicks Send.
Local only — chrome.storage, no backend
Chat Transfer is a local-only Chrome extension. Settings (Demo mode, Keep system prompt, hop payload, last-used target, Soft Auto-Send) stay in on-device chrome.storage.local. There is no Chat Transfer backend; the marketing site does not receive hop text. Host access is only Claude, ChatGPT, Gemini, and Grok domains — including gemini.google.com, bard.google.com, grok.com, grok.x.ai, and x.com/i/grok. Soft Auto-Send adds no host_permissions and no downloads permission.
Version 0.4.0 also keeps a local Library: archive a thread, search it, and continue from that archive on this device (CT Memory in chrome.storage / IndexedDB; optional folder index). That is the product direction for long-lived context. This hop page is still the right walkthrough when you want the open Gemini thread pasted into Grok now. Library archives stay on-device; hop still has no Chat Transfer backend.
This is still “this thread,” not a full-account move. Gemini Gems, custom instructions, and Google-account memories stay on Gemini. Grok history and memories stay on Grok. A Gemini→Grok hop only continues the open chat you asked to transfer.
When not to use a hop
- You need images, files, or Gemini canvases re-attached inside Grok — hop notes them; it does not rebuild binaries.
- You want a Gem, custom instruction, or Gemini memory copied as Grok memory — hop does not migrate those objects.
- You want the paste to land inside an existing Grok thread or the X Grok drawer — Open target opens grok.com new chat.
- You want background scraping while you browse — Chat Transfer only reads when you act.
- You need an ongoing sync between Gemini and Grok accounts — that is not what hop does. See Hop vs migration.
FAQ
Can I hop Gemini to Grok without migrating my account?
Yes. Chat Transfer hops the open Gemini thread into Grok’s composer on this device. It does not move accounts, Gems, memories, or later messages.
Does hopping Gemini to Grok silent-send?
No. Paste never silent-sends. Soft Auto-Send is opt-in, default off, and asks once after a successful paste. It may press Grok Send only after you confirm — never Gemini Send on the source tab.
Is this different from hopping Gemini to ChatGPT?
Same extension and local paste model. Source is Gemini; destination is Grok at grok.com. Soft Auto-Send and payload choices (Full / Last N / last assistant) are shared. See the Gemini → ChatGPT guide for that land URL.
Where does the Grok hop land?
Open target opens https://grok.com/ and pastes there. It does not append into an existing Grok conversation, and it does not keep the two threads in sync after you send.
What if Gemini’s last reply looks empty in the hop?
Do not assume the hop invented it. Empty-assistant honesty surfaces when an assistant turn is already in the extract list but its trimmed body is empty. Check the Gemini page (thoughts-only chrome, still-streaming reply, or a missed model-response body) before you send on Grok.
Related
Product · Guides · Hop Claude to Grok · Hop Gemini to ChatGPT · Hop ChatGPT to Grok · Hop Grok to ChatGPT · Export ChatGPT chat to another AI · Hop Claude to ChatGPT · Hop a ChatGPT chat to Claude · Hop a ChatGPT chat to Gemini · Soft Auto-Send · How to use · Hop vs migration · Overflow paste · Privacy · Add to Chrome