Back to home

xiongjiamu

dsh-atomgit

AtomGit plugin bundle for DeepSeek Harness (dsh): atomgit-skills workflows + ag CLI + platform-hosted GitCode MCP tools

Stars
4
Language
JavaScript
Created
Aug 14, 2026
Updated
Aug 14, 2026

Introduction

dsh-atomgit

English | 中文

AtomGit plugin bundle for DeepSeek Harness (dsh): lets dsh users host and manage code on AtomGit out of the box. One package delivers all three AtomGit services:

LayerSourceShape in dsh
Workflowatomgit-skillsSix built-in skills in the model's <available_skills> catalog, loaded on demand via the skill tool
Executionatomgit-cli (ag)The model runs ag commands directly through the built-in bash tool
InteractionAtomGit platform-hosted MCP server (https://api.gitcode.com/mcp-server/v1/mcp)Native tools mcp__gitcode__* bridged by @deepseek-ai/dsh-mcp-client over streamable-http; no local server to run

Built-in skills (vendored from the atomgit-skills upstream): atomgit-plan-issues, atomgit-implement-issue, atomgit-review-pr, atomgit-merge-pr, atomgit-publish-cli-release, atomgit-mirror-to-github.

Installation

Prerequisites — one authentication step covers all three modules:

# The only setup needed: install ag and log in once.
# `ag auth login` stores the AtomGit PAT at ~/.config/ag-cli/token.json.
npm install -g @hust-open-atom-club/atomgit-cli
ag auth login

That's it. No separate token setup for the MCP endpoint or the skills.

Authentication (unified)

All three modules share one AtomGit PAT — the same credential ag auth login obtains (its OAuth token is a PAT):

ModuleHow it authenticates
ag CLI / skillsRead ~/.config/ag-cli/token.json directly
MCP endpoint (mcp__gitcode__*)The plugin's atomgitAuth service resolves the token from the same ag credential file and sends it as Authorization: Bearer <PAT>; no user setup

Optional override: to use a different token (e.g. a manually created PAT from GitCode → Settings → Access tokens), set GITCODE_TOKEN in the .env of the dsh working directory — the plugin falls back to it when the ag credential file is absent.

Install the bundle (run from the directory containing this package):

dsh plugin --profile web add ./dsh-atomgit
# or from a remote: dsh plugin --profile web add github:you/dsh-atomgit#<sha>
dsh web

What the model gets

After startup the model side automatically gains:

  • Six atomgit-* skills in the <available_skills> catalog, loaded on demand via the skill tool; references/ files (e.g. ag-commands.md) are read on demand through the directory resource hint.
  • Native mcp__gitcode__* tools (repos / branches / issues / PRs / search) from the AtomGit platform-hosted MCP server — no local server, Docker, or Python install needed.
  • ag in bash (ag repo view, ag pr list, ag issue create, …).

Typical workflow: atomgit-plan-issues to plan issues → atomgit-implement-issue to implement and open a PR → atomgit-review-pr to review → atomgit-merge-pr to merge after your explicit authorization.

Configuration overrides

A patch replaces a row's whole config; users override by row id in their profile cordis.patch.yml or a --patch overlay:

# Disable the MCP server entirely (skills + ag only):
- id: mcp-gitcode
  disabled: true

# Point at a different endpoint (e.g. a self-hosted MCP server):
- id: mcp-gitcode
  inject: [atomgitAuth]
  config:
    serverName: gitcode
    transport: streamable-http
    url: https://your-host/mcp
    headers:
      Authorization: !!js '`Bearer ${ctx.atomgitAuth.token ?? ""}`'

Syncing skills

skills/ is vendored from the atomgit-skills upstream pinned to a tag, keeping "plugin version ↔ skill version" reproducible:

npm run sync-skills            # sync main
npm run sync-skills -- v1.2.3  # sync a specific tag

License

  • Plugin code and packaging of this bundle: MulanPSL-2.0.
  • Built-in skills come from atomgit-skills; their license (MulanPSL-2.0) is copied with the skills at skills/LICENSE.