Share AI conversations locally. No servers, no tracking, 100% private.
A Chrome extension that lets you seamlessly share conversation context between ChatGPT, Claude, Gemini, and Perplexity — without any external servers or tracking.
Power users often switch between AI assistants:
- Claude for deep reasoning
- ChatGPT for quick iterations
- Perplexity for research
- Gemini for Google integration
But every time you switch, you lose context and have to re-explain everything. Relai solves this.
- 🔒 100% Local – All data stays in your browser. No servers, no tracking, no cloud sync.
- 📥 Capture Conversations – Save any conversation with one click
- 🔄 Send to Any AI – Transfer context to ChatGPT, Claude, Gemini, or Perplexity
- 💾 Export/Import – Backup your contexts as JSON
- 🎨 Retro-Futuristic UI – WALL-E inspired design with warm amber tones
| Platform | Capture | Send To | Status |
|---|---|---|---|
| ChatGPT | ✅ | ✅ | Fully supported |
| Claude | ✅ | ✅ | Fully supported |
| Gemini | ✅ | ✅ | Fully supported |
| Perplexity | ✅ | ✅ | Fully supported |
-
Clone this repository:
git clone https://github.com/kirillpolevoy/relai.git cd relai -
Open Chrome and go to
chrome://extensions/ -
Enable “Developer mode” (toggle in top right)
-
Click “Load unpacked” and select the project folder
-
The Relai icon should appear in your toolbar
Coming soon
- Capture – Open any AI chat (ChatGPT, Claude, etc.) and click the Relai extension icon
- Click “Capture from this tab” to save the conversation
- Send – Click on a saved context, then click “Send to [Platform]” to transfer it
- Have a conversation on any supported AI platform
- Click the Relai extension icon in your toolbar
- Click the “Capture from this tab” button
- Your conversation is saved locally
- Click the Relai icon to open the popup
- See all your saved conversations in the “SAVED” section
- Click any context to view details
- Open a saved context by clicking it
- Click one of the “Send to” buttons (ChatGPT, Claude, Gemini, Perplexity)
- A new tab opens with the context auto-pasted
- Press Enter to send
Open the Relai popup to:
- Export – Download all contexts as JSON backup
- Import – Restore from a previous backup
- Clear All – Delete all saved contexts
Relai is designed with privacy as the #1 priority:
- ✅ No external servers – Everything runs locally in your browser
- ✅ No analytics/tracking – Zero telemetry, no collection, period
- ✅ No cloud sync – Your data never leaves your device
- ✅ Open source – Audit the code yourself
- ✅ Minimal permissions – Only requests what’s necessary
storage– Save contexts to browser’s local storage (IndexedDB)activeTab– Read/inject content on the current AI chat pagescripting– Run content scripts on AI platformshost_permissions– Only for the 4 supported AI domains:https://chat.openai.com/*andhttps://chatgpt.com/*https://claude.ai/*https://gemini.google.com/*https://www.perplexity.ai/*
relai/
├── manifest.json # Extension manifest (v3)
├── src/
│ ├── background/ # Service worker
│ │ └── service-worker.js
│ └── content-scripts/ # Platform-specific extractors
│ ├── chatgpt.js
│ ├── claude.js
│ ├── gemini.js
│ └── perplexity.js
├── popup/ # Extension popup UI
│ ├── popup.html
│ ├── popup.css
│ └── popup.js
├── styles/ # Shared styles
│ └── overlay.css
└── icons/ # Extension icons
No build step required! This is a vanilla JavaScript extension.
- Make changes to the code
- Go to
chrome://extensions/ - Click the refresh icon (🔄) on the Relai extension card
- Hard refresh any open AI platform tabs (Cmd+Shift+R / Ctrl+Shift+R)
- Test the changes
- Create a new file in
src/content-scripts/(e.g.,newplatform.js) - Implement the extractor class with these methods:
extractMessages()– Extract conversation messagesextractTitle()– Get conversation titleinjectIntoInput()– Paste text into input fieldcheckForPendingContext()– Check for context to auto-paste
- Add the domain to
manifest.json:- Add to
host_permissionsarray - Add to
content_scriptsarray
- Add to
- Update
PLATFORMSobject insrc/background/service-worker.js
- Content Scripts run on each AI platform page
- Extract conversation messages by querying the DOM
- Store contexts in IndexedDB (browser’s local database)
- Background Service Worker manages storage and tab operations
- Auto-inject when “Send to” flow opens a new platform tab
Contexts are stored as:
{
id: "uuid",
source: "chatgpt" | "claude" | "gemini" | "perplexity",
title: "Conversation title",
messages: [
{ role: "user", content: "..." },
{ role: "assistant", content: "..." }
],
url: "https://...",
timestamp: 1234567890
}
- ✅ Multi-strategy title extraction – Captures accurate conversation titles from all platforms
- ✅ Improved context formatting – Better prompts when transferring between AIs
- ✅ Fixed duplicate extraction – Messages no longer captured multiple times
- ✅ Claude message extraction – Now captures both user and assistant messages correctly
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Commit with descriptive messages
- Push to your fork
- Submit a pull request
MIT License – see LICENSE for details.
Built for AI power users who want their context to follow them across platforms. Inspired by the Model Context Protocol and the vision of portable AI memory.
Special thanks to the open source community and everyone who provided feedback during development.
Made with ❤️ for AI power users
“Your conversations, your control”