DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins

dsh-oh-my-claude

Oh My Claude

Claude Code for dsh (DeepSeek Harness): runs your logged-in Claude Code CLI as a model provider, with live models, session resume, approvals, rewind, memory and remote SSH workspaces

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add dsh-oh-my-claude@1.5.13
READMECompatibilityVersions

Compatibility and provenance

Oh My Claude is published as dsh-oh-my-claude and currently resolves to version 1.5.13. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
npm
Registry updated
11/4/2026

Versions

1.5.13stable
11/4/2026
1.5.12stable
11/2/2026
1.5.11stable
10/29/2026
Show 22 more versionsCollapse versions
1.5.10stable
10/28/2026
1.5.9stable
10/27/2026
1.5.8stable
10/26/2026
1.5.7stable
10/25/2026
1.5.6stable
10/23/2026
1.5.5stable
10/22/2026
1.5.4stable
10/19/2026
1.4.2stable
10/19/2026
1.5.3stable
10/8/2026
1.5.2stable
10/1/2026
1.5.1stable
9/29/2026
1.5.0stable
9/28/2026
1.4.1stable
9/28/2026
1.4.0stable
9/24/2026
1.3.1stable
9/21/2026
1.3.0stable
9/21/2026
1.2.1stable
9/18/2026
1.2.0stable
9/18/2026

Related plugins

Loading related plugins…

Latest
1.5.13
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
5.5 MB
Files
344
Surface
web
License
MIT
Source
npm
GitHub
★ 27
Weekly downloads
1,603
Security scan
✓ v1.5.13 scan passed
Last push
11/4/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
1.1.2stable
9/15/2026
1.1.1stable
9/14/2026
1.1.0stable
9/13/2026
1.0.0stable
9/11/2026

Related plugins

More verified plugins in models-usage.

Experimental Cot Translation Bundle@deepseek-ai/dsh-experimental-cot-translation-bundleExperimental machine translation of expanded reasoningWhale Widgetdsh-whale-widgetDeepSeek balance whale widget in the bottom-right corner of the DSH Web interface: balance/today’s usage/peak-off-peak pricing, customizable bubble click sequence (text/balance/today/peak-off-peak/image/random phrases and parallel weighted selection), per-line styles and fonts, floating quick editinOur Free Model@ebony-vinyl/dsh-our-free-modelOur Free Model — Install this plugin in dsh to use cutting-edge models including DeepSeek V4.1 Flash and Kimi K3, with no login, registration, or API Key required. The desktop version also offers an EAC co-payment channel; starting with 2.0, it supports ten account channels: LobsterAI, Qoder, TRAE, Usage@linxin666/dsh-usageUsage statistics plugin for the dsh web GUI: per-provider balance and coding-plan quota detection plus a live token usage ledger, with a compact price glance card above the sidebar's Settings row

README

View image Oh My Claude

English | 中文

Claude Code, native inside dsh

Drive your logged-in Claude Code CLI as a first-class dsh provider: no API key, no extra services, no runtime dependencies.

Built with AI assistance, and open to more. Contributions from AI coding agents are welcome; start with CONTRIBUTING.md.


Claude Code CLI as an LLM provider for dsh. Every request drives claude -p with stream-json in and out, so it uses whatever login, hooks, CLAUDE.md files, MCP servers and rate limits Claude Code already has. No API key needed. The plugin speaks the CLI's own protocol (the one the Agent SDK wraps) directly, so it has no runtime dependencies.

Tour

dsh's access shield in a Claude session: Plan, Ask, Accept edits, Auto, Don't ask and Bypass rows with dsh's own icons

The shield is dsh's own control. In a Claude session its rows become Claude's six permission modes, each labelled with the dsh access level it sets underneath.

the Oh My Claude panel switching between its Memory, Rewind, Changes and Asides tabs

One ✻ button beside the composer opens the whole plugin: Memory, Instructions, Skills, Rewind, Changes, MCP, Asides, Diagnostics, Tasks and Tune, plus a Restore tab while the session is still blank.

the Changes tab listing the working tree diff with per-file line counts the Asides tab with a side question expanded above the tab strip the MCP tab's add-server form, filled with a server name, command and argument list

dsh's footer stats row ending with the Claude session cost and cached token count

Cost and cached token count, two figures dsh cannot compute, join dsh's footer stats row. The pill turns orange once a session passes the spend line you set. The dollar figures are what the turns would cost at API rates; on a Claude subscription you are not billed them.

dsh's context ring popover with Claude plan windows and the CLI's own context breakdown the panel as a phone sheet above the composer

Plan usage and the CLI's own context breakdown live in dsh's context ring popover. On a phone the panel becomes a sheet.

dsh's Select Workspace Directory dialog with a box dropdown in its footer listing This box and an ssh box

