Find your next open-source project

Search by name, purpose, or keyword — or paste a GitHub repository URL

Roland0511/dsh-marktext

Productivity & Utilities

Opens Markdown files as editable WYSIWYG documents inside DeepSeek Harness's right sidebar.

203
13
JavaScript
MIT
4 days old

What it is

dsh-marktext is a DeepSeek Harness (DSH) plugin that brings MarkText's editor core, muya, into the DSH right sidebar. Click a .md, .markdown, .mdown or .mkd file in the sidebar and it opens as a rendered document — headings, tables, math, diagrams and images are editable directly, without a separate source-and-preview pane. It wraps the MIT-licensed @muyajs/core and only adds the DSH integration; there is no Electron shell or separate desktop app to install.

It is aimed at people who already use DSH and want to read and edit Markdown files in place. KaTeX, Mermaid, Vega-Lite, PlantUML and Prism highlighting ship with the plugin and load offline.

The editor runs in an iframe so muya's :root CSS variables and floating toolbars do not leak into the host UI. Only document, theme and save messages cross the boundary through a single __dshmkt envelope.

Quick start

Install from npm with DSH's plugin CLI (the command targets the web profile):

dsh plugin --profile web add dsh-marktext

Desktop app users should instead open Plugins → Add plugin → Install a third-party plugin, enter dsh-marktext, click Enable now, and restart the app once. The desktop profile is managed by the app, so the CLI line applies to dsh web only.

A manual desktop install works by adding dsh-marktext to the bundles and dependencies in ~/.dsh/profiles/desktop/package.json, running pnpm install in that directory, and restarting. Installing from GitHub is also possible with github:Roland0511/dsh-marktext wherever a package name is accepted; the built renderer is committed, so no build step is needed.

After installation, open a Markdown file from the sidebar and it should appear as an editing tab.

Saving and conflicts

Saves go through a version guard: the plugin calls ctx.fs.writeText with replaceIfVersion and a base version, and a stale version returns FS_STALE_VERSION, which the UI shows as a conflict banner. If host policy refuses the write (FS_SANDBOX_DENIED, e.g. under workspace-write or read-only), the save falls back to Node's fs.writeFile but still checks the version before and after. Real OS errors such as EACCES and EPERM are surfaced. Autosave fires 2.5 seconds after typing stops; ⌘S saves immediately.

Constraints

  • Requires DeepSeek Harness 0.2.1+ with ctx.sidebarRightTabs, ctx.slots, ctx.fs and ctx.webServer.
  • Node 20+ is only needed when building from source.
  • Do not install alongside dsh-markdown-typora, since both claim *.md in the extension band.
  • Absolute image paths (/abs/a.png, file://) are not resolved. There is no "insert selection into chat" feature and no PDF export.
  • Saving writes what the editor serializes, i.e. standard CommonMark/GFM, so formatting may change even though content conflicts are guarded.
  • Package size is roughly a 4 MB tarball with about 1.6 MB first paint.
  • Licensed under MIT; third-party components and MarkText attribution are listed in NOTICE.md.

Troubleshooting

If a .md opens but the tab reports no viewer, the client half may not have registered its tab body. Check the diagnostic report:

curl -s http://127.0.0.1:<DSH-port>/dsh-marktext/api/diag | python3 -m json.tool

The typeRegistered, bodyRegistered and errors fields point at the failing step.

HotRepo's take

The repository appeared on HotRepo's new-project list for 6 November 2026 in the JavaScript language view, reporting 58 stars gained over a growth window from 01:45 to 19:45 UTC, ending at 203 stars and 13 forks. Sampled stars held at 146 for most of that day before jumping to 203 at the final observation, so the window contains a single late burst rather than a steady climb. That is enough to note the project drew attention on that day, not enough to call it a trend. The meaningful technical signal is the scope: rather than rebuilding an editor, it packages MarkText's existing muya core as a DSH sidebar plugin, with version-guarded saves and an iframe boundary as the integration work.

Project source and documentation

Written by AI from the project's README, updated . The project's own docs are the source of truth.