How blank-not-black/dsh-remote works
DSH Remote lets a user pair a phone, browser, or desktop client with a DSH host, then continue session work remotely: inspect conversations, respond to approvals and questions, manage files, and inspect host state. The plugin provides the DSH entry point and manages a gateway; the gateway authenticates and proxies HTTP/realtime traffic. An optional relay supports remote connectivity, while Android adds native transport, polling, downloads, and notifications. The README documents capabilities whose implementation was not sampled; those are represented at their existing client or plugin paths without asserting unsourced call chains.
Main entry points: MainActivity.java Android shell · index.mjs Plugin entry · app.js Web and desktop UI · gateway.js Gateway runtime
Components 25
DSH Plugin
- Plugin entry
packages/plugin/index.mjs - Doctor guidance
packages/plugin/doctor-skill.mjs - Plugin center
packages/plugin/plugin-center.mjs - Session features
packages/plugin
Gateway and Sessions
- Gateway runtime
gateway.js - Gateway stats
gateway-stats.cjs
Optional Relay
- Relay client
relay/client.cjs - Relay broker
relay/broker.cjs - Grant registry
relay/registry.cjs - Sponsor portal
relay/sponsor/portal.js
Remote Clients
- Web and desktop UI
public/app.js - Session views
public/session-deck.js - File previews
public/image-preview.js - Guides and workflow
public/workflow.js - Android shell
android/app/src/main/java/com/dshremote/app/MainActivity.java - Background polling
android/app/src/main/java/com/dshremote/app/RemotePollService.java - Attention notifications
android/app/src/main/java/com/dshremote/app/PendingNotifications.java - Usage reminders
android/app/src/main/java/com/dshremote/app/PeakReminderService.java - Encrypted transport
android/app/src/main/java/com/dshremote/app/E2eeBridge.java - Encrypted downloads
android/app/src/main/java/com/dshremote/app/EncryptedDownloads.java - LAN discovery
android/app/src/main/java/com/dshremote/app/LanDiscovery.java
Feedback Service
- Feedback collector
ops/feedback-collector/server.py - Public poll tallies
ops/feedback-collector/public_polls.py
Other components
- Remote user
- DSH host
Connections 25
- Remote user → Web and desktop UI: uses
README.md - Remote user → Android shell: uses
README.md - Web and desktop UI → Gateway runtime: connects to
README.md - Android shell → Gateway runtime: connects to
README.md - DSH host → Plugin entry: hosts
README.md - Plugin entry → Gateway runtime: manages
README.md - Plugin entry → Doctor guidance: includes
packages/plugin/index.mjs - Plugin entry → Plugin center: includes
packages/plugin/index.mjs - Plugin entry → Session features: provides
packages/plugin/index.mjs - Gateway runtime → Gateway stats: uses
gateway.js - Web and desktop UI → Session views: renders
README.md - Web and desktop UI → File previews: renders
README.md - Web and desktop UI → Guides and workflow: includes
README.md - Android shell → Background polling: starts
android/app/src/main/java/com/dshremote/app/MainActivity.java - Android shell → Attention notifications: uses
android/app/src/main/java/com/dshremote/app/MainActivity.java - Android shell → Usage reminders: uses
android/app/src/main/java/com/dshremote/app/MainActivity.java - Android shell → Encrypted transport: exposes
android/app/src/main/java/com/dshremote/app/MainActivity.java - Android shell → Encrypted downloads: routes downloads
android/app/src/main/java/com/dshremote/app/MainActivity.java - Android shell → LAN discovery: exposes
android/app/src/main/java/com/dshremote/app/MainActivity.java - Relay client → Relay broker: tunnels to
- Relay broker → Grant registry: checks grants
relay/broker.cjs - Relay broker → Gateway runtime: proxies traffic
relay/broker.cjs - Sponsor portal → Grant registry: manages access
- Feedback collector → Public poll tallies: uses tallies
ops/feedback-collector/server.py - Remote user → Feedback collector: sends feedback