# dsh-open-in-vscode [中文](README.md) | English A [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (dsh) Web plugin that bridges the browser GUI and VSCode. ## Features ### One-click workspace opening The sidebar workspace row's `...` menu gains an **Open in VSCode** entry: - If VSCode already has the project open, its window is focused; - Otherwise a new window opens the project. ### Chat file navigation File paths the agent prints open in VSCode on click: - Works with inline file mentions in closing responses, produced-file chips, and tool-row open buttons; - When the owning project isn't open yet, its window opens first, then the file is revealed; - Supports `file:line:column` precision jumps; - Falls back to the system default opener whenever VSCode is missing or the open fails — a click never dead-ends. ## Install ```bash dsh plugin --profile web add @alex-dsh-plugin/open-in-vscode ``` Restart `dsh web` to load the plugin. The package ships its own bundle layer, so installing is enough — no manual profile editing. To override defaults (e.g. pin the editor path), append to `~/.dsh/profiles/web/cordis.patch.yml`: ```yaml - id: vscode config: command: /Applications/Visual Studio Code.app/Contents/Resources/app/bin/code ``` ## Editor resolution order 1. `config.command` (explicit override); 2. macOS: `/Applications/Visual Studio Code.app/.../bin/code` (including `~/Applications`); 3. `code` on PATH — shims belonging to other editors (e.g. Cursor) are skipped. If none is found, every gesture falls back to the system default opener. ## Configuration | Key | Default | Description | |---|---|---| | `command` | auto-detected | Absolute path of the VSCode `code` CLI | | `rerouteOpenPath` | `true` | Reroute chat-surface file opens to VSCode | ## Known limitations - The menu injection relies on the current sidebar DOM structure; an upstream redesign silently disables the menu entry (everything else keeps working). - Clickable file references follow the stock vocabulary: files produced in the current turn (exact path or unique basename), plus tool-row open buttons. - Two workspaces with identical titles are ambiguous — no menu entry is injected for them. - Local deployments only (browser and host on the same machine). ## License [MIT](LICENSE) © Alex