JohnXu22786/dsh-web-submit ↗★ 0
dsh-web-submit
DeepSeek Harness plugin: run headless-style tasks through the running dsh web process via one HTTP endpoint (POST /x/headless) with status and SSE live-event endpoints — CLI-invoked runs are visible in the Web UI in real time.
AI Analysis
核心用途是允许用户从命令行向运行中的 DSH 网页实例提交任务,并在 Web UI 中实时观看执行过程和处理审批。适合需要结合 CLI 触发与 Web 交互的用户。
Install
This plugin has no verified bundle, or compatibility checks failed. Read the repository notes first. Read the full README ↗
README
Read the full README ↗dsh-web-submit
DeepSeek Harness plugin that lets you drive the running dsh web instance
from the command line — the task executes inside the web process, so the Web
UI shows it live (same sessions store, same event stream), and permission /
approval questions appear in the Web UI.
No separate headless process, no webhook glue: one plugin, three endpoints.
Endpoints
| Method | Path | Description |
|---|---|---|
POST | /x/headless | {"task": "...", "cwd": "...", "preset": "standard", "mode": "queue"} → {"ok": true, "sessionId": "session-..."} |
GET | /x/headless/status?sessionId=... | Latest session events (non-streaming poll) |
GET | /x/headless/events?sessionId=... | SSE live event stream; ends after turn/end |
Loopback requests only (127.0.0.1 / localhost), same trust posture as the
built-in /api surface. The plugin reuses the in-process ApiProxyService,
so it stays identical to the UI's own session/prompt path.
Install
cd ~/.dsh/profiles/web
# add the row to cordis.patch.yml:
# - insert:
# - id: dsh-web-submit
# name: 'dsh-web-submit'
# then install the package (or place the folder in node_modules/)
dsh plugin --profile web add file:C:/dsh-web-submit
Restart dsh web (~/.dsh/start-web.cmd) to load the plugin.
Example (CLI)
# submit a task
curl -s -X POST http://127.0.0.1:3080/x/headless \
-H 'content-type: application/json' \
-d '{"task":"Summarize the README","cwd":"C:/my/project","preset":"coding"}'
# tail it live
curl -sN "http://127.0.0.1:3080/x/headless/events?sessionId=session-xxx"
While it runs, open the Web UI: the session is visible in real time, exactly as if you had typed the task there.
Config
| Key | Default | Meaning |
|---|---|---|
routePrefix | /x | Route prefix for all endpoints |
maxBodyBytes | 1048576 | Max request body size |
License
MIT