dshbase

插件目录 / UI & Skins / dsh-node-repl

dsh-node-repl

已验证 · 实测可装 idkidknow

✓ 持续维护

查看 GitHub ↗ ← 返回插件目录

0Stars
0Forks
0未关闭 issue
—语言
2026-08-16最近推送
跨平台平台

功能简介

Per-session Node REPL terminal in the DSH web UI: a session-local floating terminal (ghostty-web) bridged over WebSocket to an in-process node:repl that has the live agent Cordis Context (agent.ctx) in scope.

✅
我们的评价
可用 — 实测通过,早期项目

Per-session Node REPL terminal in the DSH web UI: a session-local floating terminal (ghostty-web) bridged over WebSocket to an in-process node:repl that has the live agent Cordis Context (agent.ctx) in scope. 实测能干净安装、正常启动。早期项目,但功能可用。

「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

README

dsh-node-repl

npm version

Per-session Node REPL terminal for the DSH web UI. Open a real Node.js REPL
inside any conversation — with the live agent context (ctx, agent) in scope.

Features

  • A REPL button in every session header opens a floating terminal window,
    local to that session (no global overlay, no conversation space taken).
  • A real node:repl prompt — Tab completion, up/down history, top-level await,
    ANSI colors, .help / .editor.
  • The live agent context is in scope: ctx (= agent.ctx) and agent, so
    ctx.plugin, ctx.effect, ctx.get, ctx.on, ctx.provide all work — plus
    the usual Node globals (require, process, console, fetch, …).
  • Draggable and resizable window; collapse keeps the REPL alive, close kills it.

Install

dsh plugin --profile web add dsh-node-repl

Restart dsh web, and the REPL button appears in each session header.

Usage

Open a session, click REPL, and type JavaScript. Top-level await works:

> 1 + 1
2
> await Promise.resolve(42)
42
> ctx.get("webServer")   // any service the agent can reach
> agent.id               // the session id

Window controls

Control Effect
Header REPL button open / restore / collapse
Title bar – collapse (keep the REPL alive)
Title bar ✕ close (kill the REPL)
Drag the title bar move the window
Drag the bottom-right corner resize

The REPL belongs to its session: refreshing the page, dropping the WebSocket, or
disposing the agent kills it (reopen to start fresh).

Notes

The REPL runs inside the DSH host process (not in a child), which is how it
reaches the live agent.ctx. That also makes it a fully-trusted local tool: code
runs unsandboxed and can hang the process — treat it like a shell on that process.

Development

Requires pnpm and Node ≥ 22. Build outputs (lib/) are
generated, not committed.

pnpm install   # installs deps and builds (prepare)
pnpm build     # rebuild host (tsc) + client bundle (esbuild)
pnpm test      # PTY/REPL bridge smoke test
pnpm lint      # eslint
pnpm format    # prettier --write

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-node-repl」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。

该插件是 GitHub 源码(未发 npm)——直接从仓库装:

Web profile:

dsh plugin --profile web add github:idkidknow/dsh-node-repl

Headless(CLI)profile:

dsh plugin --profile headless add github:idkidknow/dsh-node-repl

实测报告

验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。

安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

UI & Skins 里更多

浏览全部 7819 个插件 →