DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

hyzmm /

hyzmm/dsh-notch-pet

Verified

An animated companion that shows live DSH agent progress in the macOS notch.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@6bdeeea5

DSH Notch Pet

DSH Notch Pet

Your DSH agent, living in the MacBook notch.
A native companion that shows the current session, the exact step the agent is on, and how far the turn has come — without opening a window.

macOS 14 or newer Universal binary DSH bundle

DSH Notch Pet tucks a tiny robot into the hardware notch. At a glance it shows the session title and the live step line that DSH shows in the chat. Hover and it unfolds into a compact status card with elapsed turn time, task or goal progress, the session's token usage, the active-agent count, the model, and one-click access back to DSH.

Jump to: Screenshots · Highlights · Install · Controls · Settings · Architecture · Troubleshooting · License

What it looks like

Collapsed notch pet

Collapsed: the title and live step sit beside the notch, with a progress hairline underneath. It never adds height to the strip.

Expanded notch pet

Expanded: up to two title lines, live step, elapsed time, Tasks 3/7, active agents, the session's token usage and cache hit, the goal, the model, and the controls.

Highlights

  • Live, not decorative. The line under the title mirrors the step DSH shows below the assistant message: a changing reasoning preview while the model thinks, Editing file · native/Sources/PetView.swift while a tool runs, and elapsed turn time on the right. It deliberately avoids the finished assistant reply.
  • Progress without invented percentages. It uses todo_write completion when DSH has tasks, and falls back to goal rounds when it does not. With no countable unit, the bar shimmers indeterminately while the agent works, then freezes or disappears when it stops.
  • The session's bill, not a guess. The expanded footer reads the same provider-reported tokenUsage projection as DSH's own Usage pill: cumulative billed input plus output, with the cache-hit share beside it. No estimator and no extra model calls.
  • Gets out of the way. Turn on Only while working and the panel is ordered out entirely whenever no task is running. A pawprint takes its place in the menu bar, and a second switch hides that too. Pinning overrides it.
  • Six accents, honest status colors. Glacier (the default cyan), Aurora, Iris, Sakura, Tangerine, and Mint, plus a custom hue/saturation/brightness picker. Waiting stays amber, errors stay red, and completed turns stay mint.
  • At home on macOS. A nonactivating AppKit/SwiftUI panel with no Dock icon, no focus stealing, Reduce Motion support, and a 60 fps progress animation.
  • Local by design. The host talks to the panel over a private Unix socket. No telemetry, no network calls, no account.

Requirements

  • macOS 14 Sonoma or newer.
  • DSH Desktop, or a DSH host running inside a macOS GUI session.
  • Apple Silicon or Intel — the bundled helper is a universal binary.
  • Xcode Command Line Tools only if you rebuild the helper from source.

A notched MacBook is not required: on other Macs the panel floats at the top center of the main display with rounded top corners.

Install

  1. Open Plugins in DSH and click Add plugin
  2. Paste this plugin name dsh-notch-pet into the dialog:
  3. Confirm. DSH fetches the bundle and installs it for you.

Prefer the terminal? The same bundle installs from a public repository with:

dsh plugin --profile web add dsh-notch-pet

web is the DSH Desktop profile; keep the profile you actually run.

The pet appears at the top of the display a moment later. If it does not, make sure the plugin is enabled in Plugins, disable and re-enable it, or restart DSH.

The package ships a prebuilt ad-hoc-signed universal helper, so nothing is compiled on install. DSH launches the helper itself; there is no app to open. When the plugin is disabled or DSH quits, the helper stops with it.

Controls

Input Result
Hover the panel Expands, and stays open while the pointer is inside.
Click the robot Pins or unpins the panel. A pinned panel ignores hover-out and Only while working.
Gear in the footer Opens settings.
Pin / Open DSH in the footer Pin the panel, or focus DSH (falling back to the web origin).
Right-click the panel Open DSH, pin or unpin, open settings, or quit.
Pawprint in the menu bar Appears while the panel is hidden: Settings, Open DSH, the Only while working switch, and Quit.
Launch Peeks open for about three seconds, then settles back to the collapsed strip.

What the pet shows

Which session?

The panel focuses one session: a running root session when there is one, preferring the most recently active. If only subagents are running, the most recent subagent takes the spotlight. Running subagents count toward the active-agent total.

The title is DSH's own session title, so an auto-generated or user-renamed title wins. The first prompt is a fallback, then the workspace folder name.

The live line

The narrow line mirrors the live step, not the final answer. While the model is thinking it is Thinking · <latest reasoning>, built from reasoning deltas and trimmed to a sentence-aligned preview that keeps changing. While a tool runs it is Editing file · native/Sources/PetView.swift, Running command · Build the native app, and so on. The elapsed time on the right is the current turn's duration.

The collapsed strip has room for two compact lines under the hardware notch, so it shows the session title plus the live step. The new information uses the empty width beside the notch instead of adding height.

Progress

With a todo_write list, the bar tracks Tasks 3/7. Without tasks but with a goal that has rounds, it tracks Goal 2/6 rounds. Without either, it becomes an indeterminate band while the agent is busy. When the agent is idle, the indeterminate band is hidden and any determinate bar is frozen, so the notch does not keep flashing.

Token usage

The expanded footer shows the focused session's cumulative provider-reported tokens — the same tokenUsage projection behind DSH's own Usage pill — as 21.9K tok · 94% hit. The total is billed input (uncached, cache read, and cache write) plus output; hit is the cache-read share of prompt-side input, and a partial hit never rounds up to 100%. Hover the readout for the exact breakdown. If dsh-token-meter is not mounted, the host falls back to folding each assistant/message usage record.

The expanded panel also shows the goal objective, the last error, or a short status hint in the footer. The step text itself does not move; the loading arc and the progress shimmer animate while the agent works.

Privacy

Everything stays on your Mac. The host writes the current state to a per-process Unix socket (0600) under ~/Library/Application Support/DSHNotchPet/, and the panel reads it. The plugin makes no network calls, collects no telemetry, and needs no account.

Limits

  • macOS only; the host half is a no-op on other platforms.
  • One focus session at a time. Subagents contribute to the active count, but the panel does not show a session list.
  • The panel lives on the first notched display. It does not follow the DSH window to another screen.
  • Live state only: no history, no transcript, and no controls for the agent. The pet is a viewer, not a controller.

License

MIT © 2026 WengXiang. See LICENSE.

Built with AppKit, SwiftUI, and a Unix socket.

—/ 5

No ratings yet

Verified DSH bundle

Commit 6bdeeea5fbf2

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout