Fix profile "desktop" is managed exclusively: DSH plugin

TroubleshootingPublished 2026-10-13Author: DeepSeek Plugin Market
DeepSeek HarnessDSH plugindesktop profileElectronprofile exclusivitytroubleshooting
error: profile "desktop" is managed exclusively by the electron application — a reserved name the desktop app owns; use its plugin panel or a custom profile.

The full text of this error is "error: profile "desktop" is managed exclusively by the electron application," and it means the desktop profile is managed exclusively by the Electron desktop app — the command line has no right to change it: error X → do W, either install plugins through the desktop app's plugin panel or create a custom profile to sidestep the boundary (source). It is not a configuration error but a deliberate isolation layer. To be straight about sourcing: this exact error string comes from user searches and feedback, and there is no verbatim hit in the official repository; the official-backed layer is that desktop is a reserved profile name owned exclusively by the Electron desktop app, so the CLI refuses its boot, config-dump and plugin-management requests. The desktop and CLI usage and boundaries are covered in desktop profile isolation and desktop commands; this page targets only this error.

What the "profile "desktop" is managed exclusively by the electron application" error means

It means you are trying to operate on the desktop profile from the command line, but that profile is reserved for the Electron desktop app and the CLI has no permission to touch it (source). Three layers of meaning:

  1. desktop is a reserved name — unlike web or headless, which you manage yourself, it is a name the desktop app owns.
  2. The exclusivity is for runtime consistency — before accessing any profile the desktop app takes a single-instance lock and exclusively holds $DSH_HOME/profiles/desktop, so the CLI and the desktop app do not write the same data at once.
  3. The CLI's writes are actively refused — both a plain CLI and an npm-installed dsh cannot change it, so what you see is "refused," not "file not found."

Match the command you typed first:

Command you typedResultCorrect move
dsh plugin --profile desktop add <pkg>refuseduse the desktop app's plugin panel
dsh --profile desktop (to launch it)refuseddouble-click the app icon
Editing profiles/desktop in the CLIrefusedleave it to the app

One line to remember: seeing this error means you took the wrong entrance, not that your environment is broken.

What to do: use the desktop plugin panel or create a custom profile

Two legitimate routes: to add a plugin to the desktop app, use the in-app plugin panel; to manage freely from the command line, create a custom profile. Two paths.

Path one: install a plugin for the desktop app (via the in-app panel)

  1. Open the desktop app — launch the DeepSeek Harness desktop edition. Expected: it reaches the main screen.
  2. Go to the plugin panel — find the plugin entry in the app (the plugin page in settings, or the market from the sidebar). Expected: you see the current plugins and the installable list.
  3. Pick and install — browse the market by category, click install and confirm. Expected: the install shows a confirmation dialog, progress and a result, and tells you whether a restart is needed.
  4. Restart the app to apply — restart the desktop app as prompted. Expected: the new plugin takes effect in the UI.

Path two: switch to a custom profile (via the command line)

  1. Pick a template — choose by purpose: dsh-web-app for interactive web, dsh-headless for unattended. Expected: the template decides the default bundles.
  2. Create a profile — run:
    bash
    dsh --profile <name> --from-default-profile <template>
    
    Expected: package.json and the patch file are generated under $DSH_HOME/profiles/<name>; do not use the reserved name desktop for <name>.
  3. Install plugins per profile — run:
    bash
    dsh plugin --profile <name> add <pkg>
    
    Expected: the plugin installs into that profile's node_modules and never touches the desktop profile.
  4. Verify the isolation — start that profile and check the plugin list. Expected: the plugin is visible in this profile and invisible in others, so the isolation is correct.

A possible exception path: the desktop app's own command

The desktop app also offers a "Manage dsh command…" registration entry in its menu. If you really must manage desktop plugins from the command line, the order is: install the command registration → let the desktop app start at least once to initialise the profile → fully quit the app → then use the desktop app's built-in command (source). But a plain CLI and an npm-installed dsh never work — they keep reporting this error.

The CLI/desktop boundary: why DSH plugin keeps the CLI out of the desktop profile

The essence of this boundary is that "executable packages, plugin activation and lock files are not shared" — the DeepSeek Harness desktop app exclusively holding the desktop profile is exactly what stops the CLI and the desktop app from stepping on each other on the same profile (source). Where the two sides' data and update boundaries sit belongs to the desktop-isolation and update-boundary guides (the desktop/CLI update boundary); this page targets only this error — a different command spelling does not get around it, deleting the profile is worse, and the desktop app itself manages its profile just fine.

