Introduction¶
A DSH session often deals with multiple Git repositories at the same time: the frontend, backend, and tool scripts are cloned into the workspace, making it cumbersome to check commits one by one in the client.
dsh-git-multirepo is a third-party DSH plugin maintained by drypeek, designed for developers who need to view multiple repository commits in the DSH client simultaneously. Below is an introduction to its positioning, installation method, and actual usage.
What is it¶
dsh-git-multirepo is a third-party plugin for DeepSeek Harness (DSH), written in JavaScript, with the npm package name dsh-git-multirepo. The current version is 0.1.2 and it is licensed under MIT. The README explicitly states that it has no affiliation with DeepSeek.
Its goal is to display commits scattered across repositories such as frontend, backend, and tooling within a DSH session under a single Repositories tab, ordered by timeline. Each commit is labeled with its repository, eliminating the repetitive task of switching between repository directories to view git log.
Core Features¶
The capabilities listed in the README include:
- View commits for the current branch or all branches; in current branch mode, new remote commits are displayed in a separate section.
- Expand commit messages and lists of changed files; clicking a file name opens the diff for that file in the right sidebar.
- Filter the commit list by repository, date, commit message, author, or short hash.
- View uncommitted local changes and ahead/behind counts, and pull remote updates for multiple repositories at once.
Runtime Requirements: DSH 0.2.1-rc.5 to 0.2.x, Git 2.36+, and Node.js 20+ environment.
Installation and Enabling¶
In the DSH desktop client, open Plugins → Add plugin → Install a third-party plugin and enter the package name dsh-git-multirepo; or run the command line installation directly:
dsh plugin --profile <profile> add dsh-git-multirepo
This step installs the plugin package from npm. The plugin is enabled by default; if it was manually disabled previously, it needs to be re-enabled on the Plugins page. After installation or update, restart the desktop client; for the Web GUI, refresh the page. The Repositories tab will then appear next to Chat and Trajectory in the session.
Other installation targets:
- Use the pre-built tarball from the latest GitHub Release:
dsh plugin --profile <profile> add https://github.com/drypeek/dsh-git-multirepo/releases/latest/download/dsh-git-multirepo.tgz
- Local checkout for development:
git clone https://github.com/drypeek/dsh-git-multirepo.git
dsh plugin --profile <profile> add "link:/absolute/path/to/dsh-git-multirepo"
Typical Usage¶
Open the Repositories tab; the plugin will scan the work directory of the current session. Switching sessions changes the displayed directory.
Click a commit to expand the details, then click a file name to open the diff for that file. Repository tags control which repositories appear in the list; you can use search and date filters to narrow the scope.
| Button | Behavior |
|---|---|
| Refresh | Re-read local history and repository status; does not request remote updates |
| Fetch | Execute git fetch --all --prune in all discovered repositories, then refresh; requests confirmation if the repository is already known |
Note: Fetch does not execute git pull, does not merge branches, and does not update workspace files. Newly arrived commits are for viewing purposes only; merging is a separate step. When this tab is open, the chat input box is hidden. To reply to a message, switch back to Chat.
Usage Limits and Security Notes¶
The repository discovery mechanism defaults to scanning four levels deep, listing a maximum of 100 repositories, and skipping hidden directories as well as dependency and build directories like node_modules, bin, obj, dist, and target. The interface will prompt when the scan limit is reached. The commit list displays the latest 40 commits per repository, with limits on total quantity and volume. For full history, please use git log in the terminal; when the quantity is too large, the file list and diffs may be truncated or cause errors.
There are limits on reading linked worktrees: if the main repository is not in the workspace where the worktree is located, you must register the main repository as a DSH workspace as well—the Git metadata and object directories must fall within the registered workspace. Repositories sharing objects via objects/info/alternates are currently not supported. When objects are missing from a partial clone, commit and diff reading will not automatically complete. Try Fetch first; if objects are still missing, retrieve them in the terminal and reopen the diff.
Regarding security, the plugin has no telemetry or analytics features. Normal viewing only reads local history; Git network transfers are triggered only by Fetch. The plugin does not commit, push, or merge code. Fetch reuses your existing SSH and Git credential configurations and may execute programs configured within the repository; therefore, it should only be used for trusted repositories. System and global Git configurations are also considered trusted user configurations. DSH is responsible for routing authentication, and repository paths are limited to registered workspaces. For specific controls and the vulnerability reporting process, see SECURITY.md in the repository.
Conclusion¶
The value of dsh-git-multirepo is narrow and clear: within a multi-repository DSH workspace, it aggregates commits and diffs from each repository into a filterable, searchable timeline, without taking over any commit, push, or merge operations. It is suitable for developers who need to monitor multiple repositories daily. The plugin runs with the permissions of the DSH process. Before installing, it is recommended to read the source code and the MIT license to ensure the source and scope of permissions for the command-line installation align with your environment.
- Community directory page: https://www.skillhub.cn/plugins/drypeek/dsh-git-multirepo
- GitHub repository: https://github.com/drypeek/dsh-git-multirepo