DeepSeek Harness plugin

dsh-f12-inspector

DSH(DeepSeek Harness)网页界面元素检查插件:文件树选页、F12 式元素定位(XPath / CSS 选择器 / 计算样式)、内置 HTML 编辑器,可复制或加入对话发给 AI。

Jump to install

Source facts

Repository
AlloyPlane/dsh-f12-inspector
Latest update
Aug 21, 2026
Category
Tools & Capabilities
GitHub stars
1
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/AlloyPlane/dsh-f12-inspector
Plugin: dsh-f12-inspector
Author: AlloyPlane

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer4 files
README.en.mdSource · read only
README language

🔍 dsh-f12-inspector

<div align="center">

简体中文 · English

</div>

> An element inspection plugin for the DSH (DeepSeek Harness) web UI: it brings a browser-style "F12 inspect element" workflow into the right details column, with a built-in workspace file tree and an HTML editor.

Browse your workspace in the DSH web UI, pick an HTML page into a live preview, turn on inspect mode to hover-highlight and click-to-lock any element, and grab its CSS selector / XPath / computed styles / outerHTML in one click. You can also edit the source, refresh the preview, and keep inspecting, or send the element context to the AI via "add to chat".

✨ Features

  • 🔍 F12 element inspection

- A "🔍 F12 检查器" button at the sidebar footer opens the third (details) column - Inspect mode: hover → blue highlight + element tag, click → lock selection - Element info: tagName / data-dom-id / CSS selector / XPath / text / size / computed styles / outerHTML - "📋 复制选择器" copies the selector; "+ 加入对话" fills the composer draft with the element context for the AI - A protocol log at the bottom shows the inspector's host ↔ iframe messages for debugging

  • 📁 Workspace file tree

- Follows the active session cwd, lists the project tree, expand/collapse folders, click a file to load it - HTML files → load into the preview for inspection; other text files → open in the editor

  • ✏️ Built-in HTML editor (VSCode-style, pure JS, no dependencies)

- Syntax highlighting (tags / attributes / strings / comments), line-number gutter, Tab indent + Enter auto-indent, status bar - "Save" writes back to disk; "Refresh preview" re-renders the edited source and lets you keep inspecting the changed page

  • Load options: workspace-relative path / absolute path / folder picker / URL

- Typing a folder path lists the HTML files inside for one-click loading

🧩 How it works

The client plugin registers two slots in the DSH web slot system:

SlotRole
sidebar.footer.actionThe "open third column" button at the sidebar footer
details (priority: -1)Occupies the third (right details) column with the inspector

The preview page lives in a sandbox iframe. The inspection engine attaches listeners (mouseover / click / keydown) through the iframe's contentDocument, and on click builds an element payload (XPath / CSS selector / computedStyles / inlineStyles / rect / outerHTML). All locating logic is an original implementation on standard DOM APIs (getBoundingClientRect / getComputedStyle / closest / previousElementSibling).

Host side (dsh/index.js) registers a JSON API — all file access goes through DSH's official fs service:

POST /api/f12-inspector
  { op: 'list', path }            -> { ok, path, entries: [{ name, type, size }] }
  { op: 'read', path }            -> { ok, path, content }
  { op: 'write', path, content }  -> { ok: true }

Path resolution matches DSH's own file tools: '' / '.' → workspace root; 'a/b' → relative; '/abs' → absolute.

📦 Installation

> A standard DSH bundle plugin — installable with one command after publishing to GitHub:

dsh plugin --profile web add "github:AlloyPlane/dsh-f12-inspector#v1.1.0&path:/"

> v1.1.0 is the current release tag (you may use the latest commit hash instead). The package root is the repository root.

Or from a local directory (run inside the package):

cd dsh-f12-inspector && dsh plugin --profile web add .

After installing, restart DSH (npx -y @deepseek-ai/dsh web); the "🔍 F12 检查器" button appears at the bottom of the sidebar.

> Legacy manual install: link this package in the web profile's package.json dependencies, add dsh-f12-inspector to dsh.profile.bundles, pnpm install, then restart.

🚀 Usage

1. Click "🔍 F12 检查器" at the bottom of the sidebar to open the third column 2. Pick an HTML file from the file tree (or type a path / URL) to load it 3. The page auto-enters inspect mode after loading: hover to highlight, click to select 4. Read the element info, then hit "📋 复制选择器" or "+ 加入对话" 5. Click "✏️ 编辑" to edit the source → "Save" writes back / "Refresh preview" re-inspects 6. Esc cancels selection; "✕" clears it

Same-origin / cross-origin note

Page sourceInspectable?
srcdoc / workspace file (local read) / DSH itself✅ fully inspectable
Cross-origin URL (direct iframe)⚠️ display-only, engine cannot be injected (the UI will warn)

When inspecting your own site / component demos, prefer the file tree / file load (local read, no cross-origin limits).

⚠️ Security note

  • All file reads/writes go through the DSH fs service (not raw node:fs), following DSH's sandbox and permission model; paths resolve via fs.resolve (workspace root is the relative base).
  • This is still a local dev tool: /api/f12-inspector is exposed on the workspace. Do not deploy it to public / untrusted networks.

🧡 Acknowledgements

  • The workspace file tree and built-in editor design are inspired by lak321/dsh-filetree (MIT). See [ACKNOWLEDGEMENTS.md](./ACKNOWLEDGEMENTS.md) for the attribution.

📄 License

[MIT](./LICENSE) © AlloyPlane

🧩 Plugin marketplace

This project is also prepared for the WhaleHub plugin marketplace per the [submission guide](./docs/whalehub-submission.md).