Jorge Turbica / blog · Blog ← All articles ES · Leer en español
AI

Repo of the day: dsh-superagent, DeepSeek's agent that turns mentions into PRs

18,545 stars in five days: DeepSeek ships an agent that serves a GitHub repo with a Router and parallel workers. It's a research prototype.

18,545 stars and 2,073 forks in five days: that's what the autonomous agent prototype DeepSeek published on October 31, 2026 has racked up. It isn't a model or yet another coding CLI. It's a service that watches a repository and turns each request into a ticket with its own agent, its own directory and, eventually, a pull request.

What it is

dsh-superagent is a proactive agent for a single GitHub repository, packaged as a plugin for DeepSeek Harness, DeepSeek's agent runtime. It listens to GitHub (and optionally Feishu chats). When an allowed person mentions the agent's account, it opens a ticket, works on it in an isolated session and answers in the original conversation, usually with a PR. A local web panel shows only what needs a human.

Internally it follows the architecture of Exploring Super-agent Design, an article by the DeepSeek Harness team. A Router session talks to people, holds the global context and dispatches work, and each ticket runs in its own Executor (worker-<id>) in parallel, reporting to the Router instead of replying to users directly. Long commands move to the background after 5 seconds so a worker can pick up new messages, and background work gets 30 minutes after each turn before it's cut off. In the article's tests, with synthetic loads of about 300 messages and 20 work requests, this design finished tasks with a p95 of 15.7 minutes, against 29.5 minutes for a single session with subagents. The authors themselves note that this measures scheduling and coordination, not the quality of the work.

It's written in TypeScript under the MIT license, and the README says it up front: this is a research prototype, not an official DeepSeek product, written largely by coding agents and different from the internal version.

How to use it

The recommended setup is to ask your coding agent to read SETUP.md and do it with you. It asks one thing at a time (repository, agent account, who may request work, whether to enable auto-merge) and runs nothing until you confirm the plan. By hand, following the deployment guide, with Node.js 22.19+, pnpm, git, tmux, Python 3.8+ and GitHub CLI 2.48+:

bash
npm install -g @deepseek-ai/[email protected]
git clone https://github.com/deepseek-ai/dsh-superagent-prototype.git dsh-superagent
cd dsh-superagent
pnpm install && pnpm build
dsh superagent --from-default-profile web --dump-config > /dev/null
dsh plugin --profile superagent add "link:$PWD"
scripts/dsh-superagent start
scripts/dsh-superagent status

Then you configure sources and allowed lists from the panel or its management API. To try it, comment @<agent-account> <request> on an issue, and the ticket shows up in the panel within a minute.

The warning that matters is in the docs themselves: the Router and worker presets run with danger-full-access as the operator's OS user. A worker can execute any program and read your home directory; the gh wrappers pick the agent's credentials but don't isolate the process. The guide recommends a dedicated GitHub account (never your own) and, for real isolation, an OS user that holds only the agent's credentials.

What I like and what I don't

I like that the design is judged by how much human attention it costs. The agent only acts when someone on a list asks or when a rule the team wrote allows it, and proactive work starts in observe mode: it records what it would have done without doing it, so you can review its decisions before switching to auto. That's the right answer to the reasonable fear of an agent with write access flooding a repository with PRs nobody asked for.

What I don't: it depends on a release candidate of DeepSeek Harness (0.2.1-rc.3), it only supports github.com (not GitHub Enterprise Server), each install serves one repository, and it lives on a single machine under tmux, with an hourly check to bring it back if it dies. The project's own "research code with inconsistent style" warning is worth weighing before you hand it an account with write access.

dsh-superagent vs. Claude Code GitHub Actions

The most widespread reference for "mention the agent on an issue and get a PR" is the anthropics/claude-code-action action:

dsh-superagentClaude Code GitHub Actions
ApproachLong-running service with a Router and parallel workers; tickets resumeOne Actions job per event or mention
DeploymentYour machine, with tmux and DeepSeek HarnessGitHub Actions runners
Who can askAllowed lists and custom rules, observe modeUsers with write access, bots in allowed_bots
IsolationA directory per ticket, but it runs as the operator's userEach job's ephemeral runner
License and maturityMIT, research prototypeProduct at v1

If you want an agent to handle one-off requests with minimal infrastructure, the GitHub Action is simpler and every run starts on a clean runner. dsh-superagent makes sense for experimenting with an agent that keeps context across tickets, works on several at once and can act without a mention when the team allows it, always on a separate machine or account.

Sources

Jorge Turbica

Software Engineer and SRE. I write about the real challenges I run into in production.

See portfolio ↗