mrkeyoor.com_
Tue 01 Sept 17:42 UTC
Dev Toolsevaluationupdated 26 Aug 2026

dsh-gitbash-preset review

dsh-gitbash-preset is a DeepSeek Harness plugin whose main README is written in Simplified Chinese; no separate English guide is linked, though package metadata has an English description. It adds a Windows version of DSH's minimal agent preset, routing each bash tool call through Git for Windows when DSH's normal persistent shell cannot run on Win32.

+0stars / 7d
Verdict

Our run installed 0 dependencies in 5 seconds, yet 3 of the 11 counted tests failed, so this tiny plugin still needs a local compatibility check before use. It is a narrow answer for Chinese-reading DeepSeek Harness users who already have Git for Windows and can approve full-access commands. Choose WSL or another persistent shell path if session state, restricted execution, or English operational docs are requirements.

We ran it

Lab card: what happened when we ran dsh-gitbash-presetScreenshot of dsh-gitbash-preset (github.com/liceses/dsh-gitbash-preset)
Install✓ · 5s0 packages · 1 MB
Buildn/ano build script
Tests✗ · 4s8 passed · 3 failed of 11 (node:test)
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo10 files~562 lines of source · 0 MB · 0 CI workflows

Answers from our run

Does dsh-gitbash-preset build from source?

Dependencies installed in 5 seconds (0 packages), and the project has no separate build step. We cloned commit db21575 into a clean Debian container with 3 CPUs and no project-specific setup.

Do dsh-gitbash-preset's tests pass?

Not all of them: 8 of 11 passed and 3 failed when we ran the project's own test command (node:test). Some failures need services or credentials a bare container does not have.

Does dsh-gitbash-preset have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use dsh-gitbash-preset?

Users who need English setup and troubleshooting documentation: the repository's only README is primarily Simplified Chinese.

What are the alternatives to dsh-gitbash-preset?

Windows Subsystem for Linux, Git for Windows, MSYS2 installer. Our run installed 0 dependencies in 5 seconds, yet 3 of the 11 counted tests failed, so this tiny plugin still needs a local compatibility check before use.

Setup3/5No dependencies, but DSH restart and full-access approval are required
Docs2/5Specific Chinese guide, with no linked English setup document
Community2/5137 stars, no open tracker items, and no tagged release
Maturity2/5Version 0.1.2 is narrow and 3 tests failed in our run

Who it’s for

Windows users already running DeepSeek Harness who need its minimal preset to call Git Bash.
DSH administrators who accept explicit full-access approvals for commands that MSYS cannot start inside the restricted token sandbox.
Developers who prefer a tiny preset with no npm runtime dependencies.
Chinese-reading users who can audit the installation, sandbox, and per-command shell behavior in the existing README.

Who it’s NOT for

Users who need English setup and troubleshooting documentation: the repository's only README is primarily Simplified Chinese.
Teams that forbid full-access shell execution: the README says Git Bash cannot launch under workspace-write or narrower DSH sandbox policies.
Workflows that depend on cd, exported variables, aliases, or shell jobs surviving across calls: every command starts a new Git Bash process.
Anyone expecting a normal Windows DSH shell fix: this installs a separate preset and does not remove the underlying Win32 PTY limitation.
Buyers requiring green tests and CI before installation: our run had 3 failing tests, and the repository has 0 CI workflow files.

Setup reality

Our sandbox install succeeded in 5 seconds, added 0 packages, and used 1 MB. There is no build script or target, so the build step was skipped. Tests failed after 4 seconds: the supplied summary reports 8 passed and 3 failed out of 11; the node:test tail also records 1 skipped entry. Npm audit found 0 known vulnerabilities.

Use requires DeepSeek Harness, Node.js 20 or newer, and Git for Windows. The plugin can discover bash.exe from GIT_BASH, common install directories, or PATH; an explicit shellPath is available. Installation modifies the DSH web profile and takes effect after DSH restarts.

The executor only runs under danger-full-access or a deployment without a sandbox. Under workspace-write, the first call can request a one-time escalation through DSH's normal approval path. Every tool call gets a fresh shell, with a 120-second default timeout and 64,000-byte retained output per stream.

The plugin fixes one Windows-only DSH preset failure

DeepSeek Harness's minimal mode expects a persistent bash process through a PTY backend. The README says the local subprocess package rejects terminal inspection on Win32, while the normal bash tool also expects a bash executable on PATH. dsh-gitbash-preset avoids those two assumptions by installing a separate minimal-gitbash preset. Its executor launches Git for Windows Bash for each command rather than trying to preserve the original PTY session.

The result keeps the minimal persona and str_replace_editor tool while swapping the shell service. That is a narrow change, which is good for auditability. The repository has 10 files and about 562 lines of source. Package metadata identifies version 0.1.2, requires Node.js 20 or newer, and declares no runtime dependencies. It is a preset adapter, not a general terminal emulator or a patch to DSH's Win32 process support.

