DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
L

dsh-long-data

Long Data

DeepSeek Harness 插件:面向初学者的 Docker 数据面板(容器、镜像、卷、网络、关系、Dockerfile 识别),以及 Redis 和 PostgreSQL。提供通俗易懂的概览和帮助;Docker 化的 Redis/PostgreSQL 会自动发现。仅限页面使用,不提供代理工具

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:ddxl123/dsh-long-data#dd4af583517eb728a47c8ab68e97993c4eee7472
README兼容性版本

兼容性与来源证明

Long Data 以 dsh-long-data 发布,当前版本为 0.5.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/22

版本

0.5.0stable
2026/10/22

相关插件

正在加载相关插件…

最新版
0.5.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/22
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 developer-tools 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话Sdk App@deepseek-ai/dsh-sdk-appdsh SDK 配置包:基于 dsh-base 提供 stdio JSON-RPC 服务和进程生命周期管理Experimental Inspector@deepseek-ai/dsh-experimental-inspector用于 Host 调试和 Client Runtime 检查的实验性跨 realm CDP hub

README

dsh-long-data

简体中文 | English

A DeepSeek Harness plugin that puts Docker, Redis and PostgreSQL on one panel, written for people who have never used any of them: it opens on a plain-language Overview that says what is running, what is healthy and what needs attention, explains every term in a built-in glossary, and hides the raw technical detail behind an optional expert mode. Under the friendly surface it still does the real work — browsing containers, images, volumes and networks (with their logs), scanning and editing Redis keys, and running SQL against PostgreSQL — without leaving the harness.

Redis and PostgreSQL are expected to run inside Docker: the plugin discovers their containers, uses the host port each one publishes and the credentials already present in the container environment, so no host installation of redis/psql is needed. When several instances are running, all of them are listed and a switcher lets you pick the one a tab works with — the plugin never silently guesses.

A dedicated Relations page shows which container runs which image, which volumes it mounts and which networks it is attached to, with an association graph and reverse lookups.

The plugin is page-only: it registers a sidebar entry and a panel, and nothing on the model's tool surface. It therefore costs no context tokens; the browser reaches the Host half through the authenticated /api channel.

What you get

  • Overview (概览) — the landing page, readable with zero Docker/Redis/PostgreSQL knowledge: one sentence of overall health, three service cards (Docker = "the box manager", Redis = "fast temporary data", PostgreSQL = "the database") with friendly status, plain stats and one guided action each; a "what needs your attention" list in plain sentences with jump buttons; and a 3-step quick-start checklist for a brand-new machine.
  • Beginner / expert mode — beginner mode is the default: containers show what they are for (网站服务 / 数据库 / 缓存 / …), states read 运行正常 / 已停止, destructive dialogs explain what will break, raw IDs and env dumps stay collapsed, and the SQL editor lives under "高级(SQL)". Expert mode restores the full technical surface. The choice is remembered in the browser.
  • Help drawer (?) — plain-language glossary for 基础概念 (Docker / container / image / volume / network / port), Redis (key / TTL) and PostgreSQL (database / table / column / SQL), plus answers to "what happens if I stop a container?", "what happens if I delete a volume?", "several services are running — which one do I pick?" and "the panel cannot connect — what now?".
  • Dockerfile recognition — the Docker tab's 构建文件 sub-tab finds Dockerfiles in your project directories (every harness workspace, plus extra roots you add in settings), and explains each one in plain words: which base image it starts from (and what that image is for), which ports it opens, whether it is a multi-stage build, how the program starts, its environment variables / volumes / health check, and a per-line "what this instruction does" annotation in the viewer. One click copies the matching docker build command or the file path. Files whose name is not Dockerfile are also recognized when their content starts with FROM (e.g. Containerfile). The page is read-only; only files found by the scan can be opened.
  • Relations — a page of its own: inventory summary (containers, running, images, volumes, networks, dangling images, unused volumes), an image → container → volume association graph with network badges, a container relation table (image chip, volume chips and bind paths, network chips, ports), and reverse lookups by image / volume / network. Clicking a container jumps to its Docker row; clicking a resource jumps to the matching Docker sub-tab.
  • Docker — four sub-tabs plus a disk-usage summary:
    • Containers: state, image, ports, status, live CPU / memory columns and a state filter; start / stop / restart / pause / unpause; a logs drawer with a line-count selector; details with the environment (credential-looking values masked), mounts and networks.
    • Images: repository:tag, short id, size, creation time, inspect details, remove.
    • Volumes: name, driver, scope, mountpoint, inspect details, remove.
    • Networks: name, driver, scope, internal flag, inspect details (subnets, attached containers), remove.
    • Disk usage: images / containers / volumes / build-cache count, size and reclaimable space.
    • Every disruptive action asks twice: stop, restart, pause and remove (and image / volume / network removal) open a focus-trapped confirmation; start and unpause are one click. Container rows refresh on a five-second timer while the tab is open.
  • Redis — the connection is resolved from a Redis container (auto-picked, or pinned by name): its published host port plus credentials from REDISCLI_AUTH / REDIS_PASSWORD when the settings do not name them. The tab shows connection summary (version, uptime, clients, memory, keys, ops/sec, hit rate); a cursor-based SCAN browser with pattern and type filters; a type-aware value viewer with TTL and memory usage (string, list, set, zset, hash, stream); a guided "write data" wizard (pick a type, fill the fields, save); rename keys, set an expiry, persist a key; hash-field / list-push / set-add / set-remove editors; delete a key behind a confirmation. Types are named in plain words (文本 / 列表 / 集合 / 哈希 / 有序集合 / 流) and TTL reads "永不过期 / 还有 N 分钟". The server section also shows DB size and the connected clients table.
  • PostgreSQL — same container discovery (POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB from the container environment): server version and current role; database list and per-database table list; a table's columns and types; a preview of the first 100 rows; a table detail panel with columns / indexes / constraints and the table's size; a paginated data browser with page-size control; an activity panel of live sessions; and a SQL editor whose result grid shows column names, rows (with NULL styling), duration and whether the row cap truncated the result, with CSV download and a query history. SQL errors show the PostgreSQL SQLSTATE.

