Skip to content

About

DeepSeek Harness (DSH) Android client / mobile client with SSH and Tailscale. DSH 安卓客户端、DSH 手机端、多主机客户端。0.1.5-rc.2 Preview. Contact: catcatchcatast@gmail.com

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

DSH T-remote — Android client

DeepSeek Harness mobile client · native conversations · SSH · Tailscale

简体中文 · Host setup · Build guide · Releases · Remote plugins

Work with DSH tasks on your computers from a native Android interface. DSH T-remote combines multi-host conversations, approvals, questions, encrypted local history, a real SSH terminal, and an embedded userspace Tailscale connection.

This is a community client, not an official DeepSeek product. Models and tasks run on the selected computer; the app uses that host's DSH installation and configured providers.

Version status — read before downloading

Component Version / target Status
Current source DSH 0.1.5-rc.2 Adapted preview source; APK in v0.1.5-rc.2-preview
v0.1.5-rc.2-preview APK 1.10.7-135-publication-oss, code 11007135 OSS Debug, debug signed, preview/testing
Existing v0.1.2-preview APK 1.10.7-121-publication-oss, DSH 0.1.2-rc.1 Older OSS debug-signed prerelease
Android baseline Android 8 / API 26 or later Device behavior still requires validation
Retained runtime compatibility 0.1.2-rc.1 Source paths retained; validate the matching adapter set
Other DSH versions Including stable 0.1.5 Compatibility not claimed

The old Release APK is not the current rc.2 source build. For rc.2, use the matching v0.1.5-rc.2-preview downloads, or build the current source. Published debug builds use com.dsh.t.remote.debug and are intended for testing; production signing material is external.

A phone client for work that stays on the host

  • Start or revisit a task while your project files and model execution stay on the selected computer.
  • Read output, reasoning, and tool summaries; approve a pending action or answer a structured question.
  • Queue a message, steer an active run, or cancel it without switching to a remote Web page.
  • Reopen locally cached content when a host is offline, and use the same host route for a real SSH terminal.

DSH T-remote connection and cache overview

Conceptual architecture diagram, not a screenshot or performance measurement. All labels are generic; no personal host, account, device, or session is shown.

Project advantages

Design choice Benefit
Native Jetpack Compose interface Conversation navigation, controls, and rendering happen on the phone rather than inside a remote WebView.
Independent host identities Connection state, projects, sessions, drafts, caches, and terminals retain their owning host.
SSH with embedded userspace Tailnet Reach a verified host directly or over Tailscale; the embedded node does not take over other apps' traffic with Android VpnService.
Cached content first A local encrypted preview can appear before recent history is filled in and network updates are merged.
Tool details on demand Read normal text and reasoning while leaving full tool parameters/output/diffs unloaded until clicked.
Persisted sequence synchronization Resume confirmed gaps after reconnect; closing the phone client does not itself stop a host task.

Performance depends on device, cache preparation, history size, and host/network conditions. These mechanisms do not establish a 300ms first-readable guarantee.

Feature list

Capabilities below are implemented in the source preview. Host capabilities, permissions, Android background restrictions, and the matching remote adapters determine availability.

Area Capabilities
Hosts and connection Add/edit hosts, connect/disconnect, choose the owning host, confirm SSH fingerprints, and use public-key authentication with protected private keys.
Embedded Tailscale Sign in to a userspace Tailnet node and route app connections through it; a normal direct SSH path is also supported.
Projects and sessions Browse by project or time, search, create, rename, branch, archive, and retain host ownership. Newer project activity and sessions appear first.
Conversation timeline User/assistant text, streaming output, reasoning, Markdown, tool summaries, goals/todos, and sub-agent attribution.
Input and task control Send, queue, steer, edit/remove queued input, cancel a run, and restore local drafts.
Approval and questions Decision context remains automatic; approve/deny, cross-client resolution, stepwise answers, skip, and free-text alternatives.
Models Read the selected host's catalog and retain per-session selection using the negotiated runtime contract.
Tool details Collapsed by default; click to read the selected parameter/result/output/diff page, cache it encrypted, and page further explicitly.
Local cache and offline reads Encrypted history, previews, text bodies, drafts, and bounded detail pages. Uncached offline content reports unavailable rather than a successful empty result.
Background synchronization One global event feed per host for non-archived sessions, confirmed gap recovery, deduplication, and persisted sequence state. Subject to the background setting and OS restrictions.
Notifications Distinguish historical catch-up from live completion/interactions, redact lock-screen content, and open the owning conversation.
SSH terminal Real PTY channels, multiple terminal sessions, stable host/terminal identity.
Attachments and files Keep draft attachments separate from historical attachments; transfer/resume/verification behavior depends on advertised host support.

What loads automatically

Normal chat text and reasoning load normally. Tool cards receive the name, short operation description, status, duration, and error summary. Full arguments, commands, raw output, and code differences load only after a click. Required approval context is an exception: it is provided automatically so the user can decide.

Downloaded detail pages use a bounded encrypted cache (default total 128 MiB) and can be read offline when present. Reopening a conversation keeps tool cards folded and does not automatically download all remaining pages.

What changed for rc.2

  • Runtime negotiation, history epochs, and mobile assistant-stream adaptation.
  • Chunked authenticated encryption and history-epoch fences.
  • Draft persistence moved away from the main-thread blocking path.
  • Coalesced host-summary writes and deferred already-caught-up cold sessions that previously stalled synchronization.

The current snapshot's 36 imported code/test files were checked against the development source, retaining anonymized test fixtures. This public snapshot has not been rebuilt or installed in the current synchronization round; development results do not replace complete public-release acceptance. See SOURCE_SNAPSHOT.md.

Install and connect

Choose a compatible combination

For the existing old APK, use the v0.1.2-preview release and its documented rc.1 host adapters. Verify the SHA-256 sidecar before installation.

For current rc.2 source, build below and install matching Remote Hosts source packages. Do not combine the old APK/download manifests with new source and assume compatibility.

Host requirements and flow

  1. Prepare an Android 8+ phone and a Windows or Linux computer with OpenSSH Server and authenticated DSH.
  2. Keep DSH on the host loopback address. Independently verify the SSH host fingerprint and prepare public-key login.
  3. If using the embedded Tailnet, install Tailscale on the target computers and sign the phone's embedded node into the appropriate network.
  4. Generate an Ed25519 key in the app and install only its public key on the host.
  5. Add the host's SSH route and DSH port, then test a terminal connection to confirm the expected host.
  6. Connect DSH, select that host, and open a project/session. Enable background synchronization only when wanted, and check OS background permissions.

Detailed walkthrough: host setup. Connection/security model: architecture and security.

Build and verify

The repository includes the full Android source, Gradle Wrapper, Go bridge source, and pinned dependencies. You need JDK 17, the SDK/NDK versions in the build guide, and Go as declared in tailscale-bridge/go.mod.

First prepare the pinned legacy bootstrap archive with tools/prepare-plugin-assets.ps1; it remains a separate fallback, not the rc.2 host package set. Then:

Push-Location tailscale-bridge
go test ./...
.\build-aar.ps1
Pop-Location
.\gradlew.bat :app:assembleOssDebug

Gradle preBuild also invokes the bridge build. The explicit sequence above separates bridge failures from app failures. Publication versions are overridable Gradle properties and do not require private development tags. Release signing is supplied externally; never commit signing material or local.properties.

Next publication work and current limits

  • The rc.2 OSS Debug APK and matching remote packages are available in v0.1.5-rc.2-preview.
  • APK build, all native ABI/nested-archive privacy scans, v2 signature, NOTICE and license checks passed for this publication.
  • SHA-256 and source provenance accompany the downloads; coordinated device/endurance acceptance remains separate.

Complete old-cache gap recovery, consistently low first-screen latency, and all network/background/endurance scenarios are not claimed accepted. A cached preview is not the complete history or a synchronization cursor. No new product feature or release date is promised.

Repository guide

Path Responsibility
app/src/main Compose UI, persistence, DSH protocol, synchronization, and terminals.
app/src/test, app/src/sharedTest Synthetic protocol/cache/UI regression tests.
tailscale-bridge Go/tsnet bridge, state storage, and locked Go dependencies.
tools/prepare-plugin-assets.ps1 Verify and prepare the separate legacy fallback archive.
docs Setup, architecture, security, build, and third-party licensing.

Support, privacy, and license

Ordinary support: GitHub Issues. Private diagnostics and security reports: catcatchcatast@gmail.com.

Keep tokens, authorization URLs, private keys, real IPs/hostnames, serial numbers, signing data, and conversation content out of public issues and screenshots. The app keeps cached DSH data and embedded Tailnet state encrypted; independently verify host-key changes.

CONTRIBUTING.md · SECURITY.md · SUPPORT.md · Release requirements

Project-owned code uses Apache-2.0. ConnectBot and other third-party components retain their copyright and license terms: LICENSE, NOTICE, third-party licenses.

Companion project: DSH Remote Hosts. Search keywords: DSH 安卓客户端、DSH 手机端、多主机客户端、DeepSeek Harness Android client、mobile client、SSH、Tailscale.

About

DeepSeek Harness (DSH) Android client / mobile client with SSH and Tailscale. DSH 安卓客户端、DSH 手机端、多主机客户端。0.1.5-rc.2 Preview. Contact: catcatchcatast@gmail.com

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages