DeepSeek Harness Plugin

zhengjy01/dsh-flomo

Stars ★ 0 Downloads (30d) 926 Category Memory Added 2026-08-15 npm dsh-flomo

Write notes and memos to flomo (浮墨笔记) from any agent via the flomo_send tool, configured once with the flomo API URL or API Key.

Install

# from npm (prebuilt)

dsh plugin --profile web add dsh-flomo

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:zhengjy01/dsh-flomo

Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).

README

English | 中文

Send notes, memos, and summaries straight into flomo (浮墨笔记) from DeepSeek Harness. Configure your flomo API URL or API Key once, then any agent can record ideas via the flomo_send tool.

Features

  • Settings panel — configure the API URL / API Key from the web GUI: Settings → Flomo. Save, test, clear, and a quick-send box.
  • flomo_send — write a memo with optional tags (tags become #tags), supporting **bold** and ![](image-url) inline syntax. Tags go through the tags argument; any ASCII # left in the body is escaped to the full-width # before sending, so flomo never parses body text as a tag (pass escapeBodyHashes: false to keep an inline #tag).
  • flomo_config — set apiKey (newer key format) or webhookUrl (the API URL from the flomo settings page, typically https://flomoapp.com/iwh/<token>/); reset: true clears the credential.
  • flomo_status — report whether the plugin is configured and where the credential lives, without echoing the full key.
  • Credential persisted to $DSH_HOME/dsh-flomo.json (default ~/.dsh/dsh-flomo.json) with mode 0600.
  • System-prompt announcement so agents know when to use the plugin.

Install

# after publishing to GitHub (repo tagged with the `dsh-plugin` topic)
dsh plugin --profile web add github:zhengjy01/dsh-flomo

# local development
dsh plugin --profile web add link:/path/to/dsh-flomo

Restart dsh web. The plugin needs no build step — lib/index.js is plain ESM.

Configuration

Get your API URL at https://flomoapp.com/mine?source=incoming_webhook. Then either paste it into the plugin's cordis.patch.yml config, or let the agent configure it for you:

帮我配置 flomo,API URL 是 https://flomoapp.com/iwh/xxxx/

The agent calls flomo_config with your webhookUrl (or apiKey) and persists it to $DSH_HOME/dsh-flomo.json (default ~/.dsh/dsh-flomo.json, mode 0600). From then on:

把这句话记到 flomo:#ideas

The flomo API URL is a credential: anyone with it can write memos to your flomo. Keep it private; use flomo_config(reset: true) to clear it if it leaks.

Compatibility

  • DSH: declared under engines.dsh as ^0.1.0-rc.6 || ^0.1.7-alpha.1 || ^0.2.0-alpha.1 || ^0.2.1-alpha.1 || ^0.2.2-alpha.1.
  • Node.js: ^22.19.0 || >=24.0.0.
  • Exactly verified DSH releases (dsh.compatibility.dshReleases): 0.1.7-rc.1, 0.2.1-rc.5, 0.2.2-alpha.3, 0.2.2-rc.1 → compatible. Releases not listed stay unknown and are not claimed.
  • How each entry is verified: npm run verify packs the plugin, installs the tarball into a throwaway profile under an isolated DSH_HOME, boots the host, calls GET /api/dsh-flomo/config, checks the client bundle is in the shell boot list, then uninstalls.

Notes

  • Sending uses Node's built-in fetch (Node 22+), no extra dependencies.
  • The web settings panel talks to the host through the loopback-only /api/dsh-flomo route family.
  • Respects flomo's content syntax: **bold**, ![](https://.../image.png); tags are appended from tags, and body ASCII # is escaped to # so it can never spawn a stray tag.

License

MIT

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.