Attach website content to AI chatbots as files — right from your browser's side panel.
Features • Supported Chatbots • Installation • Usage • Commands • Development • Türkçe
- Side Panel Chatbots — Open AI chatbots (Gemini, Grok, Claude, Kimi) directly in the browser side panel
- Attach Page Content — Send the current page's HTML or text to any chatbot as a file attachment
- Command Palette — Quick access to all commands with
Cmd+.(orCtrl+.) - Slash Commands — Type commands directly in the chatbot input field
- Multi-language — English and Turkish support
- Cross-browser — Works on Chrome (MV3) and Firefox (MV2)
| Chatbot | Domain | File Attach |
|---|---|---|
| Gemini | gemini.google.com | ✅ |
| Grok | grok.com / x.com | ✅ |
| Claude | claude.ai | ✅ |
| Kimi | kimi.com | ✅ |
Chrome:
- Run
npm run buildto build the extension - Open
chrome://extensions/ - Enable Developer mode (top right)
- Click Load unpacked
- Select the
.output/chrome-mv3folder
Firefox:
- Run
npm run build:firefoxto build the extension - Open
about:debugging#/runtime/this-firefox - Click Load Temporary Add-on
- Select any file in the
.output/firefox-mv2folder
- Open the Side Panel — Click the SideMagic icon in the toolbar (or use the browser's side panel menu)
- Select a Chatbot — Click on any chatbot card (Gemini, Grok, Claude, Kimi)
- Navigate to a Page — Open any website in the main browser tab
- Attach Content — Use the command palette (
Cmd+.) or slash commands to attach content
| Command | Shortcut | Description |
|---|---|---|
/website |
Cmd+. → Select |
Attach page HTML as a file |
/website-text |
Cmd+. → Select |
Attach page text as a file |
/url |
Cmd+. → Select |
Insert active tab URL into chat |
- Side Panel loads chatbot sites inside an iframe
- Content Script injects into chatbot pages to handle file attachment
- Background Script manages tab tracking, source tab data, and file interception
- Main World Script intercepts native file inputs for seamless attachment
- Command Palette communicates with content script via
postMessage
| Permission | Why |
|---|---|
activeTab |
Access the current tab's content |
tabs |
Track which tab is the "source" page |
storage |
Save command palette state |
identity |
Handle authentication for embedded chatbots |
webNavigation |
Detect page navigation for auth flow |
scripting (Chrome) |
Inject content scripts |
declarativeNetRequest (Chrome) |
Remove X-Frame-Options headers for iframe embedding |
webRequest + webRequestBlocking (Firefox) |
Same as above, for Firefox MV2 |
- Yan Panel Chatbot'lar — AI chatbot'ları (Gemini, Grok, Claude, Kimi) doğrudan tarayıcının yan panelinde açın
- Sayfa İçeriği Ekleme — Mevcut sayfanın HTML veya metin içeriğini herhangi bir chatbot'a dosya olarak gönderin
- Komut Paleti —
Cmd+.(veyaCtrl+.) ile tüm komutlara hızlı erişim - Slash Komutları — Chatbot giriş alanına doğrudan komut yazın
- Çoklu Dil — Türkçe ve İngilizce destek
- Çapraz Tarayıcı — Chrome (MV3) ve Firefox (MV2) üzerinde çalışır
| Chatbot | Domain | Dosya Ekleme |
|---|---|---|
| Gemini | gemini.google.com | ✅ |
| Grok | grok.com / x.com | ✅ |
| Claude | claude.ai | ✅ |
| Kimi | kimi.com | ✅ |
Chrome:
npm run buildkomutuyla eklentiyi derleyinchrome://extensions/adresini açın- Sağ üstten Geliştirici modu'nu etkinleştirin
- Paketlenmemiş öğe yükle'ye tıklayın
.output/chrome-mv3klasörünü seçin
Firefox:
npm run build:firefoxkomutuyla eklentiyi derleyinabout:debugging#/runtime/this-firefoxadresini açın- Geçici Eklenti Yükle'ye tıklayın
.output/firefox-mv2klasöründeki herhangi bir dosyayı seçin
- Yan Paneli Açın — Araç çubuğundaki SideMagic simgesine tıklayın (veya tarayıcının yan panel menüsünü kullanın)
- Chatbot Seçin — Herhangi bir chatbot kartına tıklayın (Gemini, Grok, Claude, Kimi)
- Bir Sayfaya Gidin — Ana tarayıcı sekmesinde herhangi bir web sitesini açın
- İçerik Ekleyin — Komut paleti (
Cmd+.) veya slash komutlarını kullanarak içerik ekleyin
| Komut | Kısayol | Açıklama |
|---|---|---|
/website |
Cmd+. → Seç |
Sayfanın HTML'ini dosya olarak ekle |
/website-text |
Cmd+. → Seç |
Sayfanın metnini dosya olarak ekle |
/url |
Cmd+. → Seç |
Aktif sekmenin URL'ini sohbete ekle |
- Yan Panel chatbot sitelerini iframe içinde yükler
- Content Script chatbot sayfalarına enjekte olur ve dosya eklemeyi yönetir
- Background Script sekme takibi, kaynak sekme verisi ve dosya engellemeyi yönetir
- Main World Script sorunsuz dosya ekleme için native dosya girdilerini yakalar
- Komut Paleti content script ile
postMessageüzerinden iletişim kurar
| İzin | Neden |
|---|---|
activeTab |
Mevcut sekmenin içeriğine erişim |
tabs |
Hangi sekmenin "kaynak" sayfa olduğunu takip |
storage |
Komut paleti durumunu kaydetme |
identity |
Gömülü chatbot'lar için kimlik doğrulama |
webNavigation |
Kimlik doğrulama akışı için sayfa yönlendirmelerini tespit |
scripting (Chrome) |
Content script enjeksiyonu |
declarativeNetRequest (Chrome) |
iframe gömme için X-Frame-Options başlıklarını kaldırma |
webRequest + webRequestBlocking (Firefox) |
Yukarıdakinin aynısı, Firefox MV2 için |
- Node.js ≥ 18
- npm ≥ 9
# Install dependencies
npm install
# Development (Chrome)
npm run dev
# Development (Firefox)
npm run dev:firefox# Build for Chrome (MV3)
npm run build
# Build for Firefox (MV2)
npm run build:firefox
# Package as ZIP (for store submission)
npm run zip # Chrome
npm run zip:firefox # FirefoxSideMagic/
├── entrypoints/
│ ├── background.ts # Service worker / background script
│ ├── content.ts # Content script (injected into chatbot pages)
│ ├── intercept-main-world.ts # Main world script for file input interception
│ ├── shortcut-hint.content.ts # Shortcut hint overlay
│ └── sidepanel/
│ ├── index.html # Side panel UI
│ ├── main.ts # Side panel logic
│ └── style.css # Side panel styles
├── public/
│ ├── _locales/
│ │ ├── en/messages.json # English translations
│ │ └── tr/messages.json # Turkish translations
│ ├── chatbot-icons/
│ │ ├── gemini.svg
│ │ ├── grok.svg
│ │ ├── claude.svg
│ │ └── kimi.svg
│ ├── icon-16.png # Extension icon 16x16
│ ├── icon-32.png # Extension icon 32x32
│ ├── icon-48.png # Extension icon 48x48
│ ├── icon-96.png # Extension icon 96x96
│ └── icon-128.png # Extension icon 128x128
├── utils/
│ ├── constants.ts # Shared constants
│ ├── dom-helpers.ts # DOM utility functions
│ ├── i18n.ts # i18n helper
│ ├── identity-auth.ts # Identity/auth helpers
│ ├── site-config.ts # Per-site CSS selectors & config
│ ├── slash-menu.ts # Command definitions
│ ├── toast.ts # Toast notification utility
│ ├── types.ts # Shared TypeScript types
│ ├── background/
│ │ ├── command-palette.ts # Command palette logic (background)
│ │ ├── file-intercept.ts # File interception handler
│ │ ├── source-tab-data.ts # Source tab data management
│ │ └── tab-tracking.ts # Tab tracking & side panel association
│ ├── file-attach/
│ │ ├── index.ts # File attachment entry point
│ │ ├── helpers.ts # Attachment helpers
│ │ ├── strategy-direct.ts # Direct file input strategy
│ │ ├── strategy-drop.ts # Drag & drop strategy
│ │ ├── strategy-intercept.ts # Interception strategy
│ │ └── strategy-paste.ts # Clipboard paste strategy
│ └── frame-embedding/
│ ├── auth-redirect.ts # Auth redirect handling for iframes
│ ├── constants.ts # Frame embedding constants
│ └── header-removal.ts # X-Frame-Options header removal
├── wxt.config.ts # WXT configuration
└── package.json
MIT




