Bundle
@mattismegevand/dsh-open
A Codex-style workspace Open menu for DeepSeek Harness Web
- Source
- mattismegevand
- License
- MIT
- Updated
- Updated 20 days ago
Readme
# dsh-open
English | [中文](README.zh.md)
> A standalone DeepSeek Harness Web plugin that adds a compact split Open action to each conversation header, listing dock panels, the platform file manager, and your editors.
[](LICENSE)
[](https://github.com/topics/dsh-plugin)

## What it does
- The main icon opens the last selected available target.
- The chevron lists registered dock panels, the platform file manager, and editors selected by `$VISUAL` and `$EDITOR`.
- With one available target, the control collapses to one button.
- Internal tools use `ctx.dock.open(panelId)` and appear only while their panel is registered.
- Native actions are resolved on the Host. The browser sends only a session id and a closed action id; it cannot choose a filesystem path or executable.
- Same-origin checks, bounded request bodies, environment scrubbing, and a launch timeout protect native invocation.
## Install
Requires [`dsh-dock`](https://github.com/mattismegevand/dsh-dock), the [`dsh`](https://www.npmjs.com/package/@deepseek-ai/dsh) CLI (Node.js 22.19+ or 24), and pnpm 10+.
### From npm
```sh
dsh plugin --profile web add @mattismegevand/dsh-open
```
### From GitHub
```sh
dsh plugin --profile web add github:mattismegevand/dsh-open
```
Git installs fetch sources, so pnpm runs the package's `prepare` build on first add. pnpm ≥10 refuses that until you allow it: copy the exact package key pnpm printed into the profile's `pnpm-workspace.yaml` `allowBuilds` entry, then re-run the same `add`.
### Develop locally
```sh
git clone https://github.com/mattismegevand/dsh-open.git
cd dsh-open
corepack pnpm install
corepack pnpm check:all
dsh plugin --profile web add .
```
The shipped patch inserts the Host row automatically.
## Configuration
```yaml
- id: open
name: '@mattismegevand/dsh-open'
config:
preferredAction: visual
terminalPanelId: terminal
maxRequestBytes: 8192
launchTimeoutMs: 10000
```
The configured action is the initial preference for a fresh browser profile. Menu selection updates a browser-local preference. `$VISUAL` and `$EDITOR` are resolved on `PATH` and deduplicated. The file-manager action uses Finder on macOS, File Explorer on Windows, and the system opener on Linux.
## Related plugins
- [dsh-dock](https://github.com/mattismegevand/dsh-dock) — the docking system that registers the internal panel targets.
- [dsh-terminal](https://github.com/mattismegevand/dsh-terminal) — VS Code-style Ghostty terminal panel.
- [dsh-git](https://github.com/mattismegevand/dsh-git) — session-scoped working-tree Review panel.
## Model experience
### Workspace Open UI
#### What the model sees
Nothing. The plugin launches UI panels or native applications from a human-operated browser control and registers no prompt, tool schema, or model-visible message.
#### Token effect
Zero tokens are added to model requests or responses.
#### KV Cache effect
None. Selecting or launching an Open target does not alter the model input prefix.
## Known limitations
- Native capability discovery runs when the client store loads and is not refreshed while that store remains mounted.
- Native launch failures are surfaced as concise errors; platform-specific recovery actions such as revealing Finder permission settings are not implemented.
- Internal targets depend on live dock registrations, and native targets remain local-host only.
## License
MIT
Install
dsh plugin --profile web add github:mattismegevand/dsh-open#2d529d86eff31480f0132fa519b57cfa786e0596
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install mattismegevand-dsh-open from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.