Orderzx

A complete autonomous-browser stack in one DeepSeek Harness plugin.

Stealth Chrome · live stream you can grab · CAPTCHA handoff · 27 tools — all on 127.0.0.1, all in-session, zero cloud, zero accounts.

versionv0.2.0-rc.3 platformChromium 150+ · 3 engines smoke tests610/610 ✓ backendnone · on-loopback licenseMIT
Ask DeepSeek anything…
0model-facing tools
0green checks
0stealth engines
0ms capsule pop
// capabilities

Everything an autonomous browser needs — and honest about what it can't do.

Twelve design decisions that make Orderzx feel less like a scraper and more like a colleague sitting at the keyboard.

Stealth that tells the truth

Patchright by default — patched CDP, isolated-world evals, no webdriver tell. And posture() reports exactly which protections are live and which gaps remain, per engine.

CAPTCHA handoff, not CAPTCHA breaking

When a challenge appears the agent pauses and hands the widget to you — in-session, with your fingerprint and IP. The one solve method that always works, and always should.

A live stream you can grab

Tiered transport: on-demand screenshots, CDP screencast when flagged, DOM fallback. Gesture channel paints the agent's cursor, ripples and swipes — then Take over flips every tool to pointer-owned.

Eyes the model can point at

browser_see numbers every interactive element on the screenshot (set-of-marks) and flashes the overlay on your stream. mark: 7 works as a ref alias — and dies with the refs on navigation.

Self-healing refs

A re-rendered page shouldn't cost a full re-observe. Dead refs re-snapshot once and heal onto a unique role+name match — announced on the timeline. Two matches? Fails loudly. Never guesses.

Cookies without the leak

browser_cookies lists metadata only. Values are credentials, stripped at the engine boundary — a transcript can never become a credential dump.

Desktop view, done properly

Chrome-for-Android's "Request desktop site" for agents: UA string, UA client hints and touch emulation swapped in all three places sites check — every tab, including ones opened later.

Sub-agent browsers

browser_start({ label: "researcher" }) — one custom tab per session in the panel: origin avatar, live-phase pulse, desktop badge, an × that closes just that browser. Parallel by design.

Demonstrate once, replay by name

Take over, show the flow, stop — saved as plain-JSON browser_workflow steps. Replay matches identity first, coordinates second, humanized always — foreground or as a cancellable browser_task job. Password-shaped fields become {{variables}}: secrets never touch disk.

An MCP bridge, no new surface

dsh-browser-mcp speaks stdio JSON-RPC over the exact plugin tool layer — any MCP client can drive it. Zero tools added, zero policies relaxed; with no panel to hand off to, a blocking challenge is reported, never silently solved.

A debug drawer that admits its gaps

Arm the opt-in console+network tap and the panel renders both feeds live. While armed, the posture says so plainly — extra listeners are a detectable surface, and you chose it with eyes open. Disarm and the buffers wipe.

A monitor that tells the story

The chatbar glyph runs a ceremony per boot step — scanline, warming pips, shield draw-on, signal bars — then a live EKG when frames arrive. Status you can read at a glance, from across the room.

// the first twelve seconds

How it boots — the real timings, from the shipped code.

The same five beats the README hero animates, with the actual monitor ceremonies beside them.

The capsule pops on the chatbar 320 ms · scale overshoot 1.18

A tiny monitor appears where you type: "starting browser…". No modal, no context switch — the session announces itself in the surface you're already looking at.

The dashboard extends 420 ms AUTO_OPEN_DELAY + 180 ms slide

The capsule becomes a docked panel: session tabs, URL bar, frame viewport, timeline drawer. It opens itself exactly once per boot — a deliberate open is never stolen.

Boot phases play as ceremonies spinning-up → warming → hardening → connecting

Scanline and blink cursor while the engine spins; three pips warming; a shield drawing itself as stealth patches apply; signal bars reaching for the first frame. The LED blinks until frames arrive — then goes solid.

The live stream paints — with the agent's hands frames + gesture channel (SSE)

Real frames, and over them: the ghost cursor's path, click ripples, target outlines, scroll arrows, swipes, keystroke counts. When browser_see runs, the numbered overlay flashes on your stream too.

A CAPTCHA? The agent hands it to you amber banner · pointer → you · hand back when done

The stream keeps running, the widget is yours — your fingerprint, your IP, your intent. Solve it, hand back, and the agent resumes exactly where it paused. Nothing is ever solved for you silently.

// no mockups beyond this point

The real panel, captured from a real Chromium.

These are not renders. The smoke suite screenshots the shipped dashboard while a live session runs over CDP — docked on desktop, and as a narrow edge-to-edge sheet on a phone viewport through adb reverse.

The real Orderzx dashboard docked beside a conversation: session tabs, a live frame stream with the agent's ghost cursor, and the timeline drawer
desktop · docked panel · headless Chromium over CDP 9222 · captured by dev-live-smoke.mjs
The same panel rendered as a narrow edge-to-edge sheet on a phone viewport
phone · narrow sheet · same components, same design tokens
// the tool surface

Twenty-two tools, one canonical JSON answer each.

Refusals are typed, not prose. Secrets are never echoed. Every action lands on the timeline.

agent session · researcher
// verification

610 checks, all green — against a real Chromium.

Static suites prove the contracts; the live and e2e suites drive an actual browser over CDP, including the self-heal and cookie-metadata guarantees.

tools
200
panel
202
frames
72
routes
77
mcp bridge
13
live · CDP
31
e2e
15
0 Green, end to end. The live suite kills every ref with a reload and asserts the next click heals once and lands; it plants an HttpOnly cookie and asserts the value never reaches a tool result. Suites that can't fail prove nothing — these can. Wire contract is additive-only: status.compat advertises the protocol, old payloads always parse, newer harnesses degrade to a banner.

Read the code. Run the suites. Drive it yourself.

Orderzx is open source — plugin scaffold, three engines, panel, protocol, smoke suites and the research notes that shaped it, all in one repo.

github.com/canelaslorenzoenego-ai/Orderzx ↗ Release v0.2.0-rc.1 Back to top ↑