dsh-elden
Elden Ring style event overlays for the DeepSeek Harness web UI
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 30, 2026
- Updated
- Aug 30, 2026
Introduction
dsh-elden
Elden Ring style overlays for the DeepSeek Harness web UI. When something happens in a session, a dark bar crosses the screen and a line fades in over it — like the "YOU DIED" screen, but for your agent.
| Trigger | Text | Style |
|---|---|---|
| Context window crosses the fill threshold (90 %) | CONTEXT WINDOW FULL | red |
| History was compacted away | MEMORY FADED | red |
| A turn finishes | TASK FELLED | gold |
| A long turn finishes | GREAT TASK FELLED | gold |
| An approval or question is waiting | A CHOICE AWAITS | gold |
New Session / the + is clicked | LOST SESSION DISCOVERED | gold |
Only one overlay is shown at a time and each trigger has a cooldown, so it
stays a nice surprise instead of getting annoying. TASK FELLED fires the
most; there is a rare-only mode if it gets too much.
Nothing from the games ships in this package — the look is rebuilt in CSS with a free font, and there is no audio.
Install
dsh plugin --profile web add dsh-elden
Or from a local clone:
npm install
npm run build
dsh plugin --profile web add /absolute/path/to/dsh-elden
Then start dsh web and it is active. dsh web --dump-config should show an
elden entry if the install worked.
Trying it out
Overlays are rare by design, so the plugin adds a console helper. Open the browser devtools on the dsh web UI and run:
__dshElden.previewAll() // plays all overlays back to back
__dshElden.preview('contextFull') // shows a single one
__dshElden.ids() // lists all ids
__dshElden.level('rare-only') // 'all' | 'rare-only' | 'off'
__dshElden.options({ contextThreshold: 0.01, longTurnMs: 0 }) // make rare triggers easy to hit
options() and level() reset on reload; nothing is persisted.
Development
npm run build # rebuild lib/
pkill -f 'dsh web' # the host reads the bundle at boot
dsh web
…then reload the page — an open tab keeps the old bundle until you do.
npm test
runs the trigger tests against a hand-fed session list (no server or API key needed).
How it works
The plugin is client-only: everything it needs is already in the browser's
session list. It watches the list for edges — running turning false is a
finished turn, the selection landing on a blank session is the New Session
click, a sharp drop in prompt size is a compaction — and shows the matching
overlay in the shell.overlay slot.
The visuals follow the game per screen type: YOU DIED-style screens are dark
red with no glow, the gold ones carry a faint scaled-up ghost copy of the same
line behind the text (that is why the first and last letters look doubled).
Both sit on a narrow dark bar instead of dimming the whole screen.
Font
The text is set in Cormorant Garamond (the closest free match to the game's
Agmena Pro), embedded in the bundle as a small uppercase-only subset. It is
licensed under the SIL Open Font License 1.1 — assets/OFL.txt has to stay in
any redistribution.
Known limitations
- A failed turn still shows
TASK FELLED; the session list has no failure flag. - Thresholds and texts are not configurable through settings yet, only via
__dshElden.options().