dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
把已登录的 Claude Code CLI 作为 dsh 的模型提供方:实时模型列表、按会话恢复、审批中转、回退、记忆面板,以及远程 SSH 主机上的工作区。
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.
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.
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.
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.
Plan usage and the CLI's own context breakdown live in dsh's context ring popover. On a phone the panel becomes a sheet.
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.
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:
dsh-oh-my-claude and press Install.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.serviceTo 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 been run under Electron on Linux the way Desktop runs it; a real Mac or Windows install has not been tried yet.
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 listsWorking on the plugin itself? Start at docs/developing.md.
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.
Plugin · Runs on dsh · Tested on dsh · npm tag 1.5.7 · 0.2.0-rc.1 through 0.2.1-rc.3 · 0.2.1-rc.3 · latest, dsh-0.2 1.5.6 · 0.2.0-rc.1 through 0.2.1-rc.3 · 0.2.1-rc.3 · none, superseded by 1.5.7 1.5.5 · 0.2.0-rc.1 through 0.2.1-rc.2 · 0.2.1-rc.2 · none, superseded by 1.5.6 1.5.4 · 0.2.0-rc.1 through 0.2.1-rc.2 · 0.2.1-rc.2 · none, superseded by 1.5.5 1.5.3 · 0.2.0-rc.1 through 0.2.1-alpha.1 · 0.2.1-alpha.1 · none, superseded by 1.5.4 1.5.2 · 0.2.0-rc.1 through 0.2.0-rc.2 · 0.2.0-rc.2 · none, superseded by 1.5.3 1.4.2 · 0.1.5-rc.1 through 0.1.7-rc.2 · 0.1.7-rc.2 · dsh-0.1.7 1.4.1 · 0.1.5-rc.1 through 0.1.7-rc.2 · 0.1.7-rc.2 · none, superseded by 1.4.2 1.4.0 · 0.1.5-rc.1 through 0.1.7-rc.2 · 0.1.7-rc.2 · none, superseded by 1.4.1 1.3.1 · 0.1.5-rc.1 through 0.1.6-alpha.2 · 0.1.6-alpha.2 · dsh-0.1.6 1.2.1 · 0.1.5-rc.1 through 0.1.6-alpha.2 · 0.1.6-alpha.2 · dsh-0.1.5
claude /resume sees the same one. Sessions/claude-. Command bridgeclaude -p never updates itself. Channel, auto-install and history per box sit under the switch in Settings. Claude Code updates/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✻ Crunched for 27s · done 3:21 AM. A turn you stopped reads Interrupted · What should Claude do instead?. Turn statusANTHROPIC_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/compact. Context nudgeclaude --resume, and a name set on the Claude side renames the dsh session. How it worksDefaults you never have to touch, such as secret redaction in tool results and surviving the CLI's own updates, are on How it works.
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 sshEvery key, with its default, is in docs/configuration.md.
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.
claude binary you already have, on this box or on one you add over SSH.~/.claude/.credentials.json, or ANTHROPIC_API_KEY when set) to fetch the model list and your plan usage. That token goes only to api.anthropic.com.~/.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.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.bash for background jobs); Claude Code uses its own, under its own permission mode.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.
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.