DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

r48n34 /

r48n34/dsh-side-memo

Verified

A lightweight, toggleable right-side notes panel for DeepSeek Harness.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHubProject homepage
READMESource: main@51e88016

Side Memo

Side Memo — your notes, right where you work

Language: English · 简体中文 · 繁體中文

Side Memo panel open in the right sidebar, with searchable notes and labels

A lightweight, toggleable right-side notes panel for DeepSeek Harness. Jot memos while you chat — text, inline images, and labels — copy them with one click, star favorites to keep them pinned at the top, and move everything in or out as an Excel workbook.

License: MIT Version npm CI DeepSeek Harness Platform

Category: UI & Experience

Install

dsh-side-memo is published on npm. Install it through your DSH profile:

dsh plugin --profile web add dsh-side-memo

The same plugin can also be installed straight from this repository — use the GitHub form when you need a commit that is not on npm yet, or when npm is unreachable:

dsh plugin --profile web add github:r48n34/dsh-side-memo

If your DSH runs the Desktop profile, use the profile name shown in Settings → Plugins (for the Desktop app this is usually desktop):

dsh plugin --profile desktop add dsh-side-memo

After installing, the Side Memo icon is already available in the Session header — at the header's right edge, including before any Session exists (the first screen) and on the new-Session welcome screen. Open it from there, from the Session header's right-side utilities, or from the right sidebar's add/guide control. If the icon does not appear, restart DSH once so the new plugin bundle is loaded.

To remove it, use Settings → Plugins in DSH (or the equivalent dsh plugin command for your profile).

What it does

  • Quick notes: Open notes beside your chat, or in a floating drawer before a Session starts.
  • Drag into chat: Drag a memo from the list onto the chat box to paste its text into the message you are writing.
  • Stay organized: Search notes, add labels, filter or group by label, and pin favorites.
  • Add images: Paste or drag images into notes, or use the image button.
  • Resize images: Select an inline image for a Photoshop-style transform box, then drag a handle, nudge with the arrow keys, or reset it to its original size.
  • Copy and transfer: Copy notes in one click; import or export notes as Excel workbooks.
  • Save locally: Notes and images stay in your browser and are available across Sessions.

Usage

  1. Click the Side Memo icon at the right of the conversation header to open or close the panel.
  2. Click New and start writing. Changes save automatically; you can also create a note from the editor.
  3. Add labels below the title, or paste, drag in, or insert an image. Click an image to select it: a brand-colored outline, eight resize handles and a W × H size badge appear. Drag a handle to resize — corners and edges keep the aspect ratio, Shift-drag distorts freely and Alt-drag resizes from the center — press the arrow keys to step by 8 px (Shift+arrow changes one axis only), and double-click the image or click the overlay's reset button to restore its original size. Press Escape or click elsewhere in the editor to deselect it. Use the star to pin a favorite and the copy icon to copy a note.
  4. Search or use the label filters and Group by label to find notes. Use the toolbar's import/export icons to transfer notes as .xlsx files.
  5. While writing a message, drag a memo from the list onto the chat box; its text is inserted at the caret in your draft, and the memo's images stay in the panel.

Imports add new notes without overwriting existing ones. Images remain local and are not included in Excel exports. An image's chosen display size is saved with the memo, so it survives reloads; resizing only changes how the stored image is shown, not the stored image itself.

Compatibility

  • DeepSeek Harness 0.2.x (developed and tested against 0.2.1-rc.3, Desktop profile).
  • Web GUI and Desktop (Electron/Chromium). The client half relies on standard browser APIs: localStorage, IndexedDB, Clipboard, File API, Blob/URL, Canvas, and DecompressionStream('deflate-raw') for reading compressed .xlsx files.
  • Uses the shipped right-sidebar plugin API (@deepseek-ai/dsh-client-ui-sidebar-right); the panel is a normal right-sidebar tab, so a Session is required to host it. Before any Session exists the same notes UI is rendered by the plugin itself in the frame-level overlay layer (shell.overlay). In the pre-Session and new-Session phases the toggle mounts through the resident header's conversation.header.leading seat and positions itself at the header's right edge from the live header/panel-toggle geometry.
  • Uses the conversation client's composer insertion API (inputActions) to paste a dragged memo into the chat draft as a single undoable edit.
  • TypeScript sources live under src/; client.js and index.js are the compiled browser and Host modules committed to the repository, so installing or running the plugin never needs a build step.

