Skip to content

[Feature] Android mobile app — dark amber-accent SSH client #87

Description

@thangnm93

Problem Statement

YourSSH ships only as a desktop app (macOS / Windows / Linux). There is no way to manage saved hosts, open SSH sessions, browse files over SFTP, or sync host data from a phone — so users cannot reach their servers while away from a desktop.

Proposed Solution

A dedicated Android phone UI (under app/lib/mobile/) that reuses the existing desktop providers and services (no business-logic duplication) behind a dark, Apple-inspired amber design. Nine screens:

  • Hosts — searchable, tag-grouped host list with reachability/latency badges and an add-host FAB
  • New host — grouped add/edit form (general / auth / advanced), Save & connect
  • Terminal — live SSH session with session tabs, a shortcut/accessory key bar, pinch-zoom and cursor-drag gestures
  • Files — SFTP browser (breadcrumb, typed icons, upload/download)
  • Keys — SSH key management (generate / import, real SHA256 fingerprints)
  • Snippets — saved commands, tap-to-run into the active session
  • Port forwarding — local / remote / dynamic tunnels with start/stop
  • Settings — terminal appearance, biometric lock, Supabase sync
  • Sync / QR pairing — Supabase config + P2P QR transfer

Bottom tab bar: Hosts · Snippets · Keys · Settings. Preserves biometric app-lock, TOFU host-key verification, and P2P import. The amber accent is mobile-only; the desktop theme is untouched.

Alternatives Considered

  • Responsive desktop layout on phones — the desktop multi-pane UI does not fit a phone; rejected.
  • A separate / third-party SSH client — would not share YourSSH's host list, keys, and sync; rejected.

Additional Context

  • Android phone form factor only (no tablet multi-pane in this pass; no RDP / VNC / plugins on mobile).
  • Reuses HostProvider / SessionProvider / SshService / SyncService etc.
  • Design imported from the Claude Design "SSH Client" project; spec & plan under docs/superpowers/.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions