DeepSeek Harness plugin

gal-view

DSH Web GUI 会话页的 GAL 视窗:Galgame 风格对话视图 + 场景元素可视化编辑器

Jump to install

Source facts

Repository
Ayase34/gal-view
Latest update
Aug 16, 2026
Category
Just for Fun
GitHub stars
121
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/Ayase34/gal-view
Plugin: gal-view
Author: Ayase34

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer4 files
README.en.mdSource · read only
README language

gal-view · GAL View

中文 | English

A galgame-style conversation view + scene-element visual editor for the DSH Web GUI session page (official bundle plugin format).

Adds a GAL View tab between Chat (「对话」) and Trajectory (「轨迹」) in the session tab bar. Open it and the conversation area becomes a 16:9 galgame stage: placeholder portraits, a large dialogue box, typewriter lines, and player input; the built-in Edit Mode lets you drag, resize and re-layer scene elements like a scene editor, with edits applied to game mode in real time.

![image.png](image.png)

Default preset

[gal-scene.json](gal-scene.json) at the repo root is the default preset scene shipped with the plugin (editor export format, with referenced images/fonts embedded): it loads automatically on first launch when no local scene is saved, and Editor Mode's Reset returns to it. To update the preset: edit the scene → export with Ctrl+S → replace the repo-root gal-scene.json with the exported file → npm run build:client and commit.

Installation

The plugin ships in the official bundle format. Install it into the web profile with a single dsh plugin command, then restart web to take effect.

Prerequisites

  • DeepSeek Harness is installed and the dsh command works in your terminal
  • If you run Harness from a source checkout (your everyday command is pnpm dsh): cd into the Harness repo root first and replace dsh with pnpm dsh in the commands below

Install from GitHub (one line)

dsh plugin --profile web add github:Ayase34/gal-view#main

#main means the repository's main branch. To pin a specific version, use a commit hash instead, e.g. #ae73dca.

Finish the install

Restart web afterwards (the bundle layer is composed at startup, so a restart is required for the plugin to load). Open a conversation in the Web GUI — a GAL View tab should appear in the tab bar, between Chat and Trajectory.

> Optional check: run dsh --profile web --dump-config; you should see a # == gal-view layer, which means the plugin layer is part of the composition.

Update to a new version

dsh plugin --profile web update gal-view
# restart web afterwards as well

Uninstall

dsh plugin --profile web remove gal-view
# restart web afterwards as well

> Note: the scene layout, imported images, fonts and reading progress live in your browser (localStorage / IndexedDB). Reinstalling or uninstalling the plugin does not lose them; clearing the browser's site data resets them.

Development

pnpm install            # install esbuild devDependency
npm test                # pure-logic unit tests (node:test, in-process)
npm run build:client    # generate .dsh-plugin/client.js (generated file - do not hand-edit)
npm run check:client    # verify client.js freshness
npm run smoke           # Playwright smoke (requires DSH_CHECKOUT pointing at a dsh checkout)

Structure

.dsh-plugin/index.mjs     Node half (minimal, no host behavior)
.dsh-plugin/client/       client sources: scene model/typewriter/transcript mapping/components/styles
.dsh-plugin/client.js     build artifact (generated by scripts/build-client.mjs)
scripts/build-client.mjs  esbuild builder (--check freshness gate)
tests/                    pure-logic unit tests (node:test)