DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Echo Notes — DSH Plugin for DeepSeek Harness
← Plugins
E

@dsh-plugin/echo-notes

Echo Notes

Echo Notes 回声笔记 — emotion-first encrypted diary, templates, and writing reminders for DeepSeek Harness.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:Smallballoons01/echo-notes#30086471daa3b575099f4940e70dd4364795e64e
READMECompatibilityVersions

Compatibility and provenance

Echo Notes is published as @dsh-plugin/echo-notes and currently resolves to version 0.3.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
10/16/2026

Versions

0.3.0stable
10/16/2026
0.2.0stable
10/9/2026
0.1.0stable
10/8/2026

Related plugins

Loading related plugins…

Latest
0.3.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 1
Weekly downloads
0
Last push
10/16/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in

Related plugins

More verified plugins in productivity-workflow.

Client Ui Task Board@linxin666/dsh-client-ui-task-boardHost-authoritative task board for the DSH Web GUI with real session execution, Host cron scheduling, and optional cross-platform idle-sleep protection; mounted without DSH source changes.Web All@linxin666/dsh-web-allDSH Web UI 全家桶聚合插件:一键安装全部功能插件(task-board / git-graph / pet / remote-web-ui / web-ui-settings / skin-center / community-plugins / compat shim)。compat 桥接层已并入本包(src/client),无需独立 compat npm 包。Deepseek Ipptdeepseek-ipptiPolloWork PPT Studio and its curated slide templates as a native DeepSeek Harness conversation view.Codex Ui@michengai/dsh-codex-uiDSH Codex UI — 为 DeepSeek Harness Web 提供 Codex 风格侧栏、工作区会话树、全局搜索和轮次导航 · A Codex-style sidebar, workspace session tree, global search, and turn navigation for DSH Web

README

Echo Notes 回声笔记

An emotion-first diary for DeepSeek Harness, with the agent as a writing partner: emotion/persona templates, chronological and mood browsing, optional passphrase encryption, and scheduled writing prompts.

The native panel and echo_note Agent tool run in DeepSeek Harness. The same portable JSON Schema tool contract is documented below for adapters in other Agent hosts; host-side capabilities such as reminders and storage require the Harness runtime or an adapter.


What it does

Emotion templatesi 人 / e 人, plus one per mood (开心、伤心、焦虑、疲惫…) and a blank free-write. Author your own and shadow a built-in without editing code.
BrowsingBy time window, by mood, by tag, by template, and full-text search. Aggregates by mood/day/tag plus a writing streak.
EncryptionAES-256-GCM, key derived from your passphrase with scrypt, per-note random IV, note id bound in as AAD. Off until you create a vault.
RemindersDaily, weekly, interval, or one-shot. When one fires the agent is woken with a prompt and writes the entry.
Agent accessOne echo_note tool (9 actions) plus an echo-notes skill carrying the writing guidance.
Auto-lockOptionally drops the key from memory after an idle period.

Agent compatibility

SurfaceCompatibilityRequirements
DeepSeek Harness native Agent toolNative echo_note tool with standard JSON Schema arguments/outputPlugin enabled in Harness
MCP-capable Agent clientsecho_note via included stdio MCP adapterHarness running locally; set ECHO_NOTES_API_URL
Claude Desktop / Cursor / ContinueMCP stdio transport, subject to each client’s config supportNode.js 20+, client-specific MCP setup
Direct REST callersLocal JSON API under /echo-notes/apiLoopback Host; POSTs must be same-origin or omit Origin
Agents without MCP or custom toolsNot directly supportedUse an MCP bridge or the client’s tool-adapter feature

This is interoperability through shared schemas and adapters, not a claim that one plugin binary runs unmodified inside every Agent product. The Harness owns the vault, encryption key, reminders, and persistence; external MCP clients forward to that running service and cannot unlock it with a tool call.

Installation

DeepSeek Harness (development link)

From a local DSH session, install this directory as a bundle using the Plugin Manager and the absolute path to this checkout. The bundle registers one Host row and a Client panel; after activation, open 回声笔记 from the sidebar and create a vault.

DeepSeek Harness (published release)

Install the tagged GitHub release through the DSH Plugin Manager. The repository, homepage, and bugs fields in package.json already point at this project. See RELEASING.md for the release checklist.

Other Agent hosts

Other MCP-capable agents can use the portable MCP adapter in mcp/ against the same Echo Notes data service when configured. The UI, local storage domain, reminder scheduler, and passphrase lifecycle are Harness-owned; another host must provide an adapter/storage service and must not share the raw data directory while the Harness process is running. See Agent compatibility.

Using it

  1. Create a vault. Pick a passphrase. It is stretched into a key-encryption key; only a wrapped data key is stored, so changing the passphrase later never rewrites a single note.
  2. Write. Choose a mood chip, then optionally a template. Templates drop prompt headings into the editor — answer the ones you feel like and delete the rest.
  3. Ask the agent. "帮我写今天的日记,今天有点累" is enough. It calls status first, picks the matching template, writes in your voice, and confirms in one line.
  4. Review. Filter the list by text or mood, or open 设置 for the mood/day chart and totals.

