AI Agent Hub
Back to plugins
dsh-granular-settings preview

dsh-granular-settings

admin-security Updated 2026.08.27

Run the following command in DeepSeek Harness:

dsh plugin install joao-paulo-santos/dsh-granular-settings

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

Install the plugin by running dsh plugin install joao-paulo-santos/dsh-granular-settings in your DeepSeek Harness checkout; the full source code is available at https://github.com/joao-paulo-santos/dsh-granular-settings

About this plugin

Across the DSH ecosystem, plugins need user-facing knobs at different granularities: a model choice for one session, a build flag for a workspace, an accent color for the entire install. Before dsh-granular-settings, every plugin had to build its own settings plumbing from scratch. This plugin is the shared platform that eliminates that duplication: one registration API namespaced by the owning package name so dsh-foo and dsh-bar can never collide, eight control types, and three scopes, all rendered into a single Granular Settings page inside the settings dialog, grouped one box per owning plugin.

The eight controls—toggle, text, color, number, slider, enum, multiselect, and path—cover most real-world configuration needs. Enum and multiselect accept a zero-argument provider function in place of a static option list, evaluated at describe time, so an option list can track a live library without re-registration. Session, workspace, and global values live in their own JSON stores. On the browser side a single useSetting hook handles context derivation, doorbell subscriptions, reconnect, window-focus refresh, and optimistic writes through the host; when no session is open, session and workspace values read as undefined while global values keep working. When rows are not enough for a plugin, an entire custom tab component can be contributed into the page scroll area, receiving the same props the built-in tabs get.

This plugin is for DSH plugin authors who want their users to tune behaviour without hand-rolling settings UI. Register your controls, declare scopes and defaults, and the page appears automatically. The companion dsh-bouncing-squares-example ships three bouncing squares bound one-per-scope and exercising seven control types—fork it and you have a working starting point in minutes.

Screenshots

Use Cases

  • A plugin author needs per-session, per-workspace, and global user configuration without hand-rolling a settings UI every time.
  • Multiple DSH plugins coexist in the same settings dialog and need namespaced isolation so keys never collide.
  • A plugin exposes enum or multiselect controls whose option lists must track a live library at describe time rather than being hardcoded.

Best For

  • DSH plugin developers who need to expose configurable behaviour to end users.
  • Teams maintaining multiple DSH plugins that share a single settings page.
  • Small-plugin authors who want to skip hand-rolled settings forms and ship configuration quickly.