DeepSeek Harness plugin

dsh-dev-toolbox

Local JSON / URL / Base64 / timestamp / UUID toolbox in the dsh web composer

Jump to install

Source facts

Repository
Qingzhou-Joshua/dsh-dev-toolbox
Latest update
Aug 14, 2026
Category
Tools & Capabilities
GitHub stars
0
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/Qingzhou-Joshua/dsh-dev-toolbox
Plugin: dsh-dev-toolbox
Author: Qingzhou-Joshua

Check the source files

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

File explorer4 files
README.mdSource · read only
README language

Dev toolbox

English | 中文

A local converter on the dsh web composer row. JSON, URL, Base64, timestamps, and UUIDs run in the browser: no model call, no network.

![Toolbox panel](docs/images/composer.png)

In any session, the code icon to the right of + opens the panel. The last tab is remembered; input and output are not written to disk.

Three footer actions apply to every tool:

  • Load from composer — copies the current draft into this tab's input (not UUID).
  • Copy output — clipboard.
  • Insert into composer — replaces an empty draft, otherwise appends after a newline, then closes the panel.

Inputs larger than 512 KiB characters are rejected so a paste cannot freeze the tab.

JSON

Pretty-print compacted or handwritten JSON, minify it, check that it parses, or turn plain text into a JSON string literal.

{"ok":true,"user":{"id":42,"name":"Joshua","roles":["admin","reviewer"]},"items":[{"sku":"A-100","qty":3,"region":"ap-east-1"},{"sku":"B-200","qty":1,"region":"us-west-2"}],"trace":"req-7f3a"}

![Formatted JSON](docs/images/json.png)

ButtonEffect
FormatJSON.parse, then print with two-space indent
Minifyone line, no extra whitespace
Validateparse only; the text is left unchanged
Escapethe whole input as a JSON string, including quotes: a "b""a \"b\""
Unescapeparse a JSON string; if there are no wrapping quotes, the text is tried as string content

Use Format for objects and arrays, not Unescape.

Find

Search under the output. The haystack is the output when it is non-empty, otherwise the input.

  • Literal match by default.
  • Regex uses a JavaScript RegExp (invalid patterns show the error).
  • Match case is optional.
  • Enter goes to the next hit, Shift+Enter to the previous. At most 2000 hits are marked.

![Find in formatted JSON](docs/images/json-search.png)

Expand

The control on the output label switches to a reading view: output, find, and the footer only, with the output filling the window. The icon toggles between expand and restore. Click it again, press Escape, or click the mask to return.

![Expanded JSON output](docs/images/json-expand.png)

URL

Percent-encode text, decode it, or convert between query strings and JSON objects.

https://api.example.com/v1/search?q=%E5%B7%A5%E5%85%B7%E7%AE%B1&lang=zh-CN&tag=json&tag=url&debug=1

![URL and query](docs/images/url.png)

ButtonEffect
EncodeencodeURIComponent
DecodedecodeURIComponent; + is a space
Query → JSONa=1&b=2, a leading ?, or a full URL (query only). Repeated keys become arrays
JSON → Querythe input must be an object. Values must be strings, numbers, booleans, or arrays of those; null is skipped

Base64

UTF-8 text ↔ standard Base64. Decode ignores whitespace in the payload so a log snippet can be pasted as-is.

Timestamp

Accepts a 10-digit Unix second, a 13-digit Unix millisecond, a fractional second, or text Date.parse understands (ISO, for example). Now fills the current ISO time.

1710000000

![Unix timestamp](docs/images/time.png)

One parse yields Unix seconds, Unix milliseconds, ISO, and local time. Empty input is not treated as now.

UUID

Generate produces a UUID v4 (crypto.randomUUID()). This tab has no input.

Install

This directory is a standalone npm package (Node ^22.19). From a git host, dsh plugin add fetches sources and runs prepare to build lib/. pnpm ≥10 blocks that script until it is allowlisted.

dsh plugin --profile web add github:Qingzhou-Joshua/dsh-dev-toolbox
# first add fails with an allowBuilds key — copy it into ~/.dsh/profiles/web/pnpm-workspace.yaml
dsh plugin --profile web add github:Qingzhou-Joshua/dsh-dev-toolbox
dsh web

From a local checkout next to a harness tree:

pnpm install
pnpm run build
pnpm dsh plugin --profile web add /absolute/path/to/dsh-dev-toolbox
pnpm dsh web

Do not run pnpm run build from the harness root. After install, refresh the Web UI; the button sits on the composer tool row.