Preface

In DSH (DeepSeek Harness), content production often involves more than just “generating a Markdown snippet.” It also requires screenshots, screen recordings, rendering Markdown into Xiaohongshu image-text cards, generating self-contained HTML for CSDN/WeChat Official Account pasting, and finally calling the dev.to/Medium APIs to publish. When these steps are scattered across different scripts, browser paths, and permissions, issues such as missing tools, inconsistent environments, and a lack of manual confirmation before publishing often arise.

dsh-content-studio is a content creation and multi-platform distribution bundle plugin for DeepSeek Harness (DSH). The DSH ecosystem emphasizes modular combination. The community directory is an independent site with no official affiliation to DeepSeek or Huanfang; this article only introduces the plugin itself.

What is it

The one-sentence positioning of dsh-content-studio is: A content creation and multi-platform distribution bundle plugin for DeepSeek Harness (DSH).

The repository URL is https://github.com/ZRui-C/dsh-content-studio. The “ZRui-C” in the repository path serves as the GitHub account identifier; verified materials do not separately confirm the “Maintainer” field, so this article does not infer the maintenance status based on this.

It places the following within a single plugin:

  • Material Generation: Text-to-image, macOS desktop screenshots, fixed-duration MP4 screen recording.
  • Content Rendering: Markdown to Xiaohongshu image-text cards, self-contained layout HTML.
  • Content Publishing: Official API publishing to dev.to/Medium.
  • Manual Confirmation: Draft persistence to disk, browser floating review panel, approve or reject.
  • External Capability Mounting: Playwright MCP, xhs-mcp.

Core Features

The following explains the capabilities by type.

Text-to-Image

content_text_to_image supports text-to-image using Nano Banana / Gemini 2.5 Flash Image, requires API key. It can be used to generate cover images, background images, and illustrations.

Desktop Screenshots and Screen Recording

  • content_screenshot: macOS desktop screenshots, supports full screen, region, and delay.
  • content_screen_record: Uses ffmpeg AVFoundation for fixed-duration MP4 screen recording, automatically detects screen/microphone devices, supports microphone and cropping regions.

Markdown to Xiaohongshu Cards

content_md_to_cards renders Markdown into Xiaohongshu image-text cards using Chrome headless rendering.

Core Specifications:

  • Cover card + sections divided by H1/H2 into cards.
  • Card size: 1242×1660 (3:4).
  • 5 color schemes × 4 layouts.
  • Supports ![description](path) illustrations.
  • Supports background images with readability masks.

Self-contained Layout HTML

content_md_to_html generates self-contained layout HTML, suitable for preview, CSDN pasting, and WeChat Official Account pasting.

dev.to / Medium Publishing

  • content_publish_devto: Official Forem API publishing, supports draft/direct.
  • content_publish_medium: Official Medium API publishing, supports draft/direct.

Manual Review Gate

content_review_open / status / refresh / close provides a persistent manual review workflow:

  • Drafts are saved to ~/.dsh/content-studio-output/review/draft.json.
  • Browser floating review panel provides three tabs: “Review”, “Publish”, “Settings”.
  • Panel allows real-time preview of cards.
  • Users can modify text, colors, layouts, and publish copy.
  • Users can choose to approve or reject.

External MCP Capabilities

  • Playwright MCP (mcp__playwright__*): Web screenshots, session recording, UI automation, using system Chrome.
  • xhs-mcp (mcp__xhs__*): Xiaohongshu login, image-text/video publishing, search.

Installation and Enablement

First, confirm that the local machine meets the runtime requirements, then choose an installation method. Choose one of the two; both register the same tool name, and mounting them simultaneously will fail due to name conflicts.

Environment Requirements

It is recommended to check the following first:

  • macOS.
  • ffmpeg: brew install ffmpeg.
  • Google Chrome.
  • AI image generation requires GEMINI_API_KEY.
  • dev.to publishing requires DEVTO_API_KEY.
  • Grant “Screen Recording” permission to the terminal running DSH.
  • Xiaohongshu requires a one-time scan login: mcp__xhs__xhs_auth_login.

If AI image generation is needed, go to https://aistudio.google.com/apikey to create a Gemini API key, then set GEMINI_API_KEY or pass api_key during invocation.

If dev.to publishing is needed, go to dev.to/settings/extensions to create an API key, then set DEVTO_API_KEY.

You can also avoid setting environment variables directly and instead configure them in the “③ API Keys” section of the review panel. Configurations are saved to ~/.dsh/content-studio-output/keys.json, and the panel only displays the configured status.

