dshbase

Plugin directory / UI & Skins / dsh-node-repl

dsh-node-repl

Verified · install-tested on dsh idkidknow

✓ Actively maintained

View on GitHub ↗ ← Back to plugin directory

0Stars
0Forks
0Open issues
—Language
2026-08-16Last push
Cross-platformPlatform

What it does

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.

✅
Our take
Works — verified, early-stage project

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. It installs cleanly and boots without issues in our testing. It's early-stage but functional.

“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.

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

Install

🧩 Let your agent install it (recommended)

Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:

dsh plugin add dshbase-catalog

Then say "install dsh-node-repl for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.

This plugin is GitHub source (not published to npm) — install it straight from the repo:

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

Test report

Verified: L1 install + L2 load + L3 runtime from GitHub source on dsh 0.1.0-rc.6.

Security: not yet scanned — our daily static scan will cover it shortly.

Share this badge

More in UI & Skins

Browse all 7819 plugins →