AI Agent Hub
Back to plugins
🖥️

omdsh-basemode

Client Updated 2026.08.23

Run the following command in DeepSeek Harness:

dsh plugin install omdsh-plugins/omdsh-basemode

Paste the following prompt into your AI chat to install this plugin:

To install omdsh-basemode, run dsh plugin install omdsh-plugins/omdsh-basemode in your terminal; the source code is hosted at https://github.com/omdsh-plugins/omdsh-basemode , and the changes take effect after restarting the DeepSeek Harness web GUI.

About this plugin

Running multiple modes side by side in the DeepSeek Harness web GUI produces a switch above the conversation column and a coloured dot in front of every sidebar row. Neither belongs to any single mode plugin. omdsh-basemode extracts the session-mode infrastructure into its own package: the segment registry (the sessionModes service), the switch rendering frame, and the sidebar colour marks. Every mode plugin now depends on this one layer instead of pulling another mode's full package into the dependency graph. Before the split the registry lived inside omdsh-chatmode, so installing Code meant dragging in Chat's managed workspace, agent preset, and dock note; a profile without Chat would boot-fail on a service nobody composed. After the split each mode depends on basemode and basemode depends on no mode, making the dependency honest.

On a profile with only omdsh-codemode the switch shows a single Code pill with no way back and the sidebar has no dots. The Work baseline posture registered by omdsh-basemode fills that exit. It uses the same name, colour, and glyph as omdsh-chatmode's Work, so a user cannot tell which package contributed the pill. The moment omdsh-chatmode registers its own memory-bearing Work, the baseline steps aside to avoid painting two dots on one row. A New Session click is first offered to whatever segment holds the column; when the segment declines the request reaches the frame, which mints a genuinely new conversation rather than reusing the workspace's stale blank row. The package registers no settings namespace at all, because a segment registry has no user-facing knob: which postures exist is a property of the profile's loaded plugins, and which holds the column is a property of what you are currently looking at.

Two audiences benefit. Users running a multi-mode workflow (Chat plus Code, or more) in the Harness web GUI never touch this package directly, yet the sidebar dots and switch pills only render because it is loaded underneath. Developers writing a new DeepSeek Harness mode plugin import the SessionModes type from this package, resolve the runtime service by the string sessionModes, and register their own owns, inProject, enter, and newSession callbacks. The full contract lives here, one level below every mode and above no business logic.

Use Cases

  • Toggling between Chat and Code modes in the web GUI and falling back to the default work column
  • Seeing a mode-coloured dot on every sidebar row to distinguish conversations at a glance
  • Building a new mode plugin by importing the registry service and callback contract from this package

Best For

  • Day-to-day users running multi-mode workflows in the DeepSeek Harness web GUI
  • Client-side engineers building new mode plugins for the Harness ecosystem
  • Architecture leads maintaining the plugin dependency layering in the Harness GUI