Bundle installation installs the plugin into DSH’s web profile. The recommended command is:

dsh plugin --profile web add dsh-content-studio

To install from a specific branch on GitHub, you can use:

dsh plugin --profile web add "github:ZRui-C/dsh-content-studio#main"

For local development paths, you can use:

dsh plugin --profile web add ~/Projects/dsh-content-studio

Restart DSH for changes to take effect.

Preset Copy Installation

Preset copy installation copies the local repository to the DSH preset directory, then selects that preset in a new session. First, confirm there is already a local repository copy, then execute:

rsync -a ~/Projects/dsh-content-studio/ ~/.dsh/.agent-presets/content-studio/

After completion, select the “Content Studio” preset in a new session.

Typical Usage

Below are several reproducible usage paths.

Rendering Cards and Entering Review

Prepare a Markdown draft first. The main order for the review workflow is:

  1. content_md_to_cards renders cards (PNG).
  2. content_review_open saves the draft to disk and pops up the browser review panel.
  3. Process based on the status of content_review_status:
    • edited: Re-render with modified fields, then call content_review_refresh.
    • approved: Publish using the publish copy in the panel, then call content_review_close.
    • rejected: Re-open review after modifying based on panel feedback.

After the above steps, the closed loop of “Render cards — Manual confirmation — Publish / Reject” can be completed.

Card Styles

Card styles are composed of two independent dimensions: color scheme and layout.

Color schemes (5 sets total):

  • xhs-soft
  • xhs-dark
  • plain
  • forest
  • sunset

Layouts (4 types total):

  • classic
  • magazine
  • poster
  • notebook

Image and background image support:

  • Markdown image syntax: ![description](path/URL).
  • Background image: bg_image, can be URL or local path, with a semi-transparent thematic mask to ensure text readability.
  • AI image generation: content_text_to_image can generate cover, background, or illustrations; the resulting local path can be used as bg_image or used in Markdown image syntax.

Publishing Channels

The channels and limitations for different platforms are as follows.

Platform Channel Limitations or Notes
Xiaohongshu mcp__xhs__* Title ≤ 20 chars, Body ≤ 1000, 1–18 images, 3:4 is best
dev.to (Forem) content_publish_devto Official API, ≤ 4 tags
Medium content_publish_medium Official API, ≤ 5 tags
Juejin Optional mcp-juejin / Playwright UI automation Optional channel
CSDN / WeChat Official Account content_md_to_html Uses self-contained HTML for pasting
V2EX bash + token API Promotional posts

Verifying Review Panel

If you plan to state “Review panel is visible” externally, run the verification gate first. The script below checks the review panel related links:

DSH_DEPLOY=/path/to/dsh ./scripts/verify-panel.sh

All five layers must pass before claiming the panel is visible; if there is a FAIL, fix it according to the script prompt and restart DSH to run again.

Cross-Machine Notes

When switching machines or environments, pay attention to:

  • cordis.patch.yml pins xhs-mcp to the author’s Chrome binary (PUPPETEER_EXECUTABLE_PATH). When switching machines, either change it to the target machine path or delete the environment variable and run npx xhs-mcp browser to download Chromium yourself.
  • Desktop screenshots/recording are currently only for macOS, relying on screencapture/AVFoundation; Linux/Windows adaptation is on the roadmap.
  • Review drafts are located at ~/.dsh/content-studio-output/.
  • Card rendering requires local Chrome, or use CHROME_PATH to point to a Chromium-based browser.

Applicable Scenarios and Notes

Suitable for users who:

  • Run DSH on macOS and need to convert Markdown into Xiaohongshu image-text cards.
  • Need to prepare dev.to/Medium publishing copy simultaneously.
  • Need manual confirmation before publishing.
  • Want to centrally manage screenshot, screen recording, card rendering, HTML generation, and publishing tools.

Must note before use:

  • The plugin runs with the current dsh process permissions; check the source code and MIT license before installing.
  • Text-to-image requires GEMINI_API_KEY or passing api_key during invocation.
  • dev.to publishing requires DEVTO_API_KEY.
  • Desktop screenshots/recording require the terminal running DSH to have “Screen Recording” permission.
  • Xiaohongshu requires a one-time scan login: mcp__xhs__xhs_auth_login.
  • Review panel availability depends on verification gate results.
  • Platform restrictions for Xiaohongshu, dev.to, Medium, etc., must be checked before publishing.

References

  • GitHub: https://github.com/ZRui-C/dsh-content-studio
  • Directory page: Verified materials for this session do not confirm the directory page URL; you can search the DSH plugin directory by the plugin name dsh-content-studio.