dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
English · 中文
One agent session, continued across your desktop browser, terminal, and phone: the host does the work, the phone lets you jump in and approve at any time.
turnwire-host runs Turnwire Core. SQLite stores metadata, cached events, approvals, and command receipts.AgentRuntime interface to DSH. Model credentials and task execution stay on the host.Honest up front, so you do not discover them halfway through:
turnwire@next installs without repository access. It is not a stable release or a signed native desktop installer; source repositories remain private.The smallest working deployment is one execution host + Turnwire + DSH + model credentials. Connect a browser or terminal to that host; Relay, containers and a native desktop application are not prerequisites.
| Requirement | What to prepare |
|---|---|
| Execution host | A machine that can keep the process running and meets the current package/runtime requirements; a browser client's platform is not the host requirement |
| Software | Node.js (minimum in the generated requirements below) and npm; first startup can guide DSH installation, or explicitly connect an existing instance |
| Network | npm registry access for initial acquisition and access to your configured model service for real tasks; local use needs no public ingress |
| Configuration and data | User-writable configuration, state, data and cache locations, plus the project workspace; model credentials remain on the host |
| Client | A working browser or terminal; the execution host must remain online for remote access |
No universal CPU, memory or disk minimum has been measured. Resource use depends on DSH, project size and concurrency; do not treat an invented hardware number as a guarantee. See quickstart for persistence, ports and actual platform constraints.
All four methods use the same execution host; choose how clients reach it.
| Deployment method | What you need | How to use it |
|---|---|---|
| Local | Execution host and local browser/terminal; no public endpoint | Run npx turnwire@next --open and use the authenticated local connection |
| Temporary tunnel | Execution host and an available tunnel provider | In remote-access settings choose localhost.run, cpolar or Cloudflare and enable temporary access; pair the remote client. Addresses can change, requiring re-pairing |
| Named tunnel | An existing Cloudflare tunnel, fixed public hostname and private tunnel credentials | Configure the tunnel name, hostname and credentials, enable it, then pair clients using the fixed address |
| Self-deployed Relay | Your own server, HTTPS address and Relay connection key | Deploy Relay and PWA, configure the address/key on the host, then pair clients. Recommended for persistent remote access and required for push |
Relay and tunnels do not replace the execution host. npm/npx are installation choices; foreground/background execution and reusing DSH are runtime choices, not additional deployment methods. See quickstart for host setup and detailed steps.
Choose an execution host that meets the current package and runtime requirements, with Node.js 22.13+ and npm. The published npm preview needs no repository access, source build or system-service setup:
npx turnwire@next
# Or install persistently:
npm install -g turnwire@next
turnwire --open
Release channels: pushes to main publish previews to npm next. Only an explicit stable GitHub Release publishes to npm latest; a main push does not promote a stable release. Use turnwire@next for the current preview rather than a pinned preview version. These are Turnwire channels, separate from the DSH runtime's channels.
The source repository remains private; npm installation does not require access. The preview is not a stable release or a signed native desktop installer. This entry point does not imply support for every operating system; package constraints and runtime requirements still apply.
Keep the terminal open: the preview runs in the foreground and installs no system service. Model credentials are prompted for privately and stay on the host. An explicitly configured existing DSH is reused; otherwise the launcher offers installation of npm latest, resolved to an exact version and validated in isolation. Local use needs no Relay; phone access is configured separately.
After stopping your own foreground instance, turnwire start --update-dsh stages and checks a managed DSH update before switching. It does not downgrade, hot-replace an active runtime, or update external DSH. Ordinary startup does not silently update existing installations.
See quickstart, npm installation and release, and DSH compatibility and limits. The runtime compatibility matrix tests configured host environments against baseline/latest/next; it is not a guarantee of compatibility with every future upstream change.
For a host that runs in the background, see service setup in the quickstart. Check its platform requirements and safety boundaries before installing; phone access remains a separate explicit configuration step.
Local use: start the host → open local Web or a terminal. Remote use: start the host → configure remote access → pair and connect. Remote users need not install a native client or complete a task in a local browser first. On a headless host, use --no-open and continue directly to remote access setup.
node --version and npm --version to check prerequisites, then npx turnwire@next --open.--open attempts to open authenticated local Web. If browser launch is unavailable, use --no-open, note the printed address, and run npx turnwire@next connect for local connection details. That output contains credentials: do not publish it.npx turnwire@next status to inspect the running host and runtime. npx turnwire@next doctor --json checks the environment offline; it is not a live health check.If the default Web port is occupied, use npx turnwire@next start --port 9900 --open. Keep the host running. Ctrl-C stops its owned processes, never an external DSH.
Contributors with access to the private repository can follow Developing from source to build, run an offline Demo, or connect a real model through DSH. The Demo needs no model credentials and does not call a model, run a shell, or modify files.
Clients let you view sessions, send tasks and handle approvals. They connect to the same execution host rather than maintaining independent task state; multiple clients can be used together.
| Client | How to use it | Connection requirements |
|---|---|---|
| Web / PWA (desktop or phone browser) | Open the launcher's local Web, or the configured HTTPS Web endpoint remotely; optionally add it to the home screen | Local authentication for local use; pair remote clients using remote access setup |
| Terminal (CLI / TUI, including scripts) | After npm installation, run turnwire --help; without a global installation, use npx turnwire@next --help | A running host and appropriate connection permissions; see CLI reference |
| Native desktop client (optional) | Build and use it according to client documentation | Meet that client's build, platform and signing requirements, then connect to the host |
The execution host runs tasks; tunnels and Relay provide remote connectivity. Neither is a client.
Prerequisites are a running execution host, host-management permission and the configuration for your chosen remote endpoint—not a completed client-selection step. Local-only users can skip this section. After configuring the endpoint, remote users can pair using a phone or another device's browser; no native app installation is required.
The local address 127.0.0.1 refers only to that machine itself, and 127.0.0.1 on your phone is the phone itself — so a remote connection must have a public channel. Three options:
| Approach | How it works |
|---|---|
| Temporary tunnel | Choose localhost.run, cpolar, or Cloudflare and click "Enable temporary access"; you do not need a server of your own. cpolar requires an account Auth Token the first time. The address changes the next time the daemon starts, so you have to pair again |
| Cloudflare named tunnel | Use a tunnel and fixed domain that already exist under your own Cloudflare account, so the address does not change across restarts; you need the tunnel name, the public domain, and the tunnel credentials file |
| Self-hosted Relay | Fill in the server's HTTPS address and the Relay connection key and click "Save and connect"; recommended for long-term use, and also the prerequisite for phone push |
Once the channel is ready, generate a pairing QR code, then open the deployed PWA on your phone and paste the pairing code. The pairing link puts the key in the URL fragment, and the page removes it immediately after receiving it; by default it is kept only for the current browsing session, and only checking "Remember this trusted device" saves it persistently.
Networks in mainland China may be unable to reach the Cloudflare temporary tunnel, or may see latency and instability — it is kept as a quick-try option. For long-term use, prefer a self-hosted Relay verified on the actual networks of your host and phone; a free Quick Tunnel is not the same as the Cloudflare China Network (that is a separately subscribed enterprise service).
turnwire notifications status will tell you plainly).| Document | Contents |
|---|---|
| CLI reference | Every turnwire command and option |
| Developing from source | Building, connecting a real DSH, how to verify, project structure |
| Capability parity across clients | Each capability's coverage in each client and where the code belongs |
| Self-hosted Relay + PWA | Fixed-domain deployment, notes on networks in mainland China |
| One-click Relay deployment | Install a server from the deployment form in one step |
| Developing Turnwire with Turnwire | Development host auto-update and safety points |
| DSH interface notes / Protocol and state boundaries | Runtime contract and RPC boundaries |
| Verification record | Verified and unverified conditions, listed one by one |
| Contributing / Security policy | Development constraints, verification requirements, and vulnerability reporting channels |
The current delivery includes one-time pairing, per-connection ECDH session encryption authenticated by device credentials, staged connection recovery, a persistent approval inbox, Web Push, and a configurable TLS LAN listener. Start with a dedicated data directory and create client pairings from the host. Keep pairing credentials private. The Relay's connection routing is still in memory, while push keys and the delivery queue are persisted.
It does not yet include Codex / Claude adapters, team accounts, native iOS, auto-update, or release signing. "Which things were verified only under specific conditions" is governed by the verification record.
Apache License 2.0 — see LICENSE and NOTICE for details. You may freely use, modify, and distribute it (including commercially), provided you keep the copyright and license notices; this project provides no warranty.