Run RunningHub cloud ComfyUI workflows from chat — settings card, sha256 media upload cache, concurrency gate, and background task ledger.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-runninghub-api
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:lucyTrump/dsh-runninghub-api
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
English | 中文
A DeepSeek Harness (DSH) plugin that integrates RunningHub cloud ComfyUI workflows: a configuration form for your API key and workflow library, nine runninghub_* tools for agents, a sha256 media upload cache, a local concurrency gate with FIFO queueing and timeouts, background tasks with completion notifications, and a durable task ledger with automatic restart recovery.
Install
dsh plugin --profile web add dsh-runninghub-api
or install/update from the in-app plugin market (dshmarket). Then open the sidebar's Plugins page and open the dsh-runninghub-api card: the configuration form sits below the description (on DSH ≥ 0.1.6-alpha.2, plugin configuration moved out of Settings → Plugins onto the Plugins page).
Settings (runninghub namespace)
| Field | Default | Purpose |
|---|---|---|
apiKey |
— | Literal key (role('secret')); prefer apiKeyEnv |
apiKeyEnv |
RUNNINGHUB_API_KEY |
Credential reference resolved per request |
baseUrl |
https://www.runninghub.cn |
OpenAPI base |
pollIntervalMs |
5000 |
Status poll interval (min 1000) |
runTimeoutMs |
3600000 |
Run-phase timeout (0 = unlimited) |
queueTimeoutMs |
0 |
Queue-phase timeout (0 = unlimited) |
maxConcurrentTasks |
3 |
Local concurrency gate |
uploadUseLegacy |
false |
Legacy multipart upload endpoint |
workflows |
[] |
Saved workflow definitions |
Tools
runninghub_list_workflows, runninghub_fetch_workflow, runninghub_run_workflow (two-phase: reports missing required params/media — and values outside a node's declared enum choices — as needs_input instead of submitting), runninghub_get_task, runninghub_list_tasks, runninghub_cancel_task, runninghub_upload_file (sha256-deduplicated), runninghub_refresh_workflow, runninghub_note_workflow (append a per-workflow usage gotcha).
Remote (ctx.remote.runninghub)
fetchWorkflow (workflow JSON fetch + parse), validateWorkflow (free dry-run payload assembly), describeWorkflow (LLM catalog description, attention params, and usage notes — fed the node registry's enum/bounds constraints and this workflow's recent failures), runTest (real paid submit for the configuration form), testConnection. The browser half self-mounts this namespace via ctx.remote.$mount() at startup.
Development
pnpm install # canonical (npm registry)
pnpm build # Typert artifacts + host lib + client bundle
pnpm test # vitest
pnpm typecheck
Offline against a local deepseek-harness checkout (no registry access):
node scripts/link-local-dsh.mjs [/path/to/deepseek-harness]
pnpm build
Note: when link-installed into a live dsh profile (dsh plugin add <this dir>), the
@deepseek-ai/* entries in node_modules must be symlinks into the local DSH
checkout — real npm copies would duplicate the cordis singleton. Re-run
node scripts/link-local-dsh.mjs after every pnpm install, before restarting dsh.
One command rebuilds and installs into the local web profile (a link install — it verifies the profile really resolves to this build, then says what to do):
npm run update:dsh # or: npm run update:dsh -- <profile dir>
Then restart DSH — dsh-hmr watches the profile manifest and patch files, not plugin contents. First-time install into a profile:
dsh plugin --profile web add /path/to/dsh-runninghub-api
tests/ covers the gateway against a mocked fetch (endpoints A–F, status codes 0/804/805/813, secret masking, no-key fast-fail), workflow prompt mapping, payload validation/override reconciliation, and the media cache.
License
Links
More in this category
loopx-project/loopx#dsh-loopx-plugin★ 6398
LoopX, a provider-neutral, local-first state kernel and control plane for long-horizon agents: keeps Goal, Todo, gate, evidence, quota, recovery, and handoff state above DeepSeek Harness, while the plugin bootstraps the CLI and skills, admits bounded same-session continuation, and adds a loopback GoalBar for the exact bound loop.
Q00/ouroboros#integrations/dsh-plugin★ 6260
Config-only bundle that mounts Ouroboros through the DSH MCP client, exposing 36 interview, Seed, execution, evaluation, and evolution workflow tools in DSH.
chuspeeism/dashi-taskboard#deepseek-harness★ 3388
Embeds the active installed Codex Taskboard runtime in the DeepSeek Harness sidebar, using its launcher runtime descriptor instead of a fixed port.
NanmiCoder/dsh-agent-teams★ 2368
AgentTeams multi-agent teams.
EthanYoQ/AI-Novel-Writer#dsh-ai-novel-writer★ 1753
Installs a dedicated AI novel-writing preset and workbench: revisioned local project assets, a compact side drawer, and native approval-gated single-file changes.
Miaotofu01/Study-Mate★ 1144
Your AI learning companion: helping you plan your studies, understand concepts, and build projects to master a subject.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.