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 (
tagsbecome#tags), supporting**bold**andinline syntax. Tags go through thetagsargument; any ASCII#left in the body is escaped to the full-width#before sending, so flomo never parses body text as a tag (passescapeBodyHashes: falseto keep an inline#tag). - flomo_config — set
apiKey(newer key format) orwebhookUrl(the API URL from the flomo settings page, typicallyhttps://flomoapp.com/iwh/<token>/);reset: trueclears 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 mode0600. - 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.dshas^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 stayunknownand are not claimed. - How each entry is verified:
npm run verifypacks the plugin, installs the tarball into a throwaway profile under an isolatedDSH_HOME, boots the host, callsGET /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-flomoroute family. - Respects flomo's content syntax:
**bold**,; tags are appended fromtags, and body ASCII#is escaped to#so it can never spawn a stray tag.
License
MIT
Links
More in this category
vectorize-io/hindsight#coding-agents★ 60728
Hindsight, agent memory that learns: long-term project memory with auto recall and retain, knowledge pages, deep reflection, and per-repo memory banks.
volcengine/OpenViking#examples/dsh-memory-plugin★ 42125
OpenViking memory and context bundle for DeepSeek Harness: pre-step auto-recall and profile injection, session capture, `viking://` URI guarding, and recall/write memory tools backed by an OpenViking server.
MemTensor/MemOS#memos-local-plugin★ 12376
Local-first memory plugin for DeepSeek Harness: layered L1/L2/L3 memory with automatic capture, manual memos_* retrieval tools, and a built-in memory viewer.
agentscope-ai/ReMe#dsh★ 3796
Connects DeepSeek Harness to ReMe's local-first, self-evolving personal knowledge base: automatically captures completed main-agent conversations as user-owned Markdown memory, searches conversations and source material through reme_search with BM25, optional embeddings, and wikilink expansion, and schedules daily memory consolidation.
zilliztech/memsearch#MemSearch★ 2866
Shared Markdown memory for DSH and other coding agents, with automatic capture, pre-step context injection, searchable recall, and memory-to-skill self-evolution through a review panel.
vshulcz/deja-vu#extensions/dsh★ 1529
Reads the session files forty-two other coding agents on this machine already wrote (Claude Code, Codex, Cursor, VS Code Copilot Chat, opencode, OpenClaw, Hermes, Kimi, Cline, Zed and more), including sessions from before it was installed: six tools (deja_recall, deja_session, deja_blame, deja_fix, deja_how, deja_remember), a /deja command, and optional automatic recall added to the runtime context. Local BM25 index, no LLM, no embeddings, no network (dsh plugin --profile web add dsh-deja).
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.