Connection settings are edited in the panel's gear view and saved on the Host half. Each service has a mode: Docker container (default — pick the container or let the plugin choose the first running one) or manual address (host/port for a service reached some other way).

Install

The package is a bundle: its cordis.patch.yml inserts one host-plane row. Install the directory that contains this package.json with the plugin manager, or from a terminal:

git clone https://github.com/ddxl123/dsh-long-data.git
dsh plugin --profile <profile> add ./dsh-long-data

Or point the plugin manager at the directory that contains this package.json.

After installation the sidebar shows a Data panel entry (next to the Todo list and other panel plugins). No restart is needed when the bundle activates through HMR; replacing an already-installed copy of the package requires a harness restart so the Host half reloads its module.

Requirements

  • The harness ships its own Node runtime; the plugin imports only Node builtins, so there is no dependency to install and no native module to build.
  • The Docker tab needs the docker CLI available to the Host process. When docker is not on the GUI app's PATH, the plugin also probes /usr/local/bin/docker, /opt/homebrew/bin/docker, /Applications/Docker.app/Contents/Resources/bin/docker and ~/.docker/bin/docker. An absolute path can be set in the settings view.
  • Redis and PostgreSQL run inside Docker containers. Redis/PostgreSQL containers must publish their port to the host (-p 56379:6379, -p 55432:5432, …); the plugin dials that published port from the Host process. No host redis-cli/psql installation is needed. A container without a published port is reported with an actionable error.
  • Credentials: when the settings leave the password/role/database empty, the plugin uses what the container image already carries (REDISCLI_AUTH / REDIS_PASSWORD, REDIS_USERNAME; POSTGRES_PASSWORD, POSTGRES_USER, POSTGRES_DB). Non-empty settings win. Manual mode always uses the settings fields.
  • Several instances: every running Redis/PostgreSQL container is discovered. With exactly one running and no container pinned, it is used automatically; with two or more the panel reports the choice explicitly and the tab's instance bar (or the settings container select) pins the one to use. redis.container / postgres.container pin the default across restarts.
  • TLS: Redis supports a plain TLS connection; PostgreSQL supports disable, prefer (try TLS, fall back to plain) and require (fail if the server refuses TLS).

Configuration

The row lives in the profile's cordis.patch.yml layer (or in the bundle's own patch as defaults). Every value is optional; a saved connection from the panel takes precedence over the row's defaults.

KeyDefaultMeaning
settingsFilesettings.jsonDocument inside the plugin state directory that holds saved connections.
docker.binarydockerDocker CLI name or absolute path.
docker.timeoutMs20000Per-command timeout before the child is killed.
redis.modedockerdocker (discover a Redis container) or manual.
redis.containeremptyContainer name to pin; empty picks the first running Redis container.
redis.host / redis.port127.0.0.1 / 6379Manual-mode address.
redis.username / redis.passwordemptyACL user and password (override container env credentials).
redis.db0Database index selected after connecting.
redis.tlsfalseWrap the connection in TLS.
redis.timeoutMs5000Connect/command timeout.
postgres.modedockerdocker (discover a PostgreSQL container) or manual.
postgres.containeremptyContainer name to pin; empty picks the first running PostgreSQL container.
postgres.host / postgres.port127.0.0.1 / 5432Manual-mode address.
postgres.user / postgres.passwordemptyLogin role; empty uses the container's POSTGRES_USER (then postgres).
postgres.databaseemptyDatabase; empty uses the container's (then ).

The state directory follows the harness home, so each profile keeps its own saved connections: <harness home>/dsh-long-data/settings.json. It is written atomically with mode 0600 because it may hold passwords.

Security notes

  • Passwords never cross to the browser: the /api/dsh-long-data route returns a redacted settings view (hasPassword instead of the secret) and discovered containers expose only hasPassword / credentialsSource. A save with an empty password field keeps the stored one; the explicit way to forget a password is the stored clearPassword flag, surfaced by the settings form.
  • Docker-mode credentials read the selected container's environment on the Host, are used for that connection, and are not written to settings.json unless you type them into the form. They are visible to anyone who can run docker inspect on the machine.
  • Docker container environment values whose key looks like a credential (PASSWORD, SECRET, TOKEN, API_KEY, AUTH, …) are replaced with *** before they reach the panel.
  • The connection settings are not a security boundary: the harness process can read the document and talks to your databases with the credentials you give it. Treat the panel as a local operator tool.
  • Container ids that look like CLI flags are rejected before any docker process is spawned, and container lifecycle actions are restricted to a fixed list.
  • Redis is accessed through explicit commands (PING/INFO/SCAN/TYPE/GET/SET/DEL); the panel does not offer arbitrary command execution. PostgreSQL's SQL editor does accept arbitrary SQL by design, including writes — use it on databases you mean to change.

Development

cd dsh-long-data
node --check src/index.js && node --check client/index.js
node --test test/

The Host half is split so each protocol can be tested alone:

FileRole
src/index.jsCordis entry: config, settings store, route registration.
src/config.jsRow config validation, defaults, state directory.
src/settings.jsDurable connection document, redaction, validation.
src/docker.jsDocker CLI service over child_process (argv arrays, no shell).
src/redis.jsDependency-free RESP2 client over node:net.
src/postgres.jsDependency-free PostgreSQL wire-protocol client (SCRAM-SHA-256).
src/targets.jsDiscovers Redis/PostgreSQL containers and resolves host port + container-env credentials for every instance.
src/relations.jsJoins containers to images, volumes and networks for the Relations page.
src/roles.jsGuesses what a container is for (website / database / cache / …) so the UI can explain it in plain words.
src/dockerfiles.jsBounded Dockerfile scanner and dependency-free parser (stages, base images, ports, command, per-instruction facts).
src/ops.jsOne implementation of every capability.
src/route.js/api/dsh-long-data Fetch route.
client/index.jsBrowser panel: window.__ModuleLoader__ factory, React only.

Integration tests use whatever services they find and skip cleanly when they are not there:

  • Docker: the local daemon. Read-only: existing containers, images, volumes and networks are never removed, stopped or pruned.
  • Docker-mode Redis/PostgreSQL discovery is exercised against whatever Redis/PostgreSQL containers exist; no running container means the test skips.
  • Manual-mode protocol round-trips default to 127.0.0.1:6379 (no password) and 127.0.0.1:5432 (user/database postgres, no password); point them somewhere else with DSH_LONG_DATA_REDIS_HOST/PORT/PASSWORD and DSH_LONG_DATA_PG_HOST/PORT/USER/PASSWORD/DATABASE. They skip when unreachable.

License

MIT


POSTGRES_DB
postgres
postgres.sslpreferdisable | prefer | require.
postgres.timeoutMs8000Connect/query timeout.
logTailDefault200Default Docker log lines per request.
maxQueryRows500Row cap applied to one SQL result.
maxKeyScan5000Upper bound on one SCAN hint.
dockerfiles.roots[]Extra absolute directories to scan for Dockerfiles (workspace directories are scanned automatically).
dockerfiles.maxDepth6How deep below each root the Dockerfile scan walks.