Introduction

During the development or use of DeepSeek Harness (DSH), it is often necessary to mark key information in a conversation or preserve the thought process. Manual copy-and-paste is not only cumbersome, but it can also easily break context associations. Below is an introduction to dsh-session-notes, which highlights text in the conversation and attaches sticky notes to it. It persists and aggregates this information, solving this pain point.

Plugin Overview

dsh-session-notes is an unofficial project that is independently developed and maintained by community member iptton-ai under the MIT license. It uses the CSS Custom Highlight API to implement highlighting without modifying the DOM, and supports sticky note management across three scopes: session, workspace, and global.

Core Features

The plugin provides the following core capabilities:

  • Highlighting and Annotation: Supports selections that span bold text, inline code, and paragraph boundaries. Click the floating button to add a sticky note, and the selected text will retain persistent highlighting.
  • Three Scopes: Notes can belong to “this session”, “current directory”, or “global”. Create, edit, or delete notes in the panel; notes within a scope are visible in the corresponding session.
  • Panel Filtering: The right-side panel supports filtering by “All”, “Current Directory”, and “This Session”, and displays real-time counts.
  • Send to Editor: Appends the note content and the referenced original text to the current input box, making it easy to continue follow-up questions.
  • Self-Healing Highlights: Monitors DOM changes using MutationObserver and performs reconciliation every 5 seconds to ensure highlights persist after re-rendering or pagination.
  • Task Notes and Timed Triggers: Supports creating task notes with next (next action) and doneWhen (completion condition), or scheduled triggers with dueAt (deadline). The former can generate a new session, while the latter can trigger automatically.
  • Orphan Prevention: The plugin polls session/list every 3 minutes. When the session associated with a task is deleted, it automatically falls back to notification mode and provides a decision card in the panel, avoiding silent failure.

Installation and Enablement

Two installation methods are supported: persistent mode and dynamic mode.

This is the recommended method. The plugin persists after the dsh web process is restarted.

dsh plugin --profile web add github:iptton-ai/dsh-plugin-session-notes

Or use a local path:

git clone https://github.com/iptton-ai/dsh-plugin-session-notes
dsh plugin --profile web add /abs/path/to/dsh-plugin-session-notes

Dynamic Mode

No build step is required. The plugin is effective only during the current dsh web process lifecycle.

  1. Open DSH and use “Creative Mode” or a preset with cordis_define / cordis_run tools.
  2. Ask the Agent to install it:

    Help me install this plugin: repository https://github.com/iptton-ai/dsh-plugin-session-notes. Use cordis_define to define it (read src/host.js as code.host, src/client.js as code.client, with plugin id prefix snote), then cordis_run to activate and approve.

  3. Refresh the page and the plugin will be ready to use.

Configuration Notes

  • Do not manually insert the session-notes line into dsh.profile.bundles in cordis.patch.yml
    . The plugin’s storage file is located at ~/.dsh/storages/session-notes/notes.json.

Usage

  1. Select any sentence in a DSH session message.
  2. Click the floating 📝 Note button.
  3. Write a note in the pop-up input box.
  4. In the right-side panel, switch the filter view (All/Current Directory/This Session) to browse all notes.
  5. Click a note to view details, and click edit to modify it.
  6. Select highlighted text and click send to the input box to append the note content to the current input box.

Important Notes

  • Unofficial Project: This plugin is independently maintained by community members and is not affiliated with DeepSeek official.
  • Permission Scope: On the host side, the plugin has danger-full-access permissions only for its own storage file ~/.dsh/storages/session-notes/notes.json. It does not touch other paths.
  • Data Persistence: In persistent mode, data is stored persistently. In dynamic mode, if the dsh web process restarts, you need to rerun the installation command, but the note data on disk is usually preserved.