Skip to content
dsh.fish
Bundle

dsh-vscode-layout

VSCode-like layout for the dsh web GUI: left workspace/files tab rail, editor centered when a file is open, conversation docked to the right while editing.

Source
jay-chen-1102
License
Apache-2.0
Updated
Updated 3 days ago

Readme

# dsh-vscode-layout

VSCode-like layout for the DeepSeek Harness (DSH) web GUI.

## What it does

Re-arranges the web shell's columns into a VSCode-style layout:

- **Left tab rail** (工作区 | 文件) above the left column:
  - **工作区** — the shell sidebar (sessions / workspaces list)
  - **文件** — the aionui file explorer (file tree)
  - Click to switch between them.
- **Center** — the conversation while chatting.
- **When a file is open** in the aionui preview (editor):
  - the editor takes the center column,
  - the conversation docks to the right (~420px).
- Closing all file tabs returns the conversation to the center.

Existing capabilities are preserved: sidebar drag-resize (workspace tab),
file-tree search, multi-tab preview, source/preview toggle, save, SCM
changes panel — they just moved around.

## Requirements

- DSH web GUI (the `web` profile).
- [@linxin666/dsh-client-ui-aionui-panel](https://www.npmjs.com/package/@linxin666/dsh-client-ui-aionui-panel)
  (usually installed via the `@linxin666/dsh-web-ui-all` aggregate bundle).
  The plugin's browser half is a no-op while the aionui columns
  (`[data-aionui-explorer-col]`, `[data-aionui-preview-col]`) are absent.

## Install

```sh
dsh plugin --profile web add link:/absolute/path/to/dsh-vscode-layout
```

or publish the package and:

```sh
dsh plugin --profile web add dsh-vscode-layout
```

Then restart `dsh web`. The profile bundle is read at boot, so a restart is
required (a page refresh alone is not enough).

## How it works

The package is a standard DSH profile bundle:

- `cordis.patch.yml` — inserts the `dsh-vscode-layout` row into the profile tree.
- `lib/index.js` — host half (no-op).
- `lib/client.js` — browser half, registered via `window.__ModuleLoader__.load`.

The browser half overrides the frame grid with an `!important` stylesheet
(winning over the aionui panel's inline `grid-template-columns` writes),
reassigns grid columns, injects the tab rail, and watches:

- the frame's inline grid to mirror the shell sidebar/details widths,
- the preview column's visibility to detect "a file is open".

## Uninstall

```sh
dsh plugin --profile web remove dsh-vscode-layout
```

Then restart `dsh web`.

## License

Apache-2.0

Install

dsh plugin --profile web add github:jay-chen-1102/dsh-vscode-layout#d1972bd5ca37e57a2a0af3b36d1f06323e4ef56e

Profile: web

Source