Once an SSH box is saved, dsh's own Add workspace dialog gains a box dropdown: a folder on that box becomes a workspace here, and the session in it runs Claude Code there.

Shots by tools/playwright/tour.ts.

Install

You need the Claude Code CLI on PATH and logged in (claude --version works, claude opens without asking you to sign in), and dsh 0.2 (0.2.0-rc.1 or newer). On dsh 0.1.x, install the npm tag for your line from the Compatibility table below. Nothing else: no API key, no Node build step.

From dsh's Plugins page, in the web app or DSH Desktop:

  1. Open Plugins in the sidebar and press Add plugin.
  2. Enter dsh-oh-my-claude and press Install.
  3. Press Enable now, or turn on its switch later under Installed plugins.

It loads without a restart. Reload the page and "Oh My Claude" appears in the model picker with the models your login can use. Pick one and chat.

From a terminal, then restart dsh however you run it:

dsh plugin --profile web add dsh-oh-my-claude
systemctl --user restart dsh-web.service

To install straight from the repository instead of npm, use github:lcestou/dsh-oh-my-claude as the package name in either route.

The plugin speaks English and Chinese and follows dsh's own language setting (Settings → General → Language), switching as soon as you change it.

If the picker lists it as Oh My Claude (not logged in), run claude auth login in a terminal on the box that runs dsh, or press Log in under Settings → Oh My Claude → Boxes.

DSH Desktop (macOS and Windows) uses the Plugins page steps above. The plugin looks for claude in the usual install folders, since an app started from the Dock does not see your shell's PATH. On Windows it runs Claude as a plain child of dsh, so restarting the app ends a running turn, and the parts that need a Unix shell (Log in from Settings, SSH boxes) are not available. The server half has run under Electron on Linux the way Desktop runs it, and on Windows 11 with Claude Code installed from npm.

When a newer version is on npm, an orange pill with the version number appears in Settings and on the panel's Runtime line; a click copies the update command for a terminal. On the Plugins page, dsh updates a third-party plugin by removing it and adding it again. Details, and the repairs the plugin makes on its own after a dsh upgrade, are under Plugin updates.

Optional, in ~/.dsh/settings.yaml:

agent-default-model:            # make Claude Code the default for new sessions
  provider: claude-code
  model: claude-fable-5-1       # any model id the picker lists
subagent-model-selection:       # let dsh subagents run on Claude Code too
  enabled: true
  allowedModels:
    - provider: claude-code
      model: claude-haiku-5-5   # any model id the picker lists

Working on the plugin itself? Start at docs/developing.md.

Compatibility

dsh ships prereleases only and moves client APIs between them, so every release of the plugin records the dsh line it was written for and the dsh it was driven on. "Runs on" is the range the code carries branches for; "tested on" is the dsh installed on the box when the release was cut. The update pill reads the floor off the registry and never offers a release to a box whose dsh is below it.

PluginRuns on dshTested on dshnpm tag
1.5.130.2.0-rc.1 through 0.2.2-rc.10.2.2-rc.1latest, dsh-0.2
1.5.120.2.0-rc.1 through 0.2.2-alpha.20.2.2-alpha.2none, superseded by 1.5.13
1.5.110.2.0-rc.1 through 0.2.2-alpha.20.2.2-alpha.2none, superseded by 1.5.12
1.5.100.2.0-rc.1 through 0.2.2-alpha.20.2.2-alpha.2none, superseded by 1.5.11
1.5.90.2.0-rc.1 through 0.2.1-rc.40.2.1-rc.4none, superseded by 1.5.10
1.5.80.2.0-rc.1 through 0.2.1-rc.40.2.1-rc.4none, superseded by 1.5.9
1.5.70.2.0-rc.1 through 0.2.1-rc.30.2.1-rc.3none, superseded by 1.5.8
1.5.60.2.0-rc.1 through 0.2.1-rc.30.2.1-rc.3none, superseded by 1.5.7
1.5.50.2.0-rc.1 through 0.2.1-rc.20.2.1-rc.2none, superseded by 1.5.6
1.5.40.2.0-rc.1 through 0.2.1-rc.20.2.1-rc.2none, superseded by 1.5.5
1.5.30.2.0-rc.1 through 0.2.1-alpha.10.2.1-alpha.1none, superseded by 1.5.4
1.5.20.2.0-rc.1 through 0.2.0-rc.20.2.0-rc.2none, superseded by 1.5.3
1.4.20.1.5-rc.1 through 0.1.7-rc.20.1.7-rc.2dsh-0.1.7
1.4.10.1.5-rc.1 through 0.1.7-rc.20.1.7-rc.2none, superseded by 1.4.2
1.4.00.1.5-rc.1 through 0.1.7-rc.20.1.7-rc.2none, superseded by 1.4.1
1.3.10.1.5-rc.1 through 0.1.6-alpha.20.1.6-alpha.2dsh-0.1.6
1.2.10.1.5-rc.1 through 0.1.6-alpha.20.1.6-alpha.2dsh-0.1.5

