Skip to content
dsh.fish
Bundle

dsh-iphone-mode

Mobile/touch optimizations for the DSH Web GUI: iOS input-zoom fix, safe-area insets, touch targets, and viewport clamps for stock dialogs on narrow screens.

Source
johndfowler
License
MIT
Updated
Updated 6 days ago

Readme

# dsh-iphone-mode

Mobile/touch optimizations for the DeepSeek Harness (DSH) Web GUI — makes the harness genuinely usable from a phone browser (e.g. over Tailscale).

## What it fixes

| Problem on iPhone | Fix |
|---|---|
| iOS Safari **zooms into any input under 16px** on focus (composer, search boxes) and the layout never recovers | `font-size: 16px` on all inputs under `@media (pointer: coarse)` — desktop untouched |
| Content hidden under the **notch / home indicator** | `viewport-fit=cover` + `env(safe-area-inset-*)` body padding (portrait bottom, landscape sides) |
| Tiny touch targets | gentle 36px minimums on buttons/options under coarse pointers |
| Stock GUI **dialogs render off-viewport** at desktop width on a phone (Commands palette "doesn't work" — it opens, you just can't see it; menus clip both edges) | viewport clamp: every `[class*="_dialog_"]` capped to `calc(100vw - 24px)` on narrow screens, with 16px inputs inside them too |

Pure client-side plugin: injects one `<style>` tag and ensures the viewport meta allows cover fitting. No server-side work.

## Install

```sh
cd /path/to/your-dsh-profile   # e.g. ~/.dsh/profiles/web
pnpm add github:johndfowler/dsh-iphone-mode
# append "dsh-iphone-mode" to dsh.profile.bundles in package.json
# restart `dsh web`
```

## Pairs with (the mobile stack)

- [dsh-voice](https://github.com/johndfowler/dsh-voice) — voice dictation mic (shared composer-tools toolbar)
- [dsh-photos](https://github.com/johndfowler/dsh-photos) — photo upload via the stock paste pipeline
- [dsh-serena-lens](https://github.com/johndfowler/dsh-serena-lens) — Serena dashboard lens panel
- [dsh-model-search](https://github.com/johndfowler/dsh-model-search) — searchable model picker with viewport-clamped sheets
- [dsh-draft-shield](https://github.com/johndfowler/dsh-draft-shield) — blocks page translation from wiping composer drafts

## License

MIT

Install

dsh plugin --profile web add github:johndfowler/dsh-iphone-mode

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source