⭐ 14.2k stars · 1.5k forks · MIT · One repository
You comment @agent fix the flaky test on a GitHub issue. A minute later the agent opens a pull request and answers in that issue. Nobody watches it work in between.
What It Is
dsh-superagent is a proactive coding agent for one GitHub repository, packaged as a bundle for DeepSeek Harness. It listens to GitHub and, optionally, Feishu. When someone allowed asks the agent for work, it opens a work item, works on it in its own agent session and directory, and answers in the original conversation, for example with a pull request. A web panel shows what needs a person.
It is also a way of working with an agent: take as little human attention as possible, and give as much value as possible. An agent that can act for a whole team can also waste a whole team's attention, so it acts only when asked or when a rule the team wrote allows it, and speaks only when someone must act or can use a result. docs/000-philosophy.md explains the principle and what it asks of the operator.
— the repository's README
It runs as its own agent, not inside the coding agent you already use.
Shipped 31 October 2026, MIT. The repository calls it a research prototype for reference only, not an official DeepSeek product, and warns it may contain bugs.
What Using It Looks Like
- A person on the allowed list comments
@<agent login> <request>on an issue. - Within about a minute a work item appears on the panel, with its own session and its own checkout.
- When it finishes, it comments with a pull request. If it needs a decision, it asks one question and waits.
- You review and merge. It never merges as itself.
The panel answers three things, in order: does anything need me now, is the system healthy, and what happened to this one piece of work.
A healthy state takes no space. A number appears only when it would change what you do next.
Two Things It Does Differently
1. It can watch without acting
In observe mode it records what it would have accepted and does nothing. Run it that way for two weeks and read the list: the first working run costs an afternoon, judging it costs two weeks of recording.
The other two modes are off, which records nothing, and auto, which acts on its own judgement.
2. It decides who may ask, before the model runs
Your allowed list lives in a setting the team owns, not in the prompt. Someone outside that list can be limited to the thread they are already in, or ignored.
When the allowed list changes, work already running is not cancelled. The change is recorded and reported instead.
What to Know Before You Try It
Workers run shell commands without approval, as your operating-system user. The blocked-command list is a default, not a security boundary.
Run the first one on a scratch repository, under an account that is not your main one. The deployment guide says the same.
🚀 Setup
Setup has nine steps and takes about 45 minutes on a clean machine. It needs a DeepSeek Harness profile of its own, plus a GitHub account for the agent. An agent runs the steps with you. Paste this into your coding agent:
Read SETUP.md in this repository and set up dsh-superagent with me.
It asks one question per message, shows the plan once, and installs nothing until you approve. You need Node 22.19+, pnpm, git 2.32+, tmux, Python 3.8+, GitHub CLI 2.48+, and Harness with a model provider.
Use It, or Skip It
| Use it when | Skip it when |
|---|---|
| You want small pull requests from an agent, not a chat window | You need a supported product: this is research code |
| Your team already works in GitHub issues | You need one agent across many repositories |
| You want to watch an agent work before you trust it | Nobody can spare a nine-question install |
Worth Reading Even If You Skip the Install
The repository is a design document that happens to compile. Nine numbered documents, each building only on the ones before it, plus a table of the concepts it refused to add and why.
Two habits worth copying without running it. Put any new agent in record-only mode for two weeks before it can act. Delete every panel element that only reports a healthy state.
To try it, paste the setup prompt above into your coding agent, then comment @<agent login> <request> on an issue and watch the panel.