Repository navigation
Releases
v0.1.0 — DSH Codex Chrome bridge
First release. dsh-codex-chrome migrates OpenAI Codex's
chrome@openai-bundled plugin into DeepSeek Harness as native
mcp__chrome__* tools, with its skill bundled.
Codex's plugin is not an MCP server: it is a skill plus a Stop hook plus a
browser runtime (browser-client.mjs / browser-service.mjs) that only runs
inside the Codex node_repl host, because it depends on privileged capabilities
that host alone provides (nativePipe, addTurnEndedHandler, host-injected turn
metadata). This bundle reuses that runtime unchanged instead of reimplementing
browser control.
Install
DSH Desktop — open the plugin manager and install the bundle from this
directory. Desktop profiles are managed exclusively by the app, so
dsh plugin --profile desktop add … is refused by design.
CLI profiles
dsh plugin --profile web add /absolute/path/to/dsh-codex-chromeThen restart the harness: the tool list gains mcp__chrome__chrome_status,
chrome_select, chrome_tabs, chrome_navigate, chrome_observe, chrome_act,
chrome_read, chrome_evaluate, chrome_wait, chrome_js and chrome_end_turn,
plus the control-chrome skill.
What's in it
- 11 browser tools — connection status, browser selection, tab lifecycle
(including the user's own tabs), navigation, accessibility-tree observation,
accessibility and Playwright actions, reads, page evaluation, waits, a raw-JS
escape hatch, and turn release. - The
control-chromeskill, registered additively through
ctx.skills.register()instead of taking over the shared
skill-filesystem.bundledSkillDirslot. - A bridge launcher that fronts
node_repland injects
_meta["x-codex-turn-metadata"]on everytools/call, which
@deepseek-ai/dsh-mcp-clientcannot express and the browser service requires. - Runtime discovery for
CODEX_HOME, thechrome/browserplugin caches
and thenode_replexecutable, with no hard-coded machine paths. - Zero runtime dependencies, no DSH modifications. The bridge is DSH's own
in-box@deepseek-ai/dsh-mcp-client.
Requirements
Linux, the ChatGPT/Codex desktop app run at least once (to materialise the
bundled plugins and node_repl), the ChatGPT browser extension installed in the
target browser with the com.openai.codexextension native messaging host
registered, and that browser running.
Verified on this commit
node scripts/check-package.mjs— ok (serverName=chrome, 11 tools, skill=control-chrome)node --test— 13 tests, all pass, including a real MCP handshake against the launcher- CI green on Node 20 and Node 22 (workflow
ci.yml) node scripts/smoke.mjs— PASS against a live Chrome 154 on Arch (Wayland/X11)- installed into a DSH Desktop profile and exercised from a session: the 11
mcp__chrome__*tools and the skill resolve, a real tab was opened, its
accessibility tree read, an element clicked, and a full-page screenshot returned
scripts/doctor.mjs and scripts/smoke.mjs need a desktop session, a browser and
Codex, so they stay local checks and are not part of CI.