Your Mac, your browser, your phone — one DSH

Native macOS and Android clients, Chrome control that reuses your logins, and computer use that never grabs your mouse.

Latest v0.1.68 · 14.0 MB · All platforms & install notes

macOS 14+ · Apple Silicon Android · Kotlin + Compose Chrome 120+ · Manifest V3 Any DSH instance
dsh-macapp / 参考这个站点 https://linear.app/ main

No existing script. So the "random unique app id" pattern is something the agent does ad hoc: modify Info.plist bundle id and install to a temp location. That implies the harness has no built-in way to run more than one instance.

Now screenshot capture. Let me check what CU returns and the Chrome bridge state.

Inspect CU output shape and Chrome status

tools-ptc

The CU screenshot works and the harness normalizes it to a path I can read. The image shows the DSH Mac app with the sidebar. Nice.

CU works. Now I need pixel-perfect files — checking the best capture path.

Check tooling for window screenshot capture

swift is available. Let me write a small Swift helper that lists windows (id, owner pid, name, bounds) using CGWindowListCopyWindowInfo, and prints JSON. Then I can pick the window and capture just that rect.

Build window lister to find window IDs

The window lister works. Note the user's app (pid 67414) window id 49316 at 1280x800, and a test instance pid 91280 (new, launched recently — ids 49784, 49777).

The window lister works. Capturing the Mac app window now.

Error: code run failed (exception): ToolCallError: cannot read "/Users/user/dshapp/dsh-site/static/img/shots/macos-app.png"

"could not create image from window" — Screen Recording permission may be missing for the process running bash, or window id changed. Let me check: the window list still shows the same id.

Check CU attachment resolution

1229x768 JPEG. That's the CU output resolution. Usable but soft for a hero image.

Test screen capture permission

Full-screen capture is blocked (TCC). So `screencapture` is unusable. I'll use CU's screenshots (which work) as the image source, via a Swift window-capture helper.

8 pending · 1 running Scaffold the Hugo site with bilingual content
还要突出开源、安全和审核这个特性,把所有的 GitHub 仓库仓库链接贴上去
Full access DeepSeek-V4.1-Flash
The native DSH macOS app: session list, trajectory, and composer

DSH for macOS · native SwiftUI, built for Apple Silicon

Native on every device you use

macOS 14+ · Apple Silicon Android · Kotlin + Compose Chrome 120+ · Manifest V3 Any DSH instance

Native macOS

A desktop client built for Mac users

Not a wrapped web page. The window, sidebar, menus, and shortcuts all follow macOS conventions, and scrolling feels like the system.

  • Smooth: native SwiftUI rendering and scrolling — long trajectories stay at frame rate.
  • Fast: a native Apple Silicon build that is ready the moment it launches, and steady even on very long sessions.
  • Shortcuts: new session, find, session switching, and a shortcut reference, all where your muscle memory expects them.
  • Mac conventions: it follows your system appearance and accessibility settings, including Reduce Motion and Increase Contrast.

Chrome extension & control

Reuse your Chrome and finish the work on the page

The agent drives the Chrome you already use — the same profile, the same logins, the same open tabs. No second sign-in, and no separate clean browser.

  • Your logins: admin panels, internal tools, and anything behind a login work immediately.
  • Element picker: box a target on the page and hand the agent its selector, text, and structure — far more reliable than describing where it is.
  • Real input: clicks and keystrokes are trusted events; the page cannot tell them from yours.
  • Cut it off: the “Allow agent control” switch in the extension popup severs control instantly.
Picking an element on a web page: highlight box and element summary bubble
The DSH panel in Chrome's side panel

Once the extension connects, the agent gets 27 mcp__chrome__* tools.

Documentation

Computer use

It reads the interface and hits the right control

It understands the current screen through the accessibility tree and screenshots, then acts with background keyboard and mouse input — no window stealing, no touching your pointer.

  • Understands: the accessibility tree supplies structure and text; screenshots fill in the visuals.
  • Aims well: it targets controls rather than hard-coded coordinates, so moving a window does not break it.
  • Stays in the background: input is delivered in the background, so you can keep using the machine.
  • Asks first: irreversible actions — sending, deleting, purchasing, publishing — are stated before they happen.
Operating a macOS app through computer use

With KimiCU connected, these register as mcp__cu__* tools.

Documentation

Put DSH on your Mac today

Native app, Chrome extension, phone client — install and go.