Introduction

The core philosophy of DeepSeek Harness (DSH) is “everything is a plugin.” When building a new project or a new Agent, developers often spend a lot of time writing prompts or organizing project context. Claude Code provides a standard /init workflow; this plugin brings that mechanism into DSH, helping developers quickly create project-level Agent guidance.

What It Is

dsh-init is an official mechanism plugin (profile bundle), maintained by evanfang0054. It registers the /init slash command and the init tool in DSH, porting the Claude Code initialization process to enable automated project documentation generation and configuration.

Core Features

The plugin provides the following capabilities:

  1. Command and tool registration: Registers both the /init slash command and the init model tool.
  2. Documentation generation: Automatically generates CLAUDE.md, which includes the standard Claude Code file header and a minimal project-level Agent guide.
  3. Symlink mechanism: Creates AGENTS.md and sets it as a relative symbolic link pointing to CLAUDE.md, so tools that read AGENTS.md (such as DSH itself, Cursor, and Codex) and tools that read CLAUDE.md share the same source of truth without maintaining two copies.
  4. Zero dependencies: The plugin does not depend on other packages; tool definitions are registered directly.
  5. Seven-stage workflow:
    • Interview: Confirm project scope and preferences.
    • Reconnaissance: Read the manifest, README, CI configuration, existing rules, etc.
    • Fill gaps: Ask questions that the model cannot answer from the code.
    • Write file: Generate CLAUDE.md and test its validity line by line.
    • Symlink: Create the AGENTS.md symbolic link.
    • Local preferences: Generate CLAUDE.local.md.
    • Summary: Review the generated artifacts and remind that the workflow can be re-run.

Installation and Activation

This package is a standard DSH profile bundle. Install it using DSH’s built-in dsh plugin command.

# 从 npm 安装(推荐)
dsh plugin --profile web add dsh-init

# 从 GitHub 安装
dsh plugin --profile web add github:evanfang0054/dsh-init

# 从本地路径安装(需重启 DSH 生效)
dsh plugin --profile web add /path/to/dsh-init

After installation, you must restart DSH to load the bundle layer. Verify successful installation:

cat ~/.dsh/profiles/web/package.json | grep dsh-init
# "dsh.profile.bundles" 数组里出现 "dsh-init" 即已挂载

If installed from a local path, pnpm will automatically mount it as link (symlink). After modifying the code, restart DSH to apply the changes; you do not need to run the add command again.

Typical Usage

After installation and restart, you can trigger initialization in the following ways:

  1. Slash command: Enter / in the conversation, choose init from the completion list, or directly type /init <additional requirements>.
  2. Natural language: Tell the Agent directly, “Initialize this project.”
  3. Verification: Confirm that CLAUDE.md and AGENTS.md (symlink) have been generated.

Notes

  • Symlinks and Git: Git natively supports symbolic links (mode 120000). On Windows, enable developer mode and set git config core.symlinks true to use symbolic links normally.
  • Existing AGENTS.md: If an AGENTS.md file already exists in the project, the workflow will not silently overwrite it. It will perform a diff comparison first and replace the file only after user confirmation.
  • CLAUDE.md changes: Because AGENTS.md is a symbolic link, changes to CLAUDE.md also take effect for AGENTS.md; no manual editing is required.
  • Updating the plugin: Local path installation is a symbolic link, so you can modify the code and restart DSH; GitHub/npm installation requires re-running the dsh plugin add command.

Closing

dsh-init addresses the cumbersome process of project initialization documentation in agent development. Through a standardized seven-stage workflow, it helps developers quickly establish project context and uses the symbolic link mechanism to unify how multiple tools read Agent guidance.

GitHub repository