What you get

  1. Any Claude model your login can use, in dsh's own picker. Hide the ones you don't use with a switch in Settings, or with hiddenModels in the plugin config. Models
  2. Every dsh session resumes its Claude Code session, tool history included, and a terminal claude /resume sees the same one. Sessions
  3. Restart dsh without killing a running Claude turn. Restarts
  4. dsh's access shield sets Claude's six permission modes per session. Permission mode
  5. Claude's permission prompts, questions and plan reviews become dsh dialogs, each option's preview under the question. Approvals
  6. One spark button opens Memory, Rewind, Changes, MCP and seven more tabs, all reachable from the keyboard. The panel
  7. Cost and cached tokens in dsh's footer, with a spend line that turns the pill orange. Cost pill
  8. Plan usage (5-hour, weekly, extra usage) in dsh's context ring, which turns amber near a limit and red at one, with a notice above the composer. Only limits the session's model counts against, graded by Anthropic, so a new model needs no update. Plan usage
  9. Restore or import any past Claude transcript, from dsh or from a terminal, and search inside them for what was said. Session browser
  10. Claude's slash commands and skills show up in dsh's slash menu under their own names, as /claude-<name> where dsh already uses the name. A skill dsh also serves runs on any model, and so does one only Claude Code has: typed in a session on another model, it goes to that model with its instructions (switch it off in Settings). Command bridge

Defaults you never have to touch, such as secret redaction in tool results and surviving the CLI's own updates, are on How it works.

Configure

Settings come in two kinds. The switches under Settings → Oh My Claude and in the panel's Tune tab apply at once and are kept on the box, so every browser sees the same ones. The keys below are install-time: they go as config: on the bundle row in the profile's cordis.patch.yml and take effect when dsh next loads the plugin, which a dsh restart does. dsh's own Plugins page lists the plugin with an on/off switch but has no form for these keys. Three keys people change first:

permissionMode: dsh      # follow the session's shield (default), or pin one of the CLI's six modes
spawn: keeper            # Claude outlives a dsh restart (default); node or dsh for a plain child
sshHost: ""              # "[user@]host" drives a claude on another machine over ssh

Every key, with its default, is in docs/configuration.md.

Remote boxes and accounts

Mount the plugin twice with different configDir values for two logins. List other boxes running dsh and this plugin under Settings → Oh My Claude → Boxes and jump between them. Or give a box a name and user@host and drive the claude there over SSH, with nothing on the far side but the CLI; Tailscale and WireGuard peers appear as hosts to pick from. All of it is on docs/remote.md.

What it touches

  • Runs the claude binary you already have, on this box or on one you add over SSH.
  • Reads Claude Code's login (~/.claude/.credentials.json, on macOS the Claude Code-credentials Keychain entry when that file has no live token, or ANTHROPIC_API_KEY when set) to fetch the model list and your plan usage. That token goes only to api.anthropic.com.
  • Writes its own state under ~/.local/state/dsh-oh-my-claude/; login tokens for SSH boxes are files only you can read. CLAUDE.md, settings.json and MCP servers change only when you edit them from the panel.
  • Listens on a Unix socket for the keeper that holds Claude across a dsh restart. Its HTTP routes live inside dsh's own server, so on DSH Web it opens no TCP port. Under DSH Desktop, whose web server answers 403 to anything but its own window, the bridge that hands dsh's tools to Claude also listens on 127.0.0.1, behind the same key.
  • Calls out to api.anthropic.com (models, plan usage), status.anthropic.com, downloads.claude.ai (the CLI's release pointer), registry.npmjs.org (plugin update check) and api.github.com (the repo's star count). SSH goes only to boxes you add.

Not covered

  • dsh's shell and file tools are not proxied (except bash for background jobs); Claude Code uses its own, under its own permission mode.
  • Claude Code sessions are not deleted when dsh sessions are.

Bugs and feedback

Found a bug, or something that reads wrong? Open an issue at github.com/lcestou/dsh-oh-my-claude/issues with the dsh and Claude Code versions (dsh --version, claude --version) and what you expected to see. Settings → Oh My Claude → Report a problem writes that report for you.

License

MIT.

