DeepSeek Harness for GitHub
Run DeepSeek Harness in GitHub PRs, issues, and failed CI workflows for reviews, diagnoses, and validated fixes.
- Source repo
- Lixiaoyiao/deepseek-harness-action
- Stars
- ★ 46
- Last updated
- today
- License
- MIT
- Primary language
- TypeScript
- FA score
- 77/100 · Good
At a glance
- How it runs
- Works with
- Platform-specific
- Cost
- Free software; you pay for model usage
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- A maintainer wants review summaries and high-confidence inline findings whenever a non-draft PR is opened or updated.
- Not a fit if
- Teams that do not run workflows on GitHub Actions
- Teams that cannot send task data to DeepSeek
- Source review
- 77/100 · Good
What does this agent do, and when should you use it?
This community GitHub Action starts a DSH worker isolated from GitHub credentials and validates its structured result through a trusted Controller. It responds to @dsh comments on issues and pull requests, and can automatically review non-draft PRs; the starter configuration is read-only. Workflows run on GitHub-hosted Linux runners, use a DeepSeek API key, and can run the worker in Docker isolation. Authorized writes require trusted context, permission checks, fixed validation commands, and successful validation before the Controller publishes changes or a PR. This is not an official DeepSeek or GitHub product.
When triggered, the Action checks out the trusted base branch, reads PR, issue, comment, or failed-check information through GitHub APIs, and starts a DSH worker that does not receive the real GITHUB_TOKEN or DeepSeek key. The worker can review code, answer repository questions, diagnose CI failures, or propose and implement fixes when write mode is authorized. The Controller validates structured results; write operations also pass permission checks and configured validation commands before comments, commits, or PRs are published. The starter workflow is read-only, and natural-language writes must be explicitly enabled.
- A maintainer wants review summaries and high-confidence inline findings whenever a non-draft PR is opened or updated.
- A collaborator with write access wants to ask repository or issue questions with
@dshin an issue or PR comment. - A CI maintainer needs diagnoses based on failed checks and logs, with fixes validated in a trusted write workflow.
- A team wants authorized issue implementation requests turned into validated branches and pull requests.
- A maintainer needs to inspect agent progress and failure details in Actions logs.
How do you install or deploy this agent?
From a local clone of the target repository, sign in with GitHub CLI; the installer uses that repository and prompts before creating files, setting the secret, committing, and pushing. Windows requires Node.js 24 or later, Git for Windows, and GitHub CLI; on macOS/Linux use npm. Provide a DeepSeek API key, which the installer stores as the repository Actions secret DEEPSEEK_API_KEY. Alternatively, create the secret and workflow manually, including the required permissions and safe checkout rules.
cd "C:\path\to\your-repository"
gh auth login
npm.cmd create deepseek-harness-action@latestFor natural-language writes, also enable natural-language-write: "true" and allow-write: "true" in a write-capable workflow and configure repository-specific validation commands.
How do you use this agent?
Ensure .github/workflows/dsh-review.yml is on the default branch. A collaborator can post this in an issue or PR comment; the starter workflow is read-only, so a natural-language fix request produces analysis or a proposal without editing files.
@dsh Help me understand this issueAutomatic review runs for non-draft PRs. Open Actions → DSH review to follow progress or inspect failure details. To request a write, use a trusted workflow with write gates and validation commands enabled; for example:
@dsh Please fix this bug and open a PRWhat are this agent's strengths and limitations?
- Integrates PR review, CI diagnosis, fixes, and issue-to-PR work into GitHub Actions workflows.
- Read-only by default; writes are gated by trusted context, permissions, Docker, and validation commands.
- Separates the Controller from the DSH worker so the Agent does not receive the real GitHub token or DeepSeek key.
- Documents trusted-base checkout rules and avoids executing fork code.
- Requires GitHub Actions and a DeepSeek API key; users may incur model usage charges.
- Writes require additional trusted-workflow, validation-command, and permission configuration.
- The Action runtime and DSH version are pinned; production deployment guidance recommends pinning the Action's full commit SHA.
- Plugins and MCP servers are trusted worker code; Docker isolation does not constrain extension startup or direct process I/O.
How does this agent compare with similar options?
The README relates this project to Claude Code Action integration patterns and the execution/publication separation described by Codex GitHub Action; it provides no feature or performance comparison.
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| DeepSeek Harness for GitHub This agent | 77 · Good | Chat botFree + model costs | ★ 46 | today | TypeScript | — |
| Vet Code Change Verifier | 65 · Some gaps | CLIFree + model costs | ★ 511 | 1mo ago | Python | Codex · Claude Code · OpenAI API · Claude API |
| Remote SWE Agents | 66 · Some gaps | Self-hosted serviceFree + model costs | ★ 244 | 17d ago | TypeScript | — |
| TAKT Workflow Orchestrator | 57 · Major gaps | CLIFree + model costs | ★ 1.4k | 1d ago | TypeScript | Codex · Claude Code · OpenAI API · Claude API |
How does FollowAgents rate this agent?
Why each dimension lost points
Evidence shows strong least-privilege design: allow-write defaults false, natural-language-write is a separate default-off switch, strict permission profile, Docker isolation, worker never holds the real GITHUB_TOKEN or DeepSeek key, controller-side credential proxy, typed github.* exact-ID deferred mutations, and fork review checks out only the trusted base SHA with persist-credentials:false. Deductions: isolation:none and dsh-executable host execution remain trusted inputs that remove the OS boundary if misconfigured; in native mode bridge networking and read/write mounts are whole-worker capabilities rather than per-tool sandboxes, and the docs admit extension startup and background processes are outside ToolRuntime limits. User confirmation: writes require multiple explicit switches and validation, but the installer creates files, sets a secret, commits and pushes, with confirmation described only in README and no code-level evidence. Data-flow transparency is good: trusted control plane vs untrusted data is clearly separated, credential-routing inputs are flagged, CI logs are bounded and redacted. Sensitive data handling covers redaction, bounding, no credentials in argv, and Session excluding credentials. Dependency security is deducted: the repo's own audit doc reports a non-clean graph (12 affected entries, 5 high) with unresolved MCP OAuth and nested fflate copies, mitigated only by reachability arguments. External effects are gated by deferred writes and validation, but enabling write mode can create branches and PRs, and rollback relies only on branch/PR isolation with no explicit revert mechanism. Source attribution has MIT and THIRD_PARTY_NOTICES references, but publisher identity is unverified and attribution rests on self-description.
Self-consistency: docs broadly agree on command semantics, write gates and mode defaults, but DSH version 0.2.1-rc.2 in README/docs coexists with 0.2.0-rc.2 in the dependency audit doc, an inconsistency. Dependency availability: exact pins and image digests aid reproducibility, but the audit doc admits a non-clean audit with unresolved nested dependencies, and Node 24 plus Docker are heavy prerequisites. Failure messages: docs describe failure classification, redaction, step summary and result-json, but mostly as assertions without concrete error codes or message samples, so only a moderate score.
Audience and scenarios are broad: PR review, CI diagnosis, auto-fix, Issue-to-PR, general Q&A, and dispatch automation, with bilingual docs and multiple templates. Capability boundaries are thoroughly documented: native is explicitly not a sandbox, extensions are trusted worker code, Validation Integrity is not a formal proof, and PDF/Office are not parsed. Trigger precision is high: line-start @dsh, non-quoted non-code, one actionable mention, bot requests ignored, reserved first-word commands. Environment fit is deducted: heavy reliance on GitHub-hosted Linux runners, Docker and Node 24, self-hosted/corporate networks need extra segmentation, and Windows setup steps are long with PowerShell special cases.
Information architecture is clear: README plus a layered docs directory covering setup, usage, configuration, security, troubleshooting and architecture, with generated input tables. Install notes are detailed, including an interactive installer, manual setup and recovery guidance. Naming stability is deducted: installer 0.7.2, Action v0.12.0 and DSH 0.2.1-rc.2 coexist, and production use requires switching to a full commit SHA, making version-to-name mapping non-obvious. Examples and FAQ: several example templates and troubleshooting exist, but example file contents are not in this evidence and FAQ form is not prominent. Known limitations are a clear strength. License is full MIT text. Versioning/changelog: README references CHANGELOG but its content is absent and multiple version numbers coexist. Maintenance responsibility: stated as maintained by @Lixiaoyiao and a community non-official project, but the publisher is unverified and the maintenance commitment lacks external corroboration.
Output usability: schema-v1 structured results, sticky comments, high-confidence inline findings, step summary and outputs are designed for usability, but no actual output samples are in evidence (only live-run links), so quality cannot be statically confirmed. Marginal value: adds AI review and diagnosis on top of existing CI and human review, genuinely useful but crowded, with differentiation mainly in security boundaries rather than capability. Cost-benefit: requires Docker, Node 24, DeepSeek API quota and long timeouts (default 20 minutes, 3 turns), which may be heavy for small repos; no cost or token-budget estimates are provided.
Claim traceability: many claims cite doc sections, invariant IDs, advisory links and reproduction commands, which is good; however core security guarantees are mostly documentation assertions without corresponding code or test evidence in this material. Cross-source corroboration: README, SECURITY, configuration and usage largely agree, but the DSH version mismatch between the dependency audit doc and README weakens corroboration. Fact/inference separation: the dependency audit doc clearly distinguishes fixed, disputed and reachability-inferred items, which is good; but live runs and CI badges are external claims that static review cannot verify, so full marks are not given.
- The repo's own dependency audit reports a non-clean npm audit (12 affected entries, 5 high) with unresolved MCP OAuth and nested fflate copies, mitigated only by reachability arguments; assess independently before enabling Office or OAuth-bearing extensions.
- isolation:none and dsh-executable remove the container boundary; in native mode bridge networking and read/write mounts are whole-worker capabilities, and extension startup and background processes are outside ToolRuntime limits.
- The installer creates files, writes a repository secret, commits and pushes; confirm the target repository and changes before running, and pin a full immutable commit SHA rather than a floating tag in production.
- DSH version numbers (0.2.1-rc.2 vs 0.2.0-rc.2) coexist with installer/Action versions in the docs; verify the actually locked version before upgrading.
- Publisher identity is unverified and this is a community project; apply extra caution with write mode, self-hosted runners and third-party extensions.
FAQ
Does it cost money to run?
Will it modify the repository by default?
Does it execute code from forks?
.git-less, credential-free worker; fork code is not executed.