Preface¶
A common finalization issue in agent development is this: an agent writes an HTML page, Markdown document, or code demo in a session, and you want to share it with others, but there is no ready-made channel—manual copy-paste, setting up a service yourself, or dropping it to a generic cloud drive all require an extra step. Moreover, once the content is published, it is out of the confirmation flow. The philosophy of DSH (DeepSeek Harness) is “everything is a plugin”; this kind of external publishing capability fits perfectly as a mounted plugin rather than being hardcoded in the core logic. The foliodrop-dsh-publish introduced below does just that: connect your FolioDrop account in DeepSeek Harness and publish confirmed content into a shareable URL.
What is it¶
jaxxchen003/foliodrop-dsh-publish is a DeepSeek Harness plugin maintained by jaxxchen003, current version v0.2.0, distributed under the MIT License. It registers two tools, foliodrop_connect and foliodrop_publish: the former integrates FolioDrop account credentials into Harness’s credential layer, and the latter publishes user-confirmed content as a stable URL. In terms of scope, it is HTML-first: it is not general binary file hosting, nor does it read arbitrary local paths.
Core Features¶
Publishing & Format Conversion¶
- Complete HTML is published directly without rewriting;
- Markdown, text, JSON, code, and SVG are converted into portable self-contained HTML pages;
- Does not read arbitrary local paths, nor does it position itself as general file hosting.
Authorization & Credentials¶
The plugin completes FolioDrop authorization via loopback callback, public OAuth client registration (DCR), and PKCE S256 to exchange for a long-term DeepSeek Harness connection key, writing it into FOLIODROP_API_KEY via ctx.credentials.set. The publish source is fixed to https://foliodrop.app, and credentials are not sent to the operator’s configured host. When reconnecting, old connection keys are rotated.
Confirmation Mechanism & Search Indexing¶
Since publication uploads content and creates an externally accessible URL, the plugin uses Harness’s question UI for final confirmation before every publish, even under the Full access permission preset. Search indexing is off by default and requires explicit consent via search_indexing_consent.
Success Output¶
A successful publish includes: FolioDrop work id, slug, absolute share URL, visibility, conversion format, byte size, and the fixed source annotation DeepSeek Harness.
Failure Recovery¶
When capacity is insufficient or payment capability fails, the plugin offers a FolioDrop upgrade and work management recovery path, and retries the same payload once the user explicitly confirms.
Installation & Enablement¶
First install the plugin, then verify the configuration:
dsh plugin --profile web add github:jaxxchen003/foliodrop-dsh-publish#v0.2.0
dsh --profile web --dump-config
The first command installs the plugin source code corresponding to the v0.2.0 tag from GitHub, and the second confirms that the plugin has been correctly compiled into the configuration. Note: The profile installer for rc.6 might warn about missing @deepseek-ai/dsh-tools peer; you should judge whether the installation was successful based on the --dump-config combined result and a real run startup, rather than the installation command’s exit code.
Typical Usage¶
Connect FolioDrop Account¶
Connect my FolioDrop account.
The plugin initiates a loopback callback, registers a public OAuth client, opens a one-time FolioDrop login authorization link, completes PKCE S256 verification to exchange for a long-term connection key and writes it to the credential layer. If the browser doesn’t open automatically, Harness’s question UI will display the exact one-time authorization link, which can be opened manually or copied.
Publish Content¶
Publish this Markdown release note to FolioDrop as a visible work. Do not allow search indexing. Return the share URL.
The tool accepts parameters: content, content_type, title, description, optional code language, visibility (default visible, optional hidden), search_indexing_consent, optional source_model. The confirmation step before publishing allows you to keep proposed settings, change visible works to hidden, turn off search indexing consent, or cancel directly.
Manual Personal Key as Advanced Fallback¶
export FOLIODROP_API_KEY='fd_...'
dsh --profile web
The key provided by the environment variable is read-only; this environment value must be removed or replaced before using automatic reconnection.
Compatibility & Notes¶
- This version is tested against DeepSeek Harness
0.1.0-rc.6. Harness is in developer preview; after upgrading, all five integration seams need re-verification:defineToolregistration and output validation,ctx.credentials.resolve/set('FOLIODROP_API_KEY'),ctx.userQuestions.ask(...)(connection and publish confirmation), loopback OAuth callback / DCR / PKCE / token exchange, and fail closed when there is no question provider. - Node engine requires
^22.19.0 || >=24.0.0, depending on@deepseek-ai/dsh-tools0.1.0-rc.6. - The package is pure ESM JavaScript; installation does not execute
prepareor other lifecycle build scripts. - Error messages never contain API keys or content bodies.
- Regarding the license, the plugin package is distributed under the MIT License; the license inside this package does not change the license of the FolioDrop application outside this directory.
Finally, a reminder: the plugin runs with the permissions of the current dsh process; you should check the source code and license before installing to ensure the scope fits your expectations.
Suitable Scenarios¶
If you are already using DSH and need to turn agent-generated HTML, Markdown, code demos, and other outputs into a shareable link, and wish to retain manual confirmation before publishing, default to not indexing in search, and fix the publish source to a single site instead of letting the agent choose the host freely, this plugin is a suitable choice. Conversely, if you need arbitrary file hosting or local path uploads, it explicitly does not do these two things.
Conclusion¶
After the steps above, the agent’s output can become a stable URL within a controlled process: connect an account once, and every subsequent publish goes through confirmation, outputting a traceable share link. The project homepage and directory page are as follows:
- GitHub: https://github.com/jaxxchen003/foliodrop-dsh-publish
- Directory Page: https://www.skillhub.cn/plugins/jaxxchen003/foliodrop-dsh-publish
Where the directory page is an independent community site with no official affiliation to DeepSeek or Hanhuan; plugin information should be based on the GitHub repository.