DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Favicon Status — DSH Plugin for DeepSeek Harness
← Plugins

dsh-favicon-status

Favicon Status

Browser tab status indicator: paints the document favicon from the ui-session status snapshot (blue running / amber waiting / green done, spinning while work executes) so a backgrounded dsh web tab still shows task state

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add dsh-favicon-status@0.1.0-rc.8
READMECompatibilityVersions

Compatibility and provenance

Favicon Status is published as dsh-favicon-status and currently resolves to version 0.1.0-rc.8. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
npm
Registry updated
9/18/2026

Versions

0.1.0-rc.8prerelease
9/18/2026
Show 3 more versionsCollapse versions
0.1.0-rc.7prerelease
9/18/2026
0.1.0-rc.6prerelease
9/10/2026
0.1.0-rc.5prerelease
8/24/2026

Related plugins

Loading related plugins…

Latest
0.1.0-rc.8
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
72.5 kB
Files
12
Surface
web
License
MIT
Source
npm
GitHub
★ 0
Weekly downloads
0
Last push
9/18/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in

Related plugins

More verified plugins in ui-customization.

Web App@deepseek-ai/dsh-web-appThe dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profileExperimental Web profile layer for Agent Teams Remote and UI pluginsRemote Web Ui@linxin666/dsh-remote-web-uiScan-to-pair remote access for the dsh web GUI that shares one official interface: a QR beside the settings button pairs phones and PCs into the same Web GUI (a portrait-touch adaptation layer for phones, full desktop on PCs) through one-time tokens and rClient Ui Task Board@linxin666/dsh-client-ui-task-boardHost-authoritative task board for the DSH Web GUI with real session execution, Host cron scheduling, and optional cross-platform idle-sleep protection; mounted without DSH source changes.

README

dsh-favicon-status

English | 中文

Summary

The favicon of a backgrounded dsh web tab reports what the workspace is doing: a segmented ring drawn in the GUI's state colors — blue for sessions executing, amber for sessions waiting on the user, green for sessions that finished in the background. The ring spins while any session runs and splits proportionally when states mix; the document's own icon stays in the middle. Every state comes from the kernel's ui-session status snapshot. Install it as a dsh web profile plugin: there is no host half and no model-facing surface.

Install

dsh plugin --profile web add dsh-favicon-status

Restart dsh web afterwards: adding the plugin changes the profile's bundle roster, which the running server only picks up on restart. The plugin is browser-only; the node half exists solely so the plugin appears in the Loader tree. Requires the DSH web client at 0.1.6-alpha.2 or later — the client half subscribes to the kernel's per-session status snapshot (ctx.uiSession.sessionStatus), which carries running, the effective pendingInteraction, and the completionUnread reminder in one map. Earlier kernels split those facts across the sessions list and a separate pending-interaction snapshot (0.1.5-alpha), or shipped them under the retired @deepseek-ai/dsh-client-runtime package, and need an earlier plugin release.

Behavior

Running (spinning)Waiting on the userFinished
runningpendingdone

The favicon becomes a segmented ring whose wedges are proportional to the session counts per state, using the GUI's canonical state semantics (the sidebar StateDot palette): blue for sessions actively executing, amber for sessions waiting on the user (approval / plan review / question), green for sessions that finished. The document's original favicon graphic (the whale) is drawn inside the ring hole once it loads, so the tab keeps its identity while indicating. While any session runs, the ring rotates clockwise around a fixed trailing gap of at least 30°, so even a single-color ring shows an anchor that makes the spin visible at 16 px in a backgrounded tab; when nothing runs the ring is a complete circle — the gap exists to show rotation, and a static done or waiting ring needs no anchor. With mixed states the ring splits proportionally — a running session beside one waiting on the user reads as part blue, part amber — and the wedge order is fixed (running, pending, done) so the mix is legible rather than shuffled. Green never mixes into a ring that has a running wedge: a background completion reminder is dropped from the counts while any session executes, so a running task cannot read as partly finished. When no session is in any of the three states, the original favicon is restored.

State precedence per session matches the sidebar: a pending interaction outranks live activity, which outranks the done states. Green covers the kernel's "finished in the background" reminder (completionUnread: a session that stopped while the user was looking elsewhere in the UI) and any session whose running-to-idle transition the monitor just observed: even when the kernel never armed the reminder because the user was watching, the tab shows green for the configured doneVisibleMs window (default 30 s) before falling back. Both kinds of green are dropped while any session runs, so live activity owns the tab (blue, spinning) and a running task never paints partly green; the window also does not survive the tab becoming visible, which clears it immediately. Subagent sessions reach the status snapshot with their own running bit, so delegated work colors the tab too.

The animation is time-based (Date.now() modulo the spin period): each timer tick repaints at the rotation the wall clock says, so a throttled background tab still advances the spin on every allowed tick. The timer runs while at least one session runs or a done window is still open, and stops when neither remains; fiber teardown restores the original favicon (HMR safety). The ring is painted on a 64 px canvas, so the browser's downscale to the 16 px tab bar keeps the gap and the color boundaries crisp.

Colors, the spin period, and the done-visibility window are validated Config fields, overridable from the deployment's cordis.yml.

Development

This is an independent community plugin: it is developed and published from this repository and is not part of the official deepseek-harness monorepo. Its UI language follows the dsh web GUI's canonical state semantics (the sidebar StateDot palette), which is a deliberate reference to the official look — not official code. lib/ contains the build artifacts and the browser bundle; pnpm install && pnpm test runs the unit suite locally.

Model Experience

None, as this package paints a browser chrome element from the ui-session status snapshot and touches no prompt, message, schema, stream, or tool result.

KV Cache effect

None; the package never assembles or sends provider requests.

Known Limitations and Deferred Work

  • Background-tab throttling coarsens the spin. Browsers throttle setInterval in hidden tabs (Chrome to 1 Hz, with intensive throttling to once per minute after about five minutes of chained timers), so the rotation advances in steps rather than smoothly while the tab is backgrounded; the time-based phase keeps the direction and pace correct. Browsers do not animate SVG favicons, which is why the animation is JS-driven at all.
  • The indicator reflects the per-session status snapshot, not per-job detail. It aggregates the kernel's running / pendingInteraction / completionUnread facts published by ctx.uiSession.sessionStatus, plus a monitor-local transition window for just-finished sessions; background job rows and workflow phases are not surfaced individually.
  • The done window is a tab-only reminder. doneVisibleMs shows green after a running-to-idle transition even when the kernel never armed its background-completion reminder (the user was watching); the sidebar itself keeps its own semantics. The window lives only while the tab stays backgrounded: becoming visible clears it, and any running session takes the tab over (blue, spinning) until it quiets.
  • One favicon link. The monitor swaps the document's first rel~="icon" link (creating one when absent) and restores it on dispose; multi-icon manifests and apple-touch-icon are not enumerated.