yin52133/dsh-luban

dsh-luban

🛠️ Custom workbench plugin suite for DeepSeek Harness (DSH) — LAN auth, task board, SSH + tmux keep-alive, shared Windows/Ubuntu sessions, context HUD & serial/debug tooling. Built for embedded devs: Windows debug box + LAN Ubuntu build server. Monorepo of dsh-luban-* plugins.

Uncategorized

dsh-luban

简体中文 | English

dsh-luban is a DeepSeek Harness plugin suite for embedded development. It connects a Windows debug workstation and an Ubuntu build server to one browser workbench for device debugging, background builds, task tracking, and session recovery.

The project is intended for individuals and small teams on a trusted local network. Its built-in accounts separate users' tasks, sessions, and attachments; they are not a replacement for enterprise identity management or public-network security.

Features

  • Cross-host workflow: use Windows for serial devices, Android Debug Bridge (ADB), flashing, and GNU Debugger (GDB); use Ubuntu for builds and long-running jobs.
  • Task management: create, claim, execute, and review work on a taskboard, with linked execution plans.
  • Persistent work: keep sessions and jobs running with tmux, Windows Task Scheduler, and systemd, and recover them after restart.
  • Context management: inspect the model, reasoning level, context usage, and request rates; search and replay compacted records.
  • Images and shared sessions: upload or paste images into a session, view sessions across hosts, and explicitly hand off control.
  • Embedded toolchain: work with serial devices, ADB/Fastboot, OpenOCD, GDB, SSH, Telnet, and TCP serial connections.
  • Flexible installation: install the complete suite or only the plugins needed on each host.

Interface

Luban taskboard with an execution plan and status panel

After signing in, users can track task states, filter by host and workspace, define acceptance criteria, review agent results, open linked plans, and inspect context usage and request rates.

All Web features use Luban's port 42600 as their single entry point:

Local: http://127.0.0.1:42600/luban-auth/login
LAN:   http://<host-ip>:42600/luban-auth/login

DSH at 127.0.0.1:3080 is an internal Luban upstream. Do not browse to it directly or expose it to the LAN.

Plugins and platforms

PackagePurposePlatform
@yin52133/dsh-lubanInstall the complete suiteWindows / Ubuntu
@yin52133/dsh-luban-authSign-in and account-scoped dataWindows / Ubuntu
@yin52133/dsh-luban-taskboardTaskboard, agent claims, and progress updatesWindows / Ubuntu
@yin52133/dsh-luban-keepaliveSession persistence, heartbeats, checkpoints, and restart recoveryWindows / Ubuntu
@yin52133/dsh-luban-planCreate, approve, reject, and revise execution plansWindows / Ubuntu
@yin52133/dsh-luban-session-shareCross-host session views, reconnect, and control handoffWindows / Ubuntu
@yin52133/dsh-luban-image-pasteImage upload, preview, and session referencesWindows / Ubuntu
@yin52133/dsh-luban-hudModel, context, and request-rate status panelWindows / Ubuntu
@yin52133/dsh-luban-contextContext compaction, archive, search, and replayWindows / Ubuntu
@yin52133/dsh-luban-server-modesystemd service, build queue, resource checks, and artifactsUbuntu
@yin52133/dsh-luban-win-debugSerial, flashing, GDB, ADB, remote connections, and Windows desktop controlWindows
@yin52133/dsh-luban-browserBrowser automation, task templates, and taskboard executionWindows / Ubuntu

Installation

Requirements

  • Node.js 22.19.x or version 24 and later
  • pnpm 11.24.0
  • DeepSeek Harness 0.1.2-rc.1

Packages are public on the npm registry. Installation does not require a GitHub account, personal access token, or npm login. If this machine previously mapped @yin52133 to GitHub Packages, remove that legacy mapping first:

npm config delete @yin52133:registry
npm config get registry

The second command should print https://registry.npmjs.org/.

Install the complete suite:

dsh plugin --profile web add @yin52133/dsh-luban@0.1.3 --allow-build=node-pty@1.1.0 --allow-build=@serialport/bindings-cpp@13.0.0

The two --allow-build flags permit installation scripts only for the suite's pinned terminal and serial native bindings. You may omit @serialport/bindings-cpp when serial support is not needed. Run the same command again if an earlier installation skipped these builds.

The complete suite also installs these companion plugins at fixed versions:

The memory companion is installed but disabled until its separate Python / aeis environment is configured. See bundle configuration. The market and sidebar are enabled by default.

Alternatively, install only the plugins you need:

dsh plugin --profile web add @yin52133/dsh-luban-auth
dsh plugin --profile web add @yin52133/dsh-luban-taskboard @yin52133/dsh-luban-hud @yin52133/dsh-luban-plan

Do not install the complete suite together with duplicate standalone packages, because that loads the same plugin twice. For detailed setup, see the Windows deployment guide and Ubuntu deployment guide.

After the first start, open http://127.0.0.1:42600/luban-auth/login, create the administrator in the setup page, and continue in the signed-in session. No password environment variable is required. Startup does not read password environment variables or create accounts. Invalid input is marked next to the field; the username is retained and passwords must be entered again.

Network and security

Expose the sign-in service only to the local network range that needs access. Replace <lan-client-cidr> below with the local network range provided by your router or network administrator:

LAN_CIDR=<lan-client-cidr>
sudo ufw allow proto tcp from "$LAN_CIDR" to any port 42600

The firewall limits which devices can connect, while the dsh-luban sign-in page controls user access. Do not expose the service directly to the public internet.

Development

The repository uses pnpm for JavaScript dependencies. The Python browser bridge uses a locked uv environment:

corepack enable
pnpm install
pnpm check
uv run --project tools/browser-bridge --locked python -m unittest discover -s tools/browser-bridge/tests

See architecture and module design for more information.

License

MIT. Third-party license information is available in each package's THIRD-PARTY-NOTICES.md.