Foreword

When developing on the DeepSeek Harness (DSH) Web interface, the sidebar can accumulate a large number of sessions. Managing the visibility and priority of these sessions can easily cause visual clutter. The dsh-session-activity plugin automatically groups sessions by activity priority, helping developers quickly focus on the context they need in the current moment.

Core Features

Based on the Last updated timestamp of each session, the plugin divides visible sessions into four tiers: Hot, Warm, Cool, and Cold. The system continuously monitors session state and dynamically adjusts grouping according to the configured rules.

The sorting logic follows the priority order below (highest first):
1. Explicit user interaction (waiting for user action).
2. Completed AI response (waiting for user follow-up).
3. Regular idle sessions.
4. Sessions where the AI is running or a subagent is continuously running.

In addition to automatic grouping, the plugin provides the following capabilities:
- Focus mode: Provides a persistent button that hides all groups except Hot and shows only active sessions.
- Search and expansion: In Focus mode, all sessions remain searchable; the group containing the current session expands automatically, and empty groups are hidden.
- Preserved actions: Preserves native session actions such as opening, renaming, forking, archiving, creating/renaming/removing workspaces, and creating new sessions.

Installation and Activation

Install the plugin using the DSH command-line tool:

dsh plugin --profile web add dsh-session-activity

After installation, restart the dsh web process and refresh the page to activate the plugin. It overrides the built-in workspace browser through the DSH slot priority mechanism.

Configuration

The configuration file is located at $DSH_HOME/session-organizer.json. Edit it through the Settings → Session Organizer menu; the sidebar updates immediately after saving.

The default configuration is as follows:

config:
  hot:
    label: Hot
    within: 3h
    expanded: true
  warm:
    label: Warm
    within: 1d
    expanded: false
  cool:
    label: Cool
    within: 2d
    expanded: false
  cold:
    label: Cold
    expanded: false
  focus:
    defaultEnabled: false
  refreshEvery: 1m

Configuration details:
- The within parameter sets the time threshold for a group; supported units include m, h, d, and w.
- The time thresholds must satisfy hot.within < warm.within < cool.within.
- Boundary checks are “included in the older group”: Hot uses <, Warm uses ≤ and <, and so on.
- The minimum value for refreshEvery is 1m, which controls the frequency of group calculations.

Typical Usage

  1. Adjust grouping thresholds: Based on your usage habits, modify hot.within (for example, 2 hours) or warm.within (for example, 6 hours) in the settings to change the criteria used to determine session activity.
  2. Manual sorting: In the session action menu, use the keyboard-accessible Move earlier and Move later features to fine-tune the order of sessions within the same tier.
  3. Add workspaces: In the sidebar, use the Add workspace feature and leverage DSH’s browse capability to browse directories within the app, without relying on the operating system file picker.

Use Cases and Notes

This plugin is suitable for developers who run DSH on the Web for extended periods and need to manage multiple concurrent sessions.

Notes:
- DSH has persistent control over the Last updated field; the plugin only performs projection calculations based on this field and does not modify DSH session summaries.
- Subagent child sessions do not appear in the top-level list, which is consistent with the behavior of the built-in workspace browser.
- The plugin follows the MIT license.

Conclusion

dsh-session-activity simplifies session management in the DSH Web sidebar through automated grouping and sorting logic. For more details, see the community catalog or the source repository.