Claude, Claude Code and the Claude spark mark are trademarks of Anthropic, PBC. This project is an independent dsh plugin that drives the Claude Code CLI you already have; it is not made, endorsed or supported by Anthropic. The spark is drawn here only to say which sessions and controls belong to Claude Code, in the way the CLI itself draws it.

  • Claude gets dsh's subagents, jobs, goals and web search over MCP. dsh tools over MCP
  • Edit CLAUDE.md, settings.json and MCP servers from the panel, on this box or a remote one, and sign in to an MCP server that needs it. Instructions, settings.json editor, MCP
  • Run Claude on another box over SSH, or mount several accounts. Remote boxes and accounts
  • Report a problem with a redacted box report, copied or filed as an issue. Report a problem
  • All the orange is a switch, per group, any colour. Claude look
  • Pick what dsh adds to your prompts, with the size of each block on the label. dsh context
  • A card offers each new Claude Code release for the box a session runs on, and installs it from dsh; a headless claude -p never updates itself. Channel, auto-install and history per box sit under the switch in Settings. Claude Code updates
  • What the last five versions changed, read from the plugin's own changelog, in Settings. Changelog
  • Every skill the CLI can reach, grouped by scope, with add, edit and remove for your own and the project's. What each costs, from the CLI's own /skill-doctor, is a table you can sort, beside what else drives your usage: the MCP servers behind the most requests, and how the work was shaped. Skills
  • A mark on the browser tab and an optional desktop notice when a session you are not looking at finishes, or stops to ask you something. Session notices
  • dsh's own goal and every earlier goal of the session, beside Claude Code's goal and its scheduled tasks. Tasks
  • Edit or remove a message you steered in while Claude works, or all of them as one, until Claude reads it. A file or image on the message stays on it; only the text changes. Nothing goes out while you edit. Send now stops Claude and sends one as the next turn. Steering
  • Claude's working line (spinner, verb, figures) repeats above the composer once you scroll up past it, so reading back through a long turn never hides what Claude is doing. A switch in Settings turns it off. Turn status
  • Select text in a reply to quote it into your message, or to ask Claude about it as a side question that leaves the conversation alone; leave the question blank and Claude explains the passage. A quote in your own message reads like one in Claude's replies, indented with the accent bar. Asides
  • A finished turn keeps a closing line where the working verb was, the way the terminal ends one: ✻ Crunched for 27s · done 3:21 AM. A turn you stopped reads Interrupted · What should Claude do instead?. Turn status
  • On dsh 0.1.7, Claude's tool calls show as dsh's own tool cards, the way every other provider's do, with the text streaming between them. Inline text is a switch away in Settings. Tool rows
  • A new session in a workspace opens on the Claude box, model and effort that workspace last ran, and a workspace with nothing remembered opens on a default model and effort you pick. Remember model per workspace
  • After each reply, Claude's guess at your next prompt shows above the composer: Use writes it into the box, Send sends it as it is, and it folds away while you type something else. On by default, as in the terminal; a switch in Settings turns it off. Suggested next prompt
  • Claude's background shell tasks and subagents are listed on the Tasks tab while they run, each with Stop and, for a shell task, Output, plus Stop all once two or more run. A shell task that ended keeps its row and its Output for the last ten; the subagents a session already ran sit under Earlier subagents, each openable as Markdown. A subagent's row in the chat names each step as the CLI reports it. Tasks
  • If an ANTHROPIC_API_KEY in dsh's environment is what Claude Code bills instead of your login, the session says so in one line at its start. Where things live
  • Each plan window says where it is heading at the current rate: the percent it ends at, or when the cap lands. Plan usage
  • Once the context window is 75% full (adjustable in Settings), a card above the composer says so and offers Compact, which sends Claude's own /compact. Context nudge
  • A Run button on every shell snippet Claude writes puts it in the composer as a prompt; Enter sends it, and it runs through Claude's Bash tool and dsh's approval. Run a snippet
  • A session renamed in dsh keeps that name in claude --resume, and a name set on the Claude side renames the dsh session. How it works
  • Switch a session between Claude and another model, such as DeepSeek or a local one, and back: Claude sees the prompts, replies and tool use the other model had in between. Sessions
  • Up in an empty composer brings back your last prompt, Up again older ones, Down newer ones and back to empty, as in the Claude Code terminal; typing a character ends the walk. A new session recalls from the workspace's latest transcript. Switch it off under Settings ("Prompt recall").
  • Ctrl+R in the composer searches the prompts typed before: this session, the workspace or everywhere on the box (Ctrl+S or Ctrl+Up/Down cycles). Enter sends the row, Tab writes it into the composer, Esc closes. Switch it off under Settings ("History search").
  • Esc Esc in an empty composer while nothing runs opens the Rewind tab on the latest prompt, as the terminal's double Escape opens /rewind; after the rewind that prompt is back in the composer to edit and resend. Switch it off under Settings ("Edit last prompt"). The three composer gestures are listed in dsh's Keyboard shortcuts dialog too.