Full-access approval is a design requirement

Git Bash uses the MSYS runtime. According to the README, it cannot create its signal pipe inside DSH's restricted Windows token sandbox. The executor therefore checks the session policy and runs only under danger-full-access or a deployment with no sandbox. With workspace-write or a narrower policy, it returns an error that directs the model to request a one-time permission escalation through the normal approval mechanism.

That boundary is honest, but it removes the containment many teams expect from an agent shell. A command approved for full access can reach more than the workspace. The plugin does not claim to bypass the sandbox; it refuses to run until the policy permits it. Administrators should preserve the approval prompt, review the exact command, and avoid setting every session to full access merely to make the preset feel automatic.

What happened when we ran it

Our sandbox install finished in 5 seconds, added 0 packages, and occupied 1 MB. There was no build script or target, so the build step was skipped. Npm audit found 0 known vulnerabilities across the installed dependency set. The checkout had no CI workflow file, Dockerfile, or root tests directory, although the source tree includes one test file under the bundled preset.

The test command failed with exit code 1 after 4 seconds. The supplied node:test summary counts 8 passed and 3 failed out of 11. Its tail prints 12 total entries because it also lists 1 skipped test. The final excerpt contains only aggregate counts and durations, not the names or error messages for the three failures. We therefore cannot say whether they concern path discovery, configuration validation, or another behavior.

This run used commit db21575 in a fresh Node 22 Debian container with 3 CPUs, 8 GB of RAM, and no secrets. It did not run on Windows, start Git Bash, or attach to DeepSeek Harness. A Linux syntax and unit-test run cannot prove the core Win32 integration. The 3 failures make a Windows smoke test more important, especially around paths containing spaces, permission escalation, timeouts, and process termination.

Shell discovery is flexible, while state never carries over

The executor checks an explicit shellPath first. Automatic discovery considers the GIT_BASH environment variable, common locations under Program Files and LocalAppData, bash.exe on PATH, and finally bash. This covers standard Git for Windows installations without forcing one hard-coded directory. Users with a portable or unusual install can point directly to the executable in the preset configuration.

Each tool call runs a new bash -c process. The README is clear that cd, exported variables, functions, and other shell state do not survive into the next call. Commands should use absolute paths, combine dependent steps in one invocation, or set required environment values each time. The default timeout is 120,000 milliseconds, capped at 600,000, and each output stream retains 64,000 bytes before overflow goes to a spill file.

Fresh processes are less convenient than DSH's intended persistent minimal shell. They also make individual executions easier to reason about because one command cannot silently inherit a directory or alias from an earlier exchange. Whether that trade suits the workflow depends on how often the agent runs multi-step build commands. A session that repeatedly relies on changing directories will be awkward unless its instructions account for stateless calls.

Installation copies a preset and will not overwrite it by default

The documented command adds @icelily/dsh-gitbash-preset to the DSH web profile. After DSH restarts, the plugin copies its bundled preset into ${DSH_HOME:-~/.dsh}/.agent-presets/minimal-gitbash/. If that directory already exists, installation skips it. Setting force: true permits replacement, while the default protects local additions from an automatic overwrite. Manual installation is also possible by copying the preset directory.

The main README is primarily Simplified Chinese. It explains the PTY failure, shell discovery order, sandbox check, configuration limits, and state behavior in useful detail, but there is no linked English guide. That narrows the audience for a plugin already tied to one Windows and DSH combination. GitHub showed 137 stars, 0 combined open issues and pull requests, a last push on August 16, 2026, and no latest release record.

The recent push suggests current work, while the absence of issues gives little evidence about real-world support volume. With 0 installed dependencies, reviewing the code is feasible. Do that, rerun the three failing cases with full output, and test one harmless command under both workspace-write and approved full access. If those checks pass, the preset solves its small problem without pretending to make MSYS compatible with DSH's restricted sandbox.

Alternatives

ProjectWhat it isPick it when
Windows Subsystem for Linux gh↗A Linux environment on Windows with a native Linux shell and process model.pick this instead when persistent shell state and broader Linux compatibility matter more than staying inside Git Bash.
Git for WindowsThe Windows Git distribution that supplies the Bash executable this preset invokes.pick this instead when you only need an interactive Git Bash shell and do not need a DSH agent preset.
MSYS2 installerAn installer for a fuller MSYS2 environment and package-managed Unix tools on Windows.pick this instead when you need a maintained Unix-like toolchain rather than one agent's command executor.

What people are saying

  1. [velocity-scout] liceses/dsh-gitbash-preset

Sources

  1. dsh-gitbash-preset README
  2. dsh-gitbash-preset repository activity
  3. Package metadata for version 0.1.2
  4. GitHub releases page

More dev tools reviews

workmux · v2rayNG · SecLists · hashcat · eslint · fastfetch · the whole board →