Agent skill · software engineering · aradotso
chromex-ai-chrome-assistant
chromex-ai-chrome-assistant — an agent skill for coding agents.
Why this skill is useful
Adds specific commands and workflows for integrating OpenAI Codex with Chrome, which the AI wouldn't reliably generate on its own.
What it needs
Requires @openai/codex, google chrome, node installed locally. About 7k tokens when loaded. Last updated 2026-07-09. 70 stars on the source repository.
What this skill does
Chrome Extension (MV3 Side Panel) └─> Native Messaging Host (packages/native-host) └─> Local Bridge Daemon (packages/bridge) └─> codex app-server (OpenAI Codex CLI) bash git clone https://github.com/GENEXIS-AI/chromex.git cd chromex npm install npm run build bash macOS / Linux node scripts/install-native-host.mjs Windows (PowerShell) node scripts/install-native-host.mjs --browser=chrome bash node scripts/install-native-host.mjs <extension-id> --browser=chrome bash npm run build # Build all packages npm run typecheck # TypeScript type-check all packages npm run test # Run unit tests npm run release:audit # Pre-release audit checks npm run smoke # Browser smoke test (Playwright) npm run smoke:install-browser # Install Playwright Chromium runtime packages/extension/ ├── src/ │ ├── background/ # Service worker, native messaging client │ ├── sidepanel/ # React side-panel UI │ │ ├── components/ # Chat, attachments, pickers, markdown │ │ ├── hooks/ # Page context, voice, tab selection │ │ └── pages/ # Main panel, onboarding, settings │ ├── content/ # Content scripts for page context & browser control │ └── shared/ # Extension-local shared utilities ├── manifest.json └── dist/ # Built output (load this in Chrome) typescript // packages/extension/src/background/nativeClient.ts interface BridgeMessage { type: string; payload: unknown; requestId: string; } class NativeClient { private port: chrome.runtime.Port null = null; connect(): void { this.port = chrome.runtime.connectNative("com.genexisai.chromex.bridge"); this.port.onMessage.addListener((msg) => this.handleMessage(msg)); this.port.onDisconnect.addListener(() => { this.port = null; console.warn("Native host disconnected", chrome.runtime.lastError); }); } send(message: BridgeMessage): void { if (!this.port) this.connect(); this.port!.postMessage(message); } private handleMessage(msg: unknown): void { // Dispatch to side panel via chrome.runtime.sendMessage chrome.runtime.sendMessage({ source: "native", data: msg }); } } …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills aradotso/chromex-ai-chrome-assistant