Introduction¶
When interacting with GitHub within DeepSeek Harness (DSH), a common practice is to let the Agent go through the terminal: typing curl, assembling tokens, parsing JSON, handling pagination and error codes manually, and splitting multi-file commits into several steps. The DSH GitHub Tool bundles this process into a plugin, enabling REST / GraphQL calls, one-click file submission, and Discussions directly within the chat.
The following sections introduce this plugin in the order of features, installation, configuration, and usage.
What is this¶
DSH GitHub Tool is a DSH Web plugin maintained by H-table, open-sourced under the MIT License, with the current version being 1.0.0. It solves a very specific problem: allowing DSH to connect directly to GitHub to read repositories, write files, query GraphQL, and post discussions directly within the chat; Tokens are encrypted and stored via the credential system (ctx.credentials), and an HTTP proxy can be configured when the network is restricted.
Core Features¶
Four Model Tools¶
The plugin provides 4 model tools, automatically registered for each session without requiring extra Skills:
github_api: General GitHub REST calls;github_push_files: Multi-file single commit;github_graphql: General GraphQL calls;github_create_discussion: Post Discussion threads.
Encrypted Credential Storage¶
The GitHub Token is encrypted and stored via the DSH credential system (ctx.credentials) and never written to config files; the config card only shows “Configured Key / Unconfigured Key” and does not return the key to the browser. The default reference name for the Token in the credential system is GITHUB_TOKEN.
Multi-file Single Commit and Binary Upload¶
github_push_files uses the git data API (blob → tree → commit → ref) to commit multiple files at once, returning commit_sha and html_url; if the target branch does not exist, it automatically falls back to the repository’s default branch.
The upload is binary-safe: files[].localPath reads local files directly (e.g., PNG), writes to the git data API in base64, and does not go through text encoding.
Optional HTTP Proxy¶
In restricted network environments, configuring an HTTP(S) proxy (CONNECT tunnel) allows direct connection to GitHub; this is done with a single field without needing to change system environment variables.
Installation and Enablement¶
Installation uses a local profile link + symlink approach, divided into three steps.
- Add the following to
~/.dsh/profiles/web/package.json:
"dependencies": { "@local/dsh-github-tool": "link:<this repository directory>" },
"dsh": { "profile": { "bundles": ["@local/dsh-github-tool"] } }
-
Create a symlink from
node_modules/@local/dsh-github-toolto the local repository directory. -
Restart the Web Profile.
The plugin’s peerDependencies are @deepseek-ai/dsh-tools, @deepseek-ai/dsh-settings, @deepseek-ai/dsh-credentials (^0.1.0-rc.6), as well as @deepseek-ai/schemastery (^3.18.1), and @deepseek-ai/cordis (^4.0.1). Confirm your environment meets these requirements before installing.
Configuring Token and Settings¶
First, prepare credentials: Create a new Personal Access Token on GitHub and check the repo permission; if you want to post Discussions, you also need read:discussion / write:discussion or the corresponding scope.
Then, on the plugin side: Go to Settings → Plugins → Plugin Config → “GitHub Connection”, paste and save in the Token input box; the card showing “Configured Key” indicates it is active. This card is the same as the official plugin, supporting staged editing, overwrite markers, and restoring defaults. Fillable fields include API base URL, username, default repository/branch, proxy, credential name, and default commit message.
The default values for each field are as follows:
apiBase:https://api.github.comcredential:GITHUB_TOKENdefaultBranch:maindefaultCommitMessage:"chore: update via DSH"username,defaultRepo,proxy: Empty by default
Typical Usage¶
After the above steps, you can use it directly in the chat:
Use github_api to check the last 5 commits of H-table/dsh-github-tool.
Commit README.md and assets/hero.svg to my default repository with the commit message "docs: update README".
Upload the local file C:/Users/me/logo.png to the assets directory of H-table/dsh-bg-tool.
Create a Discussion in H-table/dsh-github-tool with the title "Idea Collection" and body "Welcome to share usage suggestions".
A detail: The path for github_api does not include a leading slash, e.g., repos/octocat/Hello-World or user/repos?per_page=5.
Use Cases and Notes¶
Suitable for users who need to directly read/write GitHub within DSH chats: checking repository status, updating project files, uploading local images, and posting discussions. In restricted network environments, the proxy field saves the trouble of changing system proxy settings.
A few notes before use:
- Token Permissions: For basic use, check
repo; for posting Discussions, you also needread:discussion/write:discussionor the corresponding scope. - Rate Limiting: Unauthenticated requests to GitHub are limited to 60 per hour. Confirm the token is active, or control the call frequency.
- Timeouts: Proxy connection timeout defaults to 60s (120s for
github_push_files). For slow networks, you can override this per call usingtimeoutMs. - Security: The plugin runs with the permissions of the current DSH process. Please check the source code and license before installing (this project is MIT).
Additionally, the same author maintains companion projects dsh-bg-tool (local GPU cutout) and dsh-vision-toolkit (visual toolkit), which can be used together.
Conclusion¶
DSH GitHub Tool turns GitHub’s read, write, query, and post operations into 4 tools usable within the chat. With encrypted credential storage and ready-to-use proxy configuration, it eliminates the need to manually assemble requests in the terminal. If you interact with GitHub frequently in DSH, give it a try.
- Community Directory Page: https://www.skillhub.cn/plugins/H-table/dsh-github-tool
- GitHub Repository: https://github.com/H-table/dsh-github-tool
It should be noted that the aforementioned directory is an independent site maintained by the community and has no official affiliation with DeepSeek or Huaan (Firm).