Updated November 10, 2026
How to Set Up DeepSeek SuperAgent on GitHub: From Issue to Pull Request (November 2026)
A practical route from a dedicated agent account to a small, reviewable pull request.
Run the prototype in a dedicated environment, connect one GitHub repository and a separate agent account, allow only a trusted requester, then ask the agent to handle a small issue. Review the ticket, branch, tests and pull request yourself. Observe mode does not prevent an explicit request from starting work.
DeepSeek SuperAgent is a research prototype built on DeepSeek Harness, not an official DeepSeek product or production-ready software. It needs a separately configured model provider. This guide follows the published documentation; we have not run an end-to-end deployment for this article.
A useful first task is small enough to review in minutes: correct one outdated command in a test repository’s README. The example below is a trial plan, not a recorded run. The agent may ask questions, fail a check, or produce no pull request.
What do you need before connecting GitHub?
The published deployment guide calls for Node.js 22.19+ or 24+, pnpm, Git 2.32+, Python 3.8+, tmux, GitHub CLI 2.48+, a compatible DeepSeek Harness installation and a configured model provider. The documentation pins @deepseek-ai/dsh@0.2.1-rc.3 for its example; check the prototype’s current engines.dsh range before choosing another version. The project targets a repository on github.com; GitHub Enterprise Server is not supported by the documented source.
| Prepare | Why it matters |
|---|---|
| Separate OS account or isolated host | Workers run with the operating-system permissions of the service account. Keep personal credentials and unrelated files out of reach. |
| Test repository | Use a small repository without production secrets or deployment privileges. Keep a local clone for per-ticket worktrees. |
| Dedicated GitHub user | The agent needs its own user identity and repository access. The documented source reads that account’s notifications. |
| Trusted requester | Start with your own GitHub login on the allowed list. Keep automatic merging off and use branch protection. |
| Model provider | Configure a working provider in Harness. Model and hosting charges are separate from the MIT-licensed code. |
The GitHub identity and OS account solve different problems. Separate GitHub credentials do not prevent a worker from reading files that its OS account can access.
How do you prepare the runtime and agent account?
- Install the required tools in the environment that will run the service. Check their versions with
node -v,pnpm -v,git --version,python3 --version,tmux -V,gh --versionanddsh --version. - Give the agent’s dedicated GitHub user access to the test repository. Sign the agent’s GitHub CLI wrapper into that account, not your personal account, and confirm the login it returns.
- Clone and build the
deepseek-ai/dsh-superagent-prototyperepository inside the service environment. The project’sSETUP.mddescribes an agent-assisted setup; its deployment guide provides manual steps. - Create a separate SuperAgent Harness profile only for a new installation, install the bundle, and configure the profile’s state directory and panel. Do not recreate an existing profile: the documented profile-creation command replaces its configuration.
- Start the service and check
scripts/dsh-superagent status. On a first start, missing setup information can be expected; resolve it before sending a task.
For a fresh profile, the published deployment example uses the following sequence. Run it inside the isolated service environment after reviewing the repository and prerequisites. Replace REPOSITORY_URL with the URL of the public deepseek-ai/dsh-superagent-prototype repository.
npm install -g @deepseek-ai/dsh@0.2.1-rc.3
git clone REPOSITORY_URL dsh-superagent
cd dsh-superagent
pnpm install && pnpm build
# New profile only: this replaces an existing superagent profile.
dsh superagent --from-default-profile web --dump-config > /dev/null
dsh plugin --profile superagent add "link:$PWD"
The published manual setup then requires a machine configuration based on examples/profile.cordis.patch.yml. Set an absolute stateDir and the panel’s local bind settings before starting the service. Review the example and current deployment guide in the checked-out repository rather than copying placeholders into a running configuration.
scripts/dsh-superagent start
scripts/dsh-superagent status
Keep secrets out of the issue, chat transcript and repository. Set credentials through their intended login flow, then verify the account and permissions in your own environment.
Which settings turn an issue into a ticket?
In the SuperAgent panel, configure the GitHub Source with the repository and the agent’s CLI wrapper. Under policy, add the requester’s GitHub login to the allowed list. Configure execution with a checkout source and a prepare command that gives each ticket its own worktree. A worktree keeps changes organized; it is not a security sandbox.
Start with observe as the accept mode for inferred activity, and keep automatic merging disabled. Check that the source reports ready and the status no longer reports missing setup. The panel may use different wording in a later version; record your installed versions before troubleshooting.
What should the first GitHub issue say?
From the allowed requester account, add a comment that addresses the agent. Replace the name with your agent’s actual login:
@agent-login Please update the README installation example to match the current package name. Limit the change to the README, run the relevant documentation check, and open a pull request for human review. Do not merge.
This is an explicit request. If accepted, it can run even while inferred work is in observe. The documented default polling interval is one minute, but a ticket or PR is not guaranteed. If an issue body was edited to add a mention and nothing happens, post the mention as a comment instead.
How do you verify the ticket and pull request?
- Open the overview and look for the ticket. Confirm the issue, requester and task description match what you intended.
- Inspect whether the ticket is queued, working, blocked or awaiting review. A question or blocked status needs a person; it is not evidence of a completed fix.
- Open the proposed branch and PR. Check the changed files, commit identity and exact diff. Confirm that no secrets or unrelated changes were added.
- Run or inspect the relevant checks independently. Ask for a correction in the existing thread when needed; keep the request inside the original task’s scope.
- Only a person with the appropriate repository authority should approve and merge the reviewed result in this first trial.
What if no ticket appears?
| Symptom | First check |
|---|---|
| No response to a mention | Verify the source is enabled, processing is not paused and the requester is allowed. Use a new comment rather than an edited issue body. |
| Agent CLI cannot read its account | Check the configured wrapper and sign that wrapper into the dedicated agent account. |
| Agent cannot read or push | Confirm the repository name and the agent account’s actual access. |
| Prepare command failed | Read the ticket error; check the clone path, worktree destination and Git configuration. |
| Status returns 3 | The service is waiting for setup. Read the missing requirement instead of repeatedly restarting. |
Can a Coding Plan run this prototype?
SuperAgent uses the model provider configured in Harness. We have not verified that this prototype works with this site’s Coding Plans, so check the endpoint, model and authentication compatibility before buying a plan for this workflow. Start with the setup and cost guide or compare the available Coding Plans.
Frequently asked questions
Does observe mode stop an allowed person’s request?
No. It records positive decisions for inferred candidates without accepting them; explicit requests remain possible.
Can one instance cover several repositories?
The public prototype is documented for one GitHub repository. Treat any multi-repository adaptation as a separate project to evaluate.
Does a pull request prove the task succeeded?
No. Review the diff and test results, and verify the change against the issue before merging.