One-click install pack for DeepSeek Harness on Windows + WSL: browser on Windows, agent in WSL.
This meta-repo does not ship plugin runtime code. It documents the suite, lists install order, and provides a ready cordis.patch.yml you can merge into your profile after installing the plugins.
Every plugin in this suite ships the same doc split: English README.md + Chinese README.zh.md, with mutual links at the top.
You run dsh web inside WSL (Ubuntu, etc.) while Chat / Trajectory opens in a Windows browser. Paths, proxy, clipboard, and “open this file” all cross the OS boundary—this kit is the glue.
When DSH lives in WSL and you need GitHub, “connect to GitHub” is not one problem. Push credentials, REST API calls, opening links in Windows, and proxy failures are different jobs. The kit keeps them as small plugins that work together—instead of pasting a PAT into chat or installing a 40-tool generic GitHub connector.
| Job | Plugin | Tool |
|---|---|---|
git push / HTTPS credentials (Windows GCM from WSL) |
dsh-wsl-cred | cred_hint |
| GitHub API: open PRs + latest Actions | dsh-wsl-github | github_app_hint, github_repo_status |
| Open a PR / Actions URL in the Windows browser | dsh-wsl-browser | win_open_url |
Proxy / Node 24 fetch blocks api.github.com or DeepSeek |
dsh-wsl-net | net_doctor |
Advantages
- Boundary-aware — Agent in WSL, UI in Windows; credentials and browser stay on the right side of the OS line.
- GitHub App, not chat secrets —
dsh-wsl-githubmints a short-lived installation token in memory. Never paste a PEM or PAT into the prompt. - Least privilege — App asks only for Metadata / Pull requests / Actions read. Webhooks off.
- Composable — Same install pack as path, clipboard, and notify tools; one
install.sh/cordis.patch.yml. - Developer Program ready — A real GitHub App + API integration owned by you (homepage can be this kit repo).
Full App setup and env loading: dsh-wsl-github README.
- Install the Full set (or Daily +
dsh-wsl-github+dsh-wsl-cred). - Create / install the GitHub App once (
npm run register-appindsh-wsl-github, or follow that repo’s docs). - Before
dsh web, load App env (WSL):
set -a
source "$HOME/.dsh/dsh-wsl-github.env"
set +a
# optional proxy (Clash / V2Ray on Windows):
export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
export NODE_USE_ENV_PROXY=1
dsh web- Open a new session. Ask the agent, for example:
- “Run
github_app_hint— are we authenticated?” - “Run
github_repo_statusfor this repo.” - “Open that PR URL with
win_open_url.” - If API fails: “Run
net_doctor.” - If
git pushfails: “Runcred_hint.”
- “Run
Do not paste GITHUB_APP_* values or the PEM into chat.
| Plugin | Role |
|---|---|
| dsh-wsl-env | Inject WSL/Windows path & shell facts into the system prompt |
| dsh-wsl-net | net_doctor — proxy / Node 24 fetch / DeepSeek + npm probes (+ fix snippets) |
| dsh-wsl-open | Click Linux paths in chat → open in Windows |
| dsh-repeat-stop | Hard-stop consecutive identical tool calls |
| dsh-tool-budget | Cap total tool calls per session |
| Plugin | Role |
|---|---|
| dsh-wsl-clipboard | wsl_clipboard — read/write the Windows clipboard |
| dsh-wsl-launch | win_launch — start allowlisted Windows apps |
| dsh-wsl-path | path_convert — Linux ↔ Windows paths + /mnt/c caveats |
| dsh-wsl-browser | win_open_url — open http(s) in the Windows browser |
| dsh-wsl-notify | win_notify — Windows MessageBox when a long task finishes |
| dsh-wsl-github | github_repo_status — GitHub App: open PRs + latest Actions (no secrets) |
| Plugin | Role |
|---|---|
| dsh-wsl-gpu | gpu_doctor — nvidia-smi / CUDA visibility in WSL |
| dsh-wsl-port | port_doctor — listen + localhost forwarding hints |
| dsh-wsl-distro | distro_info — multi-distro / os-release facts |
| dsh-wsl-cred | cred_hint — Git Credential Manager guidance (never dumps secrets) |
Optional related: session-contract.
| Set | Plugins |
|---|---|
| Minimal | env, net, open, repeat-stop |
| Daily | Minimal + tool-budget, clipboard, path, browser, launch |
| GitHub day | Daily + dsh-wsl-github + dsh-wsl-cred |
| Full | Everything in install.sh |
Prerequisites: DeepSeek Harness installed; dsh on PATH inside WSL; profile usually web.
One-shot (GitHub sources):
curl -fsSL https://raw.githubusercontent.com/173787247/dsh-wsl-kit/master/install.sh | bash
# or clone this repo and:
bash install.sh
# optional: DSH_PROFILE=web bash install.shLocal checkouts (example):
KIT=/absolute/path/to/AIFullStackDevelopment
for p in dsh-wsl-env dsh-wsl-net dsh-wsl-open dsh-repeat-stop dsh-tool-budget \
dsh-wsl-clipboard dsh-wsl-launch dsh-wsl-path dsh-wsl-browser dsh-wsl-github; do
dsh plugin --profile web add "$KIT/$p"
doneThen:
- Restart
dsh web. - Open a new session (old sessions keep the old prompt/tools).
- Optionally merge
cordis.patch.ymlinto your profile patch.
Important: a later layer that sets a pluginconfigreplaces the entire object—restate every key you still want.
If Clash / V2Ray runs on Windows and WSL must use it:
export HTTP_PROXY=http://127.0.0.1:7890 # change port to yours
export HTTPS_PROXY=http://127.0.0.1:7890
export NODE_USE_ENV_PROXY=1
dsh webAsk the agent to run net_doctor if API / npm still fails.
| Check | How |
|---|---|
| env | Trajectory → SYSTEM → System Prompt → search Windows Subsystem for Linux |
| net | Tools lists net_doctor; ask to probe DeepSeek / npm |
| open | Agent writes under /home/...; path is clickable |
| clipboard | Ask to copy a path to the Windows clipboard |
| path | Ask to convert /mnt/c/Users/... ↔ C:\Users\... |
| repeat-stop / budget | Spam identical tools → dsh-*-*: blocked in Trajectory |
| github | Tools list github_app_hint / github_repo_status; after App env is loaded, ask for current-repo status |
- Plugins run with your Harness permissions (files, network, Windows interop via PowerShell/
cmd). win_launchis allowlisted; extendconfig.allowlistdeliberately.cred_hintonly prints helper configuration advice—never tokens.github_repo_statususes a GitHub App installation token in memory; never paste the PEM into chat.win_notifyuses a blocking MessageBox; keep titles/bodies short and secret-free.
deepseek-harness · dsh-plugin · wsl · github-app
MIT — same as the individual plugins.