guo6x/dsh-pilot

Zero-dependency browser control: drive a real headless Edge/Chrome over CDP with 8 pilot_* tools (navigate/click/type/keys/eval/screenshot) plus a live draggable cockpit panel in the Web GUI - text-first snapshots for text-only models, no Playwright, no API key.

Gives a DSH agent hands in a real browser. Tools include pilot_open, pilot_snapshot (title, URL, visible text, a numbered element list with stable refs, and a change summary vs the previous snapshot), pilot_diff (only what changed since the last snapshot), pilot_click / pilot_type by snapshot ref or CSS selector, pilot_fill (text fields, textareas and selects in one call resolved by label/aria-label/placeholder/name/id), pilot_upload (1-10 absolute-path files, 100 MB cap), pilot_press, pilot_back, pilot_reload and pilot_download. A live cockpit shows the current page, URL, status and recent actions; stale refs fail loudly instead of silently hitting the wrong element.

Tools & Capabilities ★ 0 updated 2026-09-13
View on GitHub ↗

Install

dsh plugin --profile web add github:guo6x/dsh-pilot

README install (GitHub is the supported release channel), followed by a dsh web restart — the ✈️ button then appears in the web UI. Requirements: the DSH web profile, Node >= 22 and Edge or Chrome installed; no extra account, API key or browser download. From a checkout use dsh plugin --profile web add . (the committed lib/ output means GitHub installs run no build script). Confirm with dsh plugin --profile web list dsh-pilot.

Compatibility

DSH web profile, Node >= 22, plus Edge or Chrome on the machine. The browser runs headless with an isolated --user-data-dir under the OS temp dir and a dynamically picked debugging port; the whole browser tree is killed and the profile removed afterwards, so it never touches your real browser session. No runtime dependency and no cloud account — it uses Node 22's native WebSocket plus the installed Edge/Chrome.

Details

Recent updates

README contrasts the design with typical browser automation: no guessed CSS selectors (numbered visible-element refs instead), one-call form filling by human-facing labels, a visible cockpit rather than a black box, and no browser framework or cloud account dependency.

FAQ

How do I install dsh-pilot?
Run: dsh plugin --profile web add github:guo6x/dsh-pilot, then restart dsh web. It needs the web profile, Node >= 22 and Edge or Chrome — no API key.
Why does an action fail with a stale ref?
By design: element refs come from the last pilot_snapshot. Re-run pilot_snapshot (or pilot_diff) after the page changes so the refs are fresh — stale refs fail loudly rather than clicking the wrong element.
Does it use my logged-in browser profile?
No — it launches Edge/Chrome headless with an isolated --user-data-dir under the OS temp directory and tears the whole tree down afterwards, so your real browsing session is untouched.

More plugins in Tools & Capabilities

Browse more in Tools & Capabilities

Guides for Tools & Capabilities plugins