IChat is a Chrome side panel extension for context-aware AI chat. Its core idea is intelligent context capture with a seamless Q&A flow, while staying fully local-first so users do not need to route their prompts or API keys through a project-owned backend.
More concretely, IChat watches the region you hover over or the text you select, intelligently builds a context object called FlowContext, opens the side panel, and turns the whole context-to-chat handoff into a much smoother experience.
Example scenario:

On ordinary web pages, the shortcut supports two capture paths:
Ctrl+Shift+Y (the default shortcut) to capture the selected text together with nearby implicit context.Ctrl+Shift+Y (the default shortcut) to trigger context capture, and the highlighted target updates as your mouse moves. If the result is not what you want, use the mouse wheel to adjust the capture scope, or press Esc to cancel.Select text on a web page or in Chrome’s PDF viewer, right-click the selection, and choose Capture selected text with IChat. IChat opens the side panel and uses the text Chrome supplies as the new FlowContext. Auto-send on sends it through the configured provider flow; auto-send off leaves a draft ready for your question. This path uses plain text, requires no vision model or OCR, and does not touch the clipboard. It captures the selected text and available source metadata only, not surrounding paragraphs. The menu appears only when Chrome provides a text selection and follows IChat’s UI language setting.
In Chrome’s native PDF viewer, use the extension action or capture shortcut to attach the currently visible tab area as an image. A vision-capable model is required. Zoom and scroll to the content you want before capturing; the image can include viewer controls and portions of multiple pages. This captures neither the full document nor the exact text selection. Auto-send follows your existing setting; turn it off in Settings to review the attachment before sending. Local file:// PDFs and PDFs embedded within ordinary web pages are not covered by this fallback.
From GitHub Releases:
ichat-chrome-mv3-prod-<version>.zipchrome://extensions/For local development:
npm installnpm run buildchrome://extensions/build/chrome-mv3-prodYou can open IChat by:
Ctrl+Shift+Y
6, which keeps enough recent context for multi-turn conversations while still saving tokens and reducing latency.
Open Settings and add one of the following:

The composer combines the text area and its controls in one panel. The arrow sends the draft; during generation it becomes a square that stops the response. Enter sends, Shift+Enter adds a line break, and confirming text with an input method does not send.
Choose a speech provider in Settings → STT Provider, independently of the chat model:
platform.mosi.cn. Uses moss-transcribe-1.0 with POST https://api.mosi.cn/v1/audio/transcriptions, sending the WAV as a multipart file and reading the JSON text response. Like Fun-ASR, it records up to three minutes and transcribes after stopping, with a 45-second transcription timeout and cancellation support. MOSS and Fun-ASR keys are saved independently. MOSS API documentation.fun-asr-flash-2026-06-15, and click Save API Key. Click the microphone to record, then click it again (or press Escape in the input) to submit for transcription. This is a non-real-time HTTP model; text appears after recording finishes. At three minutes, recording stops and submits automatically. During transcription, the microphone becomes a cancel button. Startup times out after 15 seconds; transcription times out after 45 seconds.Chrome and Fun-ASR follow the interface language (English or Simplified Chinese); MOSS detects the spoken language automatically. Text is inserted at the cursor or replaces the selected text, preserving the rest of the draft. Editing is paused during capture/transcription. While recording, clicking Send stops dictation, waits for transcription, and sends the merged draft once. Clicking the microphone to stop only fills the draft. Failed, cancelled, or timed-out recognition does not send the draft; leaving the chat or opening Settings cancels a pending send. Existing installs keep Chrome as the default; changing the speech provider preserves chat settings and keys.
If microphone access is denied or the side panel cannot display a permission prompt, click Allow microphone in the error message. Grant access in the extension tab, return to the chat, and click the microphone again. Unsupported browsers, device failures, and unavailable speech services show an error while keeping the draft available for typing.
Microphone permission belongs to IChat’s extension origin, not each website beside the side panel. If no speech is recognized, click Test microphone in the error message. The extension tab can run a local test for up to ten seconds, showing the default input device and a sound level meter. It does not record or upload audio. A moving meter confirms input signal, not necessarily intelligible speech. If it stays still, check the default microphone at chrome://settings/content/microphone, the device mute switch, and the Windows input volume. Stopping the test or leaving the tab releases the microphone.
The selected speech provider processes audio independently of the chat model: the browser’s speech service for Chrome, Alibaba Cloud for Fun-ASR-Flash, or MOSS for MOSS transcription. Fun-ASR and MOSS recordings stay only in memory until processing ends or is cancelled; they are sent directly as WAV audio over HTTPS. IChat does not persist recordings. Closing or leaving the chat stops capture and cancels transcription; listening never restarts automatically. You can revoke microphone access in Chrome or system settings. To remove a speech provider key, select that provider and clear its field and click Save API Key.
In the current implementation:
For more detail, see the Privacy Policy.
IChat currently needs Chrome extension capabilities related to:
contextMenus for the explicit selected-text capture menu, including PDF selectionsWhen you trigger IChat on a normal http or https page, the extension tries to gather relevant context from the current page.
Capture may include:
If an image target cannot be resolved directly, IChat may use a screenshot-based fallback for the visible target area.