Chromex is a Chrome extension that connects your web browser to OpenAI’s Codex through a local native messaging bridge.
It runs as a persistent chat panel inside Chrome and can access the active webpage, open tabs, uploaded files, screenshots, browser history, voice input, and images on demand.
Note that Chromex is not a simple one-click Chrome Web Store helper. It requires source installation, Node.js, Codex CLI, Chrome Developer mode, and a working local bridge.
Features
- Chat with the active webpage, selected tabs, uploaded documents, screenshots, PDFs, Office files, and browser history.
- Summarize or compare YouTube videos, news articles, research pages, arXiv papers, and PDFs.
- Generate or edit images through Codex image workflows with output handled locally.
- Transcribe voice input and operate in live voice mode.
- Run browser-control workflows through Chrome content scripts with visible in-page activity indicators.
- Pick one or more open tabs as context sources with the
@tab picker. - Switch profiles with the
/profile picker. - Attach files in the following formats: images, plain text, PDF, DOCX, CSV, TSV, XLSX, and XLSM.
- Apply a configurable read strategy across DOM, vision, hybrid, and site-adapter modes.
- Activate site-aware suggestions for YouTube, news, research, email, notes, task tools, shopping, and travel services.
- Control YouTube playback with a dedicated adapter that sends seek actions and reads the current timestamp.
- Render markdown responses with code blocks, tables, links, and copy controls.
- Load Codex skills from local
.codex/skills/*/SKILL.mdfiles when the feature is enabled.
How to use it
1. Chromex requires Node.js 20 LTS or newer. On Windows, install it before proceeding. Then install the Codex CLI globally and confirm it runs:
npm install -g @openai/codex
codex --version2. Clone the repository or download chromex-public-source.zip from the GitHub releases page. Then run the following from the folder that contains package.json:
git clone https://github.com/GENEXIS-AI/chromex.git
cd chromex
npm install
npm run build
node scripts/install-native-host.mjsAll three commands must run from the
chromexsource folder. If Windows reportsENOENT Could not read package.json, the terminal is in the wrong directory.
3. Close every Chrome window completely. Reopen Chrome, go to chrome://extensions, and turn on Developer mode. Click Load unpacked and select:
packages/extension/dist4. On Windows, run the installer with the --browser=chrome flag from PowerShell:
npm install
npm run build
node scripts/install-native-host.mjs --browser=chrome5. Open chrome://extensions, click Reload on the Chromex card, then press Check connection in the Chromex side panel.
6. If the side panel reports that the local bridge is still waiting, confirm the extension loaded from packages/extension/dist. Then copy the extension ID from the Chromex card and re-run the installer with it:
node scripts/install-native-host.mjs <extension-id> --browser=chromeThe expected public release ID is
menmlhahmendmkiicbjihgjhppkgaeom. If Chrome shows a different ID, use the ID Chrome shows.
7. If the side panel reports that the Codex executable is not found, run:
npm install -g @openai/codex
where codex
codex --versionIf
where codexreturnsC:\Users\<you>\AppData\Roaming\npm\codex.cmd, open Chromex settings and set the optional Codex binary path to%APPDATA%\npm\codex.cmd. Save, close every Chrome window, reopen, and press Check connection. Do not put the workspace folder in the Codex binary field; those are separate settings.
8. Development Commands:
| Command | Purpose |
|---|---|
npm run typecheck | Run TypeScript type checks |
npm run test | Run the test suite |
npm run build | Build the extension to packages/extension/dist |
npm run release:audit | Run the release audit |
npm run smoke | Run browser smoke tests |
npm run smoke:install-browser | Install Playwright Chromium if no browser is found |
9. Troubleshooting:
| Symptom | Fix |
|---|---|
| Native host missing or forbidden | Run npm run build, then node scripts/install-native-host.mjs --browser=chrome, reload extension in chrome://extensions |
| Extension ID mismatch | Re-run node scripts/install-native-host.mjs <extension-id> --browser=chrome with the ID shown in Chrome |
| Model list does not load | Confirm native bridge is connected, then sign in through the app-server login flow |
| Page context unavailable | Open Chromex from the target tab or approve the Chrome site permission prompt |
| Old UI still showing | Run npm run build, reload the extension card, confirm Chrome loads from packages/extension/dist |
| Smoke test fails, no browser | Run npm run smoke:install-browser, then npm run smoke |
Pros
- Keeps OpenAI credentials entirely out of the Chrome extension sandbox.
- Fully open‑source codebase.
- A single UI unifies chat, file analysis, voice, image editing, and browser automation.
- Optional Codex skills extend the assistant with user‑managed prompt libraries stored locally.
Cons
- No packaged Chrome Web Store install.
- Windows setup can hit TLS/certificate issues unrelated to Chromex.
- Requires a separate OpenAI account and a functioning local Codex CLI.
- Limited to Chrome.
Related Resources
- OpenAI Codex CLI: The CLI tool Chromex depends on.
- Chrome Extensions Developer Mode Guide: Step-by-step instructions for loading an unpacked extension in Chrome.
- Chrome Native Messaging Documentation: Technical reference for the native host mechanism Chromex uses to communicate with the local bridge.
FAQs
Q: Does Chromex send browser data to external servers?
A: Page content, tab data, screenshots, browser history, and microphone input go to the local Codex app-server process running on the same machine. Chromex does not store raw API keys, OAuth tokens, or session tokens in Chrome extension storage. The local bridge handles generated image originals, temporary uploads, and diagnostics.
Q: Can Chromex be installed without cloning the repository?
A: Yes. The GitHub releases page provides a prepackaged chromex-public-source.zip file. Download and extract it, then run the same npm install, npm run build, and node scripts/install-native-host.mjs commands from the extracted folder.
Q: What file formats can be attached to a chat?
A: Chromex accepts images, plain text, PDF, DOCX, CSV, TSV, XLSX, and XLSM attachments through the side panel.
Q: What languages does Chromex support?
A: The extension ships locale entries for English, Korean, Japanese, Chinese, Arabic, French, German, Spanish, Portuguese, Hindi, Vietnamese, Thai, Turkish, Ukrainian, and other Chrome-compatible locales. It follows the browser’s language by default. A manual override is available in Settings > General > App UI language.
Q: Why does the side panel still say the bridge is waiting after setup?
A: The most common cause on Windows is an extension ID mismatch. Copy the extension ID from the Chromex card in chrome://extensions and re-run node scripts/install-native-host.mjs <extension-id> --browser=chrome with that exact ID. If the Codex CLI is not detected, set the optional Codex binary path in Chromex settings to %APPDATA%\npm\codex.cmd, save, fully restart Chrome, and press Check connection.










