dsh-memo
Memo plugin for DeepSeek Harness: sidebar quick capture, local SQLite storage, private GitHub repo sync, and image/screenshot support. 提供侧边栏快速记录、SQLite本地存储及GitHub同步,适合需要随手记事和管理笔记的用户。
Other repositories with this package name
Install
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:adamcjm/dsh-memoREADME
Read the full README ↗Usage
Capturing a note
Open the Memo icon at the bottom of the sidebar and type into the input at the top, then press Enter:
Mr. Zhang wants a WeChat QR login entry on the login page; prototype due next Wednesday #requirement-change #login
#requirement-change and #login become tags automatically, and the tag markers are stripped from the body.
Adding images / screenshots
Three ways, freely mixable and repeatable:
- Paste — take a screenshot, then press
⌘Vin the input - Drag — drag images straight from Finder onto the input
- Pick — click the "Image" button; hold
⌘/⇧in the file dialog for multi-select
Images are named by SHA-256 and stored in attachments/, so pasting the same image twice costs one copy. Click a thumbnail to view it full size.
Tags
Tags are not fixed. The defaults (#requirement-change #todo #follow-up #idea #meeting) are just starting suggestions:
- Type
#customer-Aor#MrZhangin the body and save → the tag is created and attached to that note - The tag area is sorted by usage; click one to filter
- A tag that no note uses anymore disappears on its own
Search
Use the search box in the panel header and press Enter. Qualifiers combine:
| Syntax | Meaning |
|---|---|
scan | Body or source contains the string (works for short CJK queries too) |
#requirement-change | By tag |
source:MrZhang | By origin |
after:2026-10-01 before:2026-10-08 | By date range |
has:image | Only notes with attachments |
is:open is:done | Only open / only completed |
Keyboard shortcuts
| Key | Action |
|---|---|
Enter | Save the current input |
⇧Enter | Newline inside the input |
⌘V | Paste an image from the clipboard |
Esc | Close an overlay (settings / image zoom) |
Syncing to GitHub
- Create a private repository on GitHub (e.g.
yourname/dsh-memo-data) - Create an access token:
- Preferred: a fine-grained PAT scoped to that repo with Contents: Read and write
- Or a classic PAT with the
reposcope
- Click the settings icon in the panel header, fill in the repository and token, and hit "Save and sync"
After that:
- Manual sync — click "Sync now"; the result is reported by a top-center notification (success / failure)
- Auto sync — every change is committed and pushed 30 seconds later; failures also raise a notification
- Status — the panel header shows "Synced / Pending / Local only / Sync error"
Token lookup order (none of them ever enter the repository):
- The settings dialog writes
~/.dsh/memo/.token(mode0600) - Environment variable
DSH_MEMO_GITHUB_TOKEN - Environment variable
GITHUB_TOKEN
When pushing, the token only ever appears in the git process arguments (http.extraheader) — it is never written into .git/config.