Reminder schedules

daily:    { kind: daily,    at: "21:30" }
weekly:   { kind: weekly,   at: "09:00", weekdays: [1, 5] }   # 1 = Monday
interval: { kind: interval, everyMinutes: 45 }
once:     { kind: once,     at: "2026-10-09T09:00:00+08:00" }

A reminder that comes due while the machine is asleep is skipped, not replayed — opening the app after a holiday will not produce a wall of nudges. The grace window is 10 minutes.

Configuration

Edit this bundle's row in cordis.patch.yml (or the plugin's settings page):

KeyDefaultMeaning
autoLockMinutes0Drop the key after this much idle time. 0 disables auto-lock.
defaultReminder"21:30"Time used by a reminder created without one.
encryptByDefaulttrueEncrypt bodies as soon as a vault exists.
tickSeconds30How often the reminder/auto-lock loop runs.

How it is built

index.js          Host half: vault, tools, skill, reminder loop, HTTP API
client.js         Client half: the panel (plain JS, React from the module table)
src/crypto.js     scrypt + AES-256-GCM, no dependencies
src/store.js      note index, filtering, revisions, encryption migration
src/templates.js  the emotion templates and their rendering
src/reminders.js  pure schedule maths (next fire, catch-up policy)
skills/echo-notes/SKILL.md   agent-facing workflow
test/             unit, integration, MCP protocol and render tests

Three decisions worth knowing about:

One action dispatcher, multiple adapters. The Harness tool and HTTP routes call the same runToolAction/operations logic. The MCP adapter forwards the same echo_note JSON Schema/action request to /tool; it does not implement a second data store or business-logic copy. Integration tests exercise each adapter surface.

The Client calls the Host over HTTP, not a Remote namespace. This bundle is plain JavaScript with no code-generation step. ctx.webServer.register gives the panel a same-origin transport; loopback Host and Origin checks limit browser requests. MCP stdio is intended for local clients connecting to a running Harness. Do not expose the HTTP endpoint publicly or proxy it without adding real authentication and TLS.

Metadata is plaintext; note bodies and revisions are encrypted. The stored index still includes title, mood, tags, timestamps, word count and pin state so filtering works without decrypting every note. The 40-character preview is cleared after encryption is enabled. These metadata fields can still reveal private information; treat the storage directory accordingly.

Development and tests

pnpm install
pnpm check
pnpm test

The Node built-in test suite covers encryption and tamper detection, storage and migration, reminders, HTTP and native-tool operations, standard JSON Schema portability, MCP stdio JSON-RPC, and Client view rendering. The profile install uses DSH-owned package peers; local development uses the exact peer versions listed in the lockfile. See CONTRIBUTING.md for guidance.

The Harness versions this plugin develops against are published to npm but not under the latest tag — npm's latest for @deepseek-ai/dsh-tools is still the placeholder 0.0.1-rc.1. They are reached through the alpha tag, and the lockfile pins 0.2.1-alpha.4 together with its companion versions @deepseek-ai/cordis 4.0.5-alpha.2 and @deepseek-ai/schemastery 3.18.5-alpha.2. The lockfile is committed and CI installs with --frozen-lockfile, so a dependency change must move the lockfile with it.

Limitations

  • Metadata remains plaintext. Titles, mood, tags, timestamps, word counts and pin state are stored unencrypted for indexing and filtering. The plaintext body preview is removed when encryption is enabled. Anyone who can read the storage backend can still infer patterns from metadata.
  • Authenticated encryption does not prevent rollback or deletion. AES-GCM detects ciphertext tampering and moving ciphertext between note/revision ids. Anyone with write access to the storage backend can still delete notes or restore an older valid database snapshot. Back up the storage backend safely.
  • A forgotten passphrase is unrecoverable. That is what the encryption is for. There is no recovery key and no escrow.
  • Auto-lock is coarse. It is checked on the tick loop, so the lock lands within one tickSeconds of the deadline, not exactly on it.
  • Reminders need a live Harness. They are Host timers, not OS-level notifications; a closed app fires nothing, and the missed occurrence is skipped.
  • Search requires an unlocked vault. Matching happens against decrypted bodies in memory, so a locked vault can list metadata but cannot search text.
  • Browser-verified panel. scripts/browser-smoke.mjs (pnpm test:browser, needs a running dsh web and Playwright) drives the real Web UI: the sidebar entry opens the panel, the first-run passphrase card renders, and the --dsw-alias-* tokens resolve to different palettes under light and dark schemes. Verified against DeepSeek Harness 0.2.1-alpha.4.

Storage schema

The echo_notes domain stores three tables (notes, revisions, settings) with deliberately permissive schemas. The record shape grows while the diary is in use — a strict schema would turn every added field into a migration — so the invariants that matter are enforced by NoteStore and covered by tests instead.