Dsh-Github
August 15, 2026 · View on GitHub
Dsh-Github
中文 | [English] | dsh-plugin topic
Publish your DeepSeek Harness plugins to GitHub with a single command.
Built specifically for DeepSeek Harness — smarter · more convenient · auto-polished. Post-publish tweaks, UI refinements and beautification all happen in the same session.

Features
| Feature | Description | |
|---|---|---|
| One-command publish | Triggered from the DeepSeek Harness settings page — one command uploads your complete local plugin source to a GitHub repository | |
| Smart AI session | Publishing spawns a dedicated AI session that handles repo creation, source upload and push automatically | |
| Auto topic tagging | The repository is tagged with the dsh-plugin topic so the DSH plugin ecosystem can find it | |
| Bilingual README | Auto-generates a bilingual README (Chinese & English) plus a dark-tech banner for a global audience | |
| Ongoing polish | Post-publish fixes, UI detail tweaks and beautification continue in the same session — no need to republish | |
| Secure by design | Your GitHub token is only injected via environment variables and never written into any committed file |
Installation
This is a Web plugin — the one-command install below is the recommended path.
Option 1: One-command install (recommended)
Run this in any terminal:
dsh plugin --profile web add github:LvsH13/dsh-github
The command runs pnpm add inside your web profile directory, adding dsh-github to its dependencies automatically.
Then add the plugin to the insert list of cordis.patch.yml as described in the Configuration section, and restart dsh web.
If
dshis not found, install DeepSeek Harness first — thedshCLI becomes globally available afterwards.
Option 2: Manual install
-
Open your web profile directory (default
%USERPROFILE%\.dsh\profiles\web, customizable via theDSH_HOMEenvironment variable); -
Add the package to
dependenciesinpackage.json:"dsh-github": "github:LvsH13/dsh-github" -
Add the plugin to the
insertlist ofcordis.patch.yml(see the Configuration section); -
Restart DeepSeek Harness (
dsh web).
Note on Agent-preset plugins
For Agent-preset plugins: copy the plugin directory into your preset root
(e.g. %USERPROFILE%\.dsh\.agent-presets\) and restart — it takes effect immediately.
This plugin is a Web plugin, so it uses the install methods above instead.
Usage
- Start DeepSeek Harness (
dsh web) and open the settings page — find the Git 发布 / Git Pub (GitPub) entry; - Fill in the publish details: plugin source directory, repository name, description, design requirements, language mode and visibility — then paste your Personal Access Token (see the tutorial below);
- Click Publish — a dedicated AI session is created automatically;
- The session automatically: creates the GitHub repo → uploads the plugin source → adds the
dsh-plugintopic → generates the bilingual README & cover → pushes to GitHub; - After publishing, keep requesting fixes, UI polish or beautification in the same session — no need to leave the harness.
Getting a Personal Access Token (step-by-step)
Publishing plugins requires a GitHub Personal Access Token — think of it as a "publish-only key". The whole process takes about 2 minutes:
- Open GitHub and sign in: visit https://github.com/login in your browser and sign in (create an account first via Sign up if you don't have one);
- Open settings: click your avatar in the top-right corner → choose Settings from the dropdown menu;
- Find Developer settings: scroll all the way down the left-hand settings menu and click Developer settings at the very bottom;
- Open the tokens page: click Personal access tokens in the left menu to expand it, then click Tokens (classic);
Direct link: https://github.com/settings/tokens (open it while signed in to jump straight there)
- Create a token: click the green Generate new token button in the top-right, then choose Generate new token (classic);
- Add a note: in the Note field, type something like
dsh-github-publishso you can recognize it later; - Set an expiration: in Expiration, pick a duration —
30 daysis recommended (plenty for one publish, and shorter is safer); - Select scopes: tick
repoin the Select scopes area (the whole repo group, includingrepo:status,repo_deployment,public_repo, etc., is selected automatically) — this permission is required to publish repositories; - Generate the token: click the green Generate token button at the bottom of the page;
- Copy the token: a string starting with
ghp_appears at the top of the page — click the copy button on its right;Important: this string is shown only once. Once you close or refresh the page it is gone forever — copy and store it safely right away;
- Paste it into the plugin: return to DeepSeek Harness → Settings → Git 发布 / Git Pub, and paste the token into the Personal Access Token field (used for this session only, never saved);
- Publish: fill in the remaining details and click Publish — the AI session automatically handles repo creation, upload, polish and push;
- Delete it afterwards (recommended): once publishing is done, go back to https://github.com/settings/tokens and click Delete next to the token to eliminate any risk of leakage.
Quick path: github.com → avatar → Settings → Developer settings → Personal access tokens → Tokens (classic) → Generate new token (classic)
Troubleshooting:
- 401/403 or insufficient permissions: check that the
reposcope is selected and the token hasn't expired; simply generate a fresh token;- Token rejected: make sure you didn't copy extra spaces or miss characters — copy and paste again;
- Security: treat the token like a password — never share it, never put it in code or chat logs. This plugin only uses it to access your own repositories, and only via environment variables — it is never written to disk.
Configuration
| Setting | Location | Description |
|---|---|---|
DSH_HOME | Environment variable | DSH data root, defaults to %USERPROFILE%\.dsh |
| web profile | $DSH_HOME\profiles\web\ | The profile directory holding web-plugin dependencies and patches |
package.json | inside the web profile | Declares plugin packages under dependencies |
cordis.patch.yml | inside the web profile | The user patch layer — add the plugin's id/name to the insert list |
Example cordis.patch.yml (inserting dsh-github after an existing row):
- id: <existing-row-id>
insert:
- dsh-github
The anchor row id depends on the current composed tree — run
dsh --profile web --dump-configto inspect it.
Token safety: your GitHub token is only injected through environment variables
(e.g. $env:GHPUB_TOKEN = (Get-Content -Raw <path>).Trim()), never written into any committed file, and never shown in plain text in conversations.
Screenshots
| Settings page — Git Pub entry | One-command publish session |
|---|---|
![]() | ![]() |
The result: your GitHub repository page — bilingual README + dark-tech cover + dsh-plugin topic

Want more screenshots (installation steps, token setup, before/after polish)? Drop them into the
images\folder of this session's workspace and they will be laid out here automatically.
License
Made for DeepSeek Harness · dsh-plugin topic

