Introduction¶
When working on UI-related tasks in DSH, common practices include pasting screenshots, describing layouts verbally, or setting up a separate Figma desktop MCP for read-only queries. The former lacks editable structure and variable information, while the latter, if using the official remote MCP, consumes API quota. Maintainer Duoasa’s DSH to Figma (repository Duoasa/DSH-to-Figma) turns Figma canvas capabilities into a native DSH plugin: the default local mode bridges via a companion Figma plugin running locally, allowing for reading and editing designs, exporting assets and screenshots. The local path does not consume official Figma MCP quota. The plugin is categorized as a “Web Tool” in the community catalog, has approximately 6 stars on GitHub, is licensed under MIT, and is currently in preview status.
Below is an introduction to the problems it solves, its documented capabilities, and how to install and get started.
What is this¶
DSH to Figma is aimed at developers and design collaboration scenarios already using DeepSeek Harness: it exposes Figma-related tools and a figma-workbench Skill within the host, allowing the Agent to read layer structures, layouts and CSS, components and variables. It can create or modify Frames, text, Auto Layout, etc., on the canvas, and return screenshots via DSH native image attachments. In the default local mode, DSH generates a machine-specific, pre-paired Figma development plugin under DSH_HOME upon startup; after importing the manifest into the Figma desktop client for the first time, keeping the DSH to Figma · Local window open establishes the connection. The recommended workflow does not require copying pairing keys.
Documented compatible DSH cores include 0.2.0-rc.2 and 0.2.1-rc.2. The repository is not yet released to npm; installation packages are obtained from GitHub Releases.
Core Features¶
Local Mode (Default backend: local)¶
The companion Figma plugin calls public Plugin APIs within the target document, supporting canvas scripting, structure inspection, screenshots and design context, design system queries, and asset upload/download. The README states that the default local mode provides 17 canvas-related tools prefixed with mcp__figma__…, as well as 5 onboarding and guide tools, for example:
| Workflow | Representative Tools |
|---|---|
| Canvas Scripting | use_figma, import_scene |
| Structure Inspection | get_selection, list_fonts, get_metadata |
| Screenshots & Context | get_screenshot, get_design_context, get_figjam |
| Design System | get_variable_defs, search_design_system, get_component_context, etc. |
| Assets | upload_assets, download_assets (Exports can be written to workspace .figma/assets/<batch>/) |
| Onboarding | figma_setup, figma_status, figma_select_document, etc. |
Canvas screenshots enter as DSH image attachments; if the model does not support images, the plugin will explicitly report the limitation. Component searches scope to the current page, while style and variable searches scope to the local file; this is not equivalent to full cloud design library retrieval or published Code Connect mappings.
Optional Official Desktop / Remote Modes¶
- desktop:
backend: desktop, uses Figma’s built-in desktop MCP (default addresshttp://127.0.0.1:3845/mcp), focuses on reading and screenshots, and lacks canvas writing tools likeuse_figma. - remote:
backend: remote, viadsh-figma loginand approved OAuth; capabilities depend on Figma-side approval and server tool catalogs.
The local bridge listens on port 3055 by default, is loopback-only, and validates pairing keys as described in the README.
Installation and Activation¶
1. Install the DSH Plugin Package¶
Download dsh-to-figma-<version>.tgz and SHA256SUMS from Releases. After verifying checksums, install using the CLI and profile corresponding to your current host. The manual example in the README (replace web with your actual profile, and change paths to local absolute paths) is as follows:
dsh plugin --profile web add "file:/absolute/path/dsh-to-figma-0.2.1.tgz"
The official DSH Desktop on macOS can use the in-app CLI to manage the desktop profile:
"/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" \
plugin --profile desktop add "file:/absolute/path/dsh-to-figma-0.2.1.tgz"
After installation, confirm DSH to Figma is running in the host’s plugin manager; if tools do not appear, restart the host or create a new session. Successful installation does not imply connection to Figma.
Alternatively, in a DSH session with network and terminal permissions, follow “Method A” in the repository README to send the complete Chinese installation prompt, allowing the Agent to download, verify, and execute plugin add according to the documentation steps. The maintainer records that this flow has been tested on DSH Desktop 0.2.1-rc.2.
2. First-time Import of the Figma Companion Plugin¶
After DSH runs in local mode, request a call to figma_setup in the session to obtain the manifest path generated locally (do not share secrets). The default manifest location is:
~/.dsh/figma/companion/manifest.json
In the Figma desktop client: Plugins → Development → Import plugin from manifest…, select the manifest above; open the target Design file, run DSH to Figma · Local, and keep the plugin window open. Connection can be confirmed by calling figma_status.
3. Configuration Essentials (Entry dsh-figma)¶
| Field | Default Value | Description |
|---|---|---|
backend |
local |
local / desktop / remote |
bridgePort |
3055 |
Local companion plugin bridge port |
desktopServerUrl |
http://127.0.0.1:3845/mcp |
Official desktop MCP |
toolCallTimeoutMs |
120000 |
Tool timeout (1–300 seconds) |
oauthClientId |
Empty | Used for remote OAuth |
To disable: turn it off in the host plugin manager, or set DSH_FIGMA_DISABLED=1 before starting the host. After modifying bridgePort, you must regenerate and re-import the companion plugin as per the documentation.
Typical Usage¶
Post-connection Read-only Verification (without modifying existing designs):
Read the connected Figma file, create a new standalone auto-layout card with the title "Hello from DSH". Return the node ID, read back the content, and take a screenshot. Do not modify existing designs.
Design to Frontend (Requires write permissions in the workspace): Let DSH read the target frame structure, styles/CSS, component info, and screenshots; export icons and images to the project directory; then generate or modify the page based on the current tech stack. The plugin provides design and asset context; interaction and business logic still need to be supplemented according to the project.
Create Design from Reference Images or Text Requirements:
Create a new 1440 × 900 task management interface on the current page, including a sidebar, task list, and detail panel, using editable text and auto-layout.
Batch Revisions and Visual Verification:
Unify the primary buttons in this frame to 40px height and 8px corner radius, check if text overflows, and give me a screenshot after modification.
Optional desktop MCP read-only example: first figma_status, then read frame metadata and screenshots, and explicitly request no canvas modification.
Use Cases and Notes¶
Suitable for teams that need to continuously iterate Figma designs within DSH sessions, export assets, and hand off design context to the same Agent for coding. Workflows listed in the README include: existing UI frames to frontend, rebuilding editable UIs from screenshots/requirements, batch revisions, reusing components and variables, asset delivery, and page comparison. Design and code will not automatically sync bidirectionally, nor is pixel-perfect restoration guaranteed. The maintainer has published a verification scope including auto-pairing, reading, creating and modifying, screenshots, PNG export, and documentation screenshot rebuild cases. For full boundaries, see the repository’s CAPABILITIES.md and Verification Records.
Please note before installation and use:
- The plugin, like other native DSH plugins, runs with the permissions of the current DSH host process; please read the source code and the MIT license before installing.
- The paired plugin and keys under
DSH_HOME/figmacontain local credentials; do not upload or publicly distribute them. The bridge is for local access only. - Canvas writing is not transactional; failures may leave partial modifications. For multi-file connections, use
figma_select_documentto clarify targets. - Screenshots and conversation content may enter your configured model provider; OAuth credentials are stored in local private files, and the README states they are not encrypted using the system keychain.
The DeepSeek Harness ecosystem emphasizes “Everything is a Plugin”; the SkillHub Directory Page is a community collection and has no official affiliation with DeepSeek / High-Flyer.
Conclusion¶
DSH to Figma consolidates Figma canvas reading/writing, design system information, and asset export into the Harness native toolchain. The default local mode uses a local companion plugin to complete editing and screenshots, avoiding the consumption of official MCP quota during daily iterations. If you are already using DSH for a design-to-code loop, you can start with the Release package and the figma_setup pairing process.
- Community Directory: DSH-to-Figma @ SkillHub
- Source Code & Documentation: github.com/Duoasa/DSH-to-Figma