Skip to content

Releases

v0.1.0 — DSH Codex Chrome bridge

Choose a tag to compare

@BruceZhang1993 BruceZhang1993 released this 09 Oct 07:35
18e456b

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-chrome

Then 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-chrome skill, registered additively through
    ctx.skills.register() instead of taking over the shared
    skill-filesystem.bundledSkillDir slot.
  • A bridge launcher that fronts node_repl and injects
    _meta["x-codex-turn-metadata"] on every tools/call, which
    @deepseek-ai/dsh-mcp-client cannot express and the browser service requires.
  • Runtime discovery for CODEX_HOME, the chrome/browser plugin caches
    and the node_repl executable, 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.