21
stars
15
commits
TypeScript
primary language
Sep 2, 2026
updated
Ever got stuck in a long Claude thread and wished you could instantly jump to ChatGPT, Gemini, or Perplexity without losing text, code blocks, images, or attached files?
MoveChat is a free, 100% open-source, privacy-first Chrome extension that lets you capture, transfer, and export your AI chats in 1-click.
If MoveChat helps you switch between AI platforms effortlessly, please consider giving this repository a β star! It helps other developers and AI users discover this open-source tool.
| Feature | Description |
|---|---|
| β‘ 1-Click Seamless Transfer | Capture chat threads on one AI platform and resume them instantly on another without losing context. |
| π 100% Local & Safe | All data stays strictly in your browser (chrome.storage.local). Zero tracking, zero telemetry, zero external servers. |
| πΌοΈ Full Media & File Support | Automatically extracts code blocks, inline images, generated artifacts, and attached documents during handoff. |
| π Multi-Format Export | Export any AI conversation to Markdown (.md), PDF, or raw JSON for offline notes & documentation. |
| π§ Optional AI Compression | Summarize long, verbose chat histories using your own API key (OpenAI / Anthropic / Gemini) before transferring. |
| π‘οΈ Manifest V3 Compliant | Built adhering strictly to Chrome Web Store MV3 security, privacy, and performance guidelines. |
MoveChat offers full bidirectional capture and handoff across all major AI chat platforms:
| Platform | Capture Session | Resume Chat | Images & Media | File Attachments |
|---|---|---|---|---|
ChatGPT (chatgpt.com) | β | β | β | β |
Claude (claude.ai) | β | β | β | β |
Gemini (gemini.google.com) | β | β | β | β |
Perplexity (perplexity.ai) | β | β | β | β |
graph LR
A[Active AI Chat<br/>Claude / ChatGPT / Gemini / Perplexity] -->|1-Click Capture| B(MoveChat Extension)
B -->|Stored Locally| C[Browser Local Storage<br/>chrome.storage.local]
C -->|1-Click Resume| D[Target AI Platform<br/>ChatGPT / Claude / Gemini / Perplexity]
C -->|Export| E[Markdown .md / PDF / JSON]
Get MoveChat directly from the official Chrome Web Store:
π Install MoveChat from Chrome Web Store
Clone the repository:
git clone https://github.com/VC067/MoveChat.git
cd MoveChat
Install dependencies:
npm install
Build the production extension:
npm run build
Load into Google Chrome:
chrome://extensions in your browser.dist/ directory.# Start Vite development server
npm run dev
# Type-check and build production bundle (outputs to /dist)
npm run build
# Lint source files
npm run lint
MoveChat/
βββ src/
β βββ popup/ # Extension Popup UI (React + Tailwind CSS)
β β βββ components/ # Header, LibraryView, SessionDetailView, SettingsView, etc.
β β βββ hooks/ # Custom Chrome Storage Hooks
β βββ content/ # Content Scripts (Runs on AI web apps)
β β βββ scrapers/ # ChatGPT, Claude, Gemini & Perplexity scrapers
β β βββ injectors/ # Prompt & file injectors for each target platform
β β βββ dom.ts # DOM parsing & HTML-to-Markdown converter
β β βββ index.ts # Content script entry point & message listener
β β βββ storage.ts # Content script storage helper
β βββ background/ # Service Worker (Tab navigation & CORS image proxy)
β β βββ index.ts
β βββ shared/ # Core Utilities & Types
β βββ types.ts # Data interfaces (Session, Message, AttachedFile)
β βββ storage.ts # Chrome storage wrapper
β βββ markdown.ts # Markdown exporter
β βββ pdf.ts # PDF exporter (jsPDF)
β βββ compress.ts # Optional AI summary/compression engine
βββ public/
βββ manifest.json # Chrome Manifest V3 configuration
MoveChat is engineered with a strict privacy-first principle:
chrome.storage.local.chatgpt.com, claude.ai, gemini.google.com, perplexity.ai) and necessary image CDNs (*.googleusercontent.com, *.oaiusercontent.com).| Permission | Purpose |
|---|---|
activeTab | Read conversation elements on the active tab when requested by the user |
storage | Store chat sessions, settings, and exports locally on your machine |
tabs | Open a new tab when resuming conversations on another platform |
scripting | Inject content scripts for chat scraping and prompt injection |
For complete details, view our Privacy Policy.
Distributed under the MIT License. See LICENSE for details.
15 commits
TypeScript
93.0%
CSS
3.6%
JavaScript
3.2%
21
stars
15
commits
TypeScript
primary language
Sep 2, 2026
updated
Ever got stuck in a long Claude thread and wished you could instantly jump to ChatGPT, Gemini, or Perplexity without losing text, code blocks, images, or attached files?
MoveChat is a free, 100% open-source, privacy-first Chrome extension that lets you capture, transfer, and export your AI chats in 1-click.
If MoveChat helps you switch between AI platforms effortlessly, please consider giving this repository a β star! It helps other developers and AI users discover this open-source tool.
| Feature | Description |
|---|---|
| β‘ 1-Click Seamless Transfer | Capture chat threads on one AI platform and resume them instantly on another without losing context. |
| π 100% Local & Safe | All data stays strictly in your browser (chrome.storage.local). Zero tracking, zero telemetry, zero external servers. |
| πΌοΈ Full Media & File Support | Automatically extracts code blocks, inline images, generated artifacts, and attached documents during handoff. |
| π Multi-Format Export | Export any AI conversation to Markdown (.md), PDF, or raw JSON for offline notes & documentation. |
| π§ Optional AI Compression | Summarize long, verbose chat histories using your own API key (OpenAI / Anthropic / Gemini) before transferring. |
| π‘οΈ Manifest V3 Compliant | Built adhering strictly to Chrome Web Store MV3 security, privacy, and performance guidelines. |
MoveChat offers full bidirectional capture and handoff across all major AI chat platforms:
| Platform | Capture Session | Resume Chat | Images & Media | File Attachments |
|---|---|---|---|---|
ChatGPT (chatgpt.com) | β | β | β | β |
Claude (claude.ai) | β | β | β | β |
Gemini (gemini.google.com) | β | β | β | β |
Perplexity (perplexity.ai) | β | β | β | β |
graph LR
A[Active AI Chat<br/>Claude / ChatGPT / Gemini / Perplexity] -->|1-Click Capture| B(MoveChat Extension)
B -->|Stored Locally| C[Browser Local Storage<br/>chrome.storage.local]
C -->|1-Click Resume| D[Target AI Platform<br/>ChatGPT / Claude / Gemini / Perplexity]
C -->|Export| E[Markdown .md / PDF / JSON]
Get MoveChat directly from the official Chrome Web Store:
π Install MoveChat from Chrome Web Store
Clone the repository:
git clone https://github.com/VC067/MoveChat.git
cd MoveChat
Install dependencies:
npm install
Build the production extension:
npm run build
Load into Google Chrome:
chrome://extensions in your browser.dist/ directory.# Start Vite development server
npm run dev
# Type-check and build production bundle (outputs to /dist)
npm run build
# Lint source files
npm run lint
MoveChat/
βββ src/
β βββ popup/ # Extension Popup UI (React + Tailwind CSS)
β β βββ components/ # Header, LibraryView, SessionDetailView, SettingsView, etc.
β β βββ hooks/ # Custom Chrome Storage Hooks
β βββ content/ # Content Scripts (Runs on AI web apps)
β β βββ scrapers/ # ChatGPT, Claude, Gemini & Perplexity scrapers
β β βββ injectors/ # Prompt & file injectors for each target platform
β β βββ dom.ts # DOM parsing & HTML-to-Markdown converter
β β βββ index.ts # Content script entry point & message listener
β β βββ storage.ts # Content script storage helper
β βββ background/ # Service Worker (Tab navigation & CORS image proxy)
β β βββ index.ts
β βββ shared/ # Core Utilities & Types
β βββ types.ts # Data interfaces (Session, Message, AttachedFile)
β βββ storage.ts # Chrome storage wrapper
β βββ markdown.ts # Markdown exporter
β βββ pdf.ts # PDF exporter (jsPDF)
β βββ compress.ts # Optional AI summary/compression engine
βββ public/
βββ manifest.json # Chrome Manifest V3 configuration
MoveChat is engineered with a strict privacy-first principle:
chrome.storage.local.chatgpt.com, claude.ai, gemini.google.com, perplexity.ai) and necessary image CDNs (*.googleusercontent.com, *.oaiusercontent.com).| Permission | Purpose |
|---|---|
activeTab | Read conversation elements on the active tab when requested by the user |
storage | Store chat sessions, settings, and exports locally on your machine |
tabs | Open a new tab when resuming conversations on another platform |
scripting | Inject content scripts for chat scraping and prompt injection |
For complete details, view our Privacy Policy.
Distributed under the MIT License. See LICENSE for details.
15 commits
TypeScript
93.0%
CSS
3.6%
JavaScript
3.2%