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
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-iphone-mode from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.