Before troubleshooting a DSH plugin desktop-profile error

Before installing any DSH plugin for the desktop app, confirm which profile you are about to touch, and you save one doomed attempt. Three notes:

  1. Tell the profile's owner first — desktop belongs to the desktop app, while web, headless and custom profiles belong to you; pause whenever --profile desktop shows up in a command.
  2. Install desktop plugins through the UI — desktop plugins come from the in-app panel, with source, version and confirmation all in place; DSH Plugin Hub is exactly that kind of graphical management entry.
  3. For a free command line, use a custom profile — to avoid the desktop boundary, create your own profile and install plugins per profile.

Notes and limits when using DSH plugin

  1. desktop is a reserved name — the desktop app holds it exclusively and the CLI refuses to boot or dump with it, so a custom profile must use another name.
  2. Only the desktop app's built-in command can manage its plugins — an npm-installed dsh and a plain CLI cannot.
  3. Quit the desktop app before operating — the app holds the lock while running, so plugin operations involving it must wait until it is closed.
  4. The boundary protects both ways — it blocks CLI missteps and also stops the desktop app and the CLI from writing the same data at once.
  5. The wording follows the official version — details such as capitalization may vary (some versions write Electron), but the root cause and the fix do not change.

Rather than retrying rejected profile names on the command line, hand the desktop app's plugins to the DSH Plugin Hub UI: custom install supports three channels — npm packages, GitHub source and a DSH command — so the source is obvious at a glance, and once installed you verify it in the installed list instead of wrestling with the desktop exclusivity boundary.

Custom Install

Sources: dsh CLI README, dsh CLI behavior reference.

FAQ

Why does dsh plugin --profile desktop report profile "desktop" is managed exclusively by the electron application?

In DeepSeek Harness, desktop is a reserved profile name that the Electron desktop app manages exclusively, so neither a plain CLI nor an npm-installed dsh may operate on it directly. This is not a misconfiguration but a deliberate isolation layer the desktop app builds to keep the runtime consistent; the error only means you took the wrong entrance.

What is the correct entry point to install a plugin in the DeepSeek Harness desktop app?

The correct entry point to install a plugin in the DeepSeek Harness desktop app is the in-app plugin panel, not the command line. The desktop app takes a single-instance lock and exclusively holds profiles/desktop before touching any profile, so either install from the in-app plugin entry or initialise the profile with the desktop app's own command, fully quit the app, and only then operate.

Can the command line touch the desktop app's plugins at all?

In DeepSeek Harness the command line is not entirely forbidden from touching the desktop app's plugins, but the entry is restricted. First install the command registration via the desktop app's "Manage dsh command…", let the app start once to initialise the profile, then fully quit it, and only then may the desktop app's built-in command manage its plugins; a plain CLI and an npm-installed dsh are refused outright.

I do not want the desktop profile restriction — is there an alternative?

In DeepSeek Harness you can sidestep the restriction by replacing the desktop profile with a custom one. Run dsh --profile <name> --from-default-profile <template> to create your own profile and install plugins per profile, so you are not bound by the desktop exclusivity and can manage freely from the command line day to day.

When I see this error, can I just delete the desktop profile and start over?

In DeepSeek Harness the desktop profile should not simply be deleted and rebuilt. It belongs to the desktop app, and deleting or hand-editing it can make the app fail to start or even lose data; when you need to clean up, use the app's own path or the one the official docs give, and do not bypass this exclusivity boundary.

Related Terms

desktop profile
The desktop profile is the profile exclusively owned by the DeepSeek Harness desktop app, located at $DSH_HOME/profiles/desktop, carrying the desktop app's own plugins, config and runtime data, which the CLI must not start or modify.— dsh CLI README
profile exclusivity
Profile exclusivity means the Electron app takes a single-instance lock before accessing any profile and exclusively holds profiles/desktop, and the command line must not start or modify that profile.— dsh CLI README
single-instance lock
The single-instance lock is a lock the DeepSeek Harness desktop app acquires at startup to guarantee only one desktop instance operates a profile at a time and to block command-line access to profiles/desktop.— dsh CLI README
reserved profile name
A reserved profile name is a name in DeepSeek Harness that a specific client owns exclusively and that the CLI is not allowed to use as an ordinary profile — currently desktop.— dsh CLI README

Sources