中文EN

@lucagiftzek/dsh-note-keeper

memorynpmMIT

DSH 侧栏里的 Obsidian 兼容 Markdown 笔记:搜索、标签、反向链接、图谱、带转写的语音笔记、画布、OCR(需 tesseract)、客户端加密与 notes_* agent 工具;release tarball 与 npm 包自带预构建的 Linux x64 daemon,其他平台需用 Go 从源码构建。

下载量 / Downloads
270

安装

dsh plugin --profile web add @lucagiftzek/dsh-note-keeper

沙箱测试

这个插件还没测过。提交测试 →

README

Note Keeper (dsh-note-keeper)

![npm](https://www.npmjs.com/package/@lucagiftzek/dsh-note-keeper)

Note Keeper is a plugin for the DeepSeek Harness (DSH) web GUI: an

Obsidian-compatible, local-first notes app that lives in the left sidebar and

opens as a full-page panel. It stores notes as plain Markdown files in a

regular directory on disk, so any Obsidian-compatible sync method keeps it in

step with a phone or another desktop. It also exposes a set of notes_*

tools so an AI in the same DSH chat can read, search and write the user's

notes under a clear set of guardrails.

Author: Loukas "Luca" Tzekos. License: MIT.

Feature overview

  • Left-sidebar "Notes" entry: a row in the sidebar panel list

(sidebar.panellist slot) that opens Note Keeper as a full-page panel

registered in the main-column keyed slot.

  • Obsidian-compatible vault: plain Markdown files under a normal

directory (default ~/NoteKeeper, configurable via vault). Wikilinks

([[Note]]), embeds (![[Note]]), #tags (including nested

project/alpha), YAML frontmatter, callouts (> [!warning]), and a

.trash folder for recoverable deletes, exactly the way Obsidian lays

them out.

  • Rename-safe wikilinks: moving or renaming a note rewrites every

[[wikilink]]/![[embed]] that pointed at it, in every other note, the

same way Obsidian does.

  • Live sync from any writer: an fsnotify-backed watcher reindexes any

change (this app's own writes, Obsidian on the same machine, a sync

client landing a phone edit) and pushes a Server-Sent Events refresh to

every open browser tab; a 5-minute full rescan repairs anything a dropped

kernel event missed.

  • Full-text search: accent-insensitive for both Greek and Latin script

(Καλημέρα ≈ καλημερα ≈ ΚΑΛΗΜΕΡΑ), last-word prefix matching while typing,

and "quoted phrase" matching. Filterable by tag (nested tags included)

or folder.

  • Tags, backlinks, outline, graph: a tag browser with counts, a

backlinks panel per note, a heading outline, and an interactive local

graph view (note/attachment/tag nodes, plus "ghost" nodes for unresolved

links, just like Obsidian's graph).

  • Quick capture & daily notes: one shortcut appends a timestamped

bullet (or a - [ ] task) to Inbox.md; another opens or creates

today's daily note at Daily/YYYY-MM-DD.md, expanding

Templates/Daily.md when present.

  • Templates: any note under the Templates/ folder can be used to

start a new note, with {{title}}, {{date}} and {{time}} expanded.

  • Audio notes: record with MediaRecorder, send the clip to the

dsh-voice plugin's /api/voice/stt endpoint with the language pinned

(Greek and English are first-class; several others are offered; "auto"

lets the engine detect), optionally run a text-polish pass, and save the

result as a Markdown note with nk-type: audio frontmatter

(language, engine, duration) embedding the audio clip.

  • Retro paint canvas: an MS-Paint-style drawing editor: pencil, brush,

eraser, spray and more, over a raster canvas plus an editable vector shape

layer. Saving writes a PNG, the vector JSON, and (optionally) OCR'd text

from the drawing into a single "drawing" note.

  • OCR: Tesseract (eng+ell by default) runs over pasted/attached

images and over paint-canvas drawings to extract text (handwriting

included, on a best-effort basis).

  • Attachments: upload, paste, or drag-and-drop images, audio, video and

PDF, with inline previews; risky file types (HTML, SVG, JS, …) are always

forced to download so an uploaded file can never script the DSH origin.

Large files: uploads above 64 MiB are sent as 64 MiB slices

(begin / chunk… / finish), because an edge such as Cloudflare refuses

any single request body over 100 MB. The server stages the slices in a hidden

.nk-up-* file, renames it into place at finish, and removes it on any

failure or abort. The assembled-file cap is 1 GiB (maxAttachBytes).

  • Client-side zero-knowledge encryption: see the [Security model](#security-model)

section below. Encrypted notes/attachments/folders are opaque to the

server, to sync tools and to AI tools; only the browser that knows the

password can read them.

  • Conflict detection: every save carries the mtime it was read at; a

concurrent edit from another device, Obsidian, or an AI tool produces a

conflict banner offering "load disk version", "keep both" or "overwrite

with mine", instead of silently clobbering data.

  • Autosave: edits are saved 1.2 s after the last keystroke, and flushed

immediately when the tab is hidden or closed.

  • Live preview editor: CodeMirror 6 with Obsidian-style live preview: links,

wikilinks and tags are clickable while you type; source, split and reading modes too.

  • Connect: the Note Keeper Sync plugin for Obsidian (desktop and mobile, two-way,

paired with a one-time code, signed requests), WebDAV for other apps, and a

two-way cloud mirror (Google Drive, OneDrive, Dropbox, iCloud Drive, S3) via rclone.

See [docs/SYNC-PROTOCOL.md](docs/SYNC-PROTOCOL.md).

  • Import: Obsidian/Bear/Logseq/Joplin Markdown, HTML, Evernote .enex, Google Keep

Takeout, Notion export zips.

  • AI Enhance: proofread, format and interlink a note with the DSH default model

(or any model chosen in its settings), previewed as a diff before anything changes.

  • 12 AI tools (notes_*), see the [AI tools](#ai-tools) table.

Screenshots

v0.2: live preview (links and tags clickable), AI Enhance diff review, Connect (Obsidian pairing):

Captured from the live DSH GUI with a custom theme (dark mode).

![Home](docs/screenshots/home.png) · ![Editor with live preview, tags, backlinks](do

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:2,最后更新 2026-11-01

链接

GitHub · Homepage · npm

同类插件