Permissions & privacy

  • No network access and no external services.
  • No Host data access and no agent-facing tools. The Host half is an empty apply().
  • Memos and images stay in this browser (localStorage for notes, under the dsh.side-memo.notes.v1 key; IndexedDB for image data, under the dsh-side-memo-images database); they are not encrypted or synced across devices.
  • Clipboard writes happen only when you click copy.
  • Excel files are read from and written to your machine through the browser's file picker/download — they are never uploaded.

Known limitations

  • Browser-local storage only: no cross-device or cross-browser sync.
  • Without a Session the notes open in the plugin's own floating drawer (the right sidebar itself is Session-scoped); the drawer and the right-sidebar tab are alternative hosts for the same notes.
  • Drag-to-compose needs an open Session with an editable chat box and pastes plain text only: memo images and labels are not transferred.
  • Text is plain text (no Markdown or rich-text formatting); images are the only rich content. Images are downscaled before storage and are not exported to Excel — the Images column only holds a count.
  • Image support needs IndexedDB and Canvas. If the browser blocks IndexedDB, the text memos keep working and image insertion is disabled.
  • Excel import reads the first worksheet only; formulas import as their cached values, and rich-text cell formatting is ignored.
  • Limits: 300 memos, 120-character titles, 8,000-character bodies, 12 labels per memo (24 characters each), 20 images per memo (source images up to 24 MB, downscaled to at most 1,400 px at quality 0.82 before storage; display sizes 24–1,400 px), 8 MB .xlsx imports (up to 32 MB expanded across at most 64 entries), and a 60 MB total image budget for the browser.
  • Labels are flat tags — no nesting, per-label colors, or separate tag manager — and each label is stored per memo, so renaming one means editing every memo that carries it.
  • Favorites are pinned within the memo list; there is no separate favorites-only view yet.

Development

TypeScript sources live under src/ and compile to the committed client.js / index.js with the TypeScript compiler only (no bundler):

File Role
package.json Bundle/client manifest (dsh.bundle patch and dsh.client browser module)
cordis.patch.yml Inserts the dsh-side-memo Loader row
index.js Host half (no-op apply; generated from src/host/index.ts)
client.js Notes panel, tab type, always-available header toggle, pre-Session drawer, localStorage + IndexedDB store, inline-image editor with the resize/transform overlay, label tags/filter/grouping, editor top-bar new-memo button, drag-memo-to-composer paste, .xlsx import/export (generated from src/client/)
src/ TypeScript sources for both halves
tsconfig.json, scripts/build.mjs Type-check configuration and the yarn build script
locale/en.json, locale/zh.json Plugin Manager title and description
icon.svg Plugin artwork

Load it into a profile with the DSH Plugin Manager (install_bundle on this directory) or install it with the commands in Install. Package contents are limited to the published files — index.js, client.js, the locale files, icon.svg, package.json and cordis.patch.yml. The TypeScript sources, build script and config never ship, and the published tarball only adds the three READMEs and the LICENSE.

Tests

  • Unit tests: yarn test runs node --test on Node.js >=22 after rebuilding the artifacts (pretest). Run yarn install once for the build toolchain — typescript and @types/react are the only dev dependencies and the published package has none — then the suite exercises the real helpers in the compiled client.js.
  • Browser e2e (optional, dev-only; not part of yarn test): see test/e2e/README.md for the isolated-profile harness and its suites.
  • CI runs the unit suite on every push and pull request: .github/workflows/ci.yml.

License

MIT © 2026 Reemo Studio

—/ 5

No ratings yet

Verified DSH bundle

Commit 51e880165540

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout