mirror of
https://github.com/kunkundi/crossdesk.git
synced 2026-10-20 03:01:52 +08:00
181 lines
12 KiB
Markdown
181 lines
12 KiB
Markdown
<div align="center">
|
|
<img src="apps/desktop/resources/linux/crossdesk_128x128.png" width="80" alt="CrossDesk logo" />
|
|
<h1>CrossDesk</h1>
|
|
<p>A lightweight, cross-platform remote desktop for computers, browsers, and mobile devices, with DeskHub for viewing and controlling multiple desktops.</p>
|
|
<p><a href="https://www.crossdesk.cn/">Website</a> · <a href="https://github.com/kunkundi/crossdesk/releases">Download</a> · <a href="https://web.crossdesk.cn/">Open Web Client</a> · <a href="README.md">中文</a></p>
|
|
</div>
|
|
|
|
<div align="center">
|
|
|
|
[](#download)
|
|
|
|
[](https://github.com/kunkundi/crossdesk/releases)
|
|
[](https://github.com/kunkundi/crossdesk/actions/workflows/build.yml)
|
|
[](LICENSE)
|
|
[](https://github.com/kunkundi/crossdesk/stargazers)
|
|
|
|
[](https://ko-fi.com/kunkundi)
|
|
[](https://github.com/sponsors/kunkundi)
|
|
[](https://afdian.com/a/kunkundi)
|
|
|
|
</div>
|
|
|
|
CrossDesk connects your computers from desktop, browser, and mobile clients, with **DeskHub** for viewing and controlling multiple devices together. It is built on [MiniRTC](https://github.com/kunkundi/minirtc) and supports self-hosting.
|
|
|
|
[Features](#features) · [Download and platforms](#download) · [Quick start](#quick-start) · [Preview](#preview) · [User guide](docs/USER_GUIDE_EN.md) · [Self-hosting](#self-hosting) · [Build and feedback](#development) · [Sponsor](#sponsor)
|
|
|
|
<a id="features"></a>
|
|
|
|
## Features
|
|
|
|
- **Cross-platform access:** control Windows, macOS, and Linux desktops from computers, browsers, or native iOS / Android clients. HarmonyOS PC and mobile clients are in development.
|
|
- **DeskHub:** live multi-device previews, groups, enlarged control, group input, and batch file distribution.
|
|
- **Video and audio:** H.264 / AV1, hardware codecs, remote audio, and in-session quality and frame-rate controls. Capabilities depend on the platform and device.
|
|
- **Everyday controls:** monitor switching, keyboard and mouse input, shortcuts, text clipboard, and file transfer.
|
|
- **Deployment:** direct P2P connections, TURN relay, SRTP media encryption, self-hosting, Windows access before sign-in, and Linux headless operation.
|
|
|
|
<a id="download"></a>
|
|
|
|
## Download and platform support
|
|
|
|
Get a package matching your OS and CPU architecture from the [website](https://www.crossdesk.cn/) or [GitHub Releases](https://github.com/kunkundi/crossdesk/releases), or open the [Web Client](https://web.crossdesk.cn/) directly.
|
|
|
|
| Platform | Support and installation |
|
|
| --- | --- |
|
|
| Windows | **Control + host**. Windows 10+, x64; `.exe` installer, with portable builds also supported |
|
|
| macOS | **Control + host**. macOS 14.0+; x64 / arm64 `.pkg` for Intel / Apple Silicon |
|
|
| Linux | **Control + host**. Ubuntu 20.04+, glibc 2.31 baseline; amd64 / arm64 `.deb` |
|
|
| iOS / iPadOS | **Control only**. iOS 16.0+; sign the unsigned release app yourself, or build and install with Xcode |
|
|
| Android | **Control only**. Android 8.0+, arm64; install the signed APK or build from source |
|
|
| HarmonyOS PC (development) | **Control + host**. API 26, arm64; build and sign a HAP with DevEco; physical-device validation is ongoing |
|
|
| HarmonyOS phones / tablets (development) | **Control only**. API 20+, arm64; build and sign a HAP with DevEco; physical-device validation is ongoing |
|
|
| Web | **Control only**. A WebRTC-capable browser; no client installation on the controlling device |
|
|
|
|
Requirements follow the current source and build configuration. Check the release notes for the downloaded package. Client capabilities are summarized under [Mobile and HarmonyOS](#mobile).
|
|
|
|
- **Linux:** use `crossdesk-linux-…deb` for an existing desktop, or `crossdesk-virtual-desktop-xfce-…deb` for a server needing a separate Xfce desktop. Choose one. See [installation details](docs/USER_GUIDE_EN.md#installation) and [headless operation](docs/HEADLESS_EN.md).
|
|
- **macOS:** grant Screen Recording and Accessibility when prompted on first launch. These enable desktop capture and remote keyboard/mouse input. See [permissions](docs/USER_GUIDE_EN.md#installation).
|
|
- **iOS / HarmonyOS:** follow the [iOS](apps/ios/README.md) or [HarmonyOS](apps/harmony/README.md) (Chinese) signing and build guide. Unsigned artifacts cannot be installed directly.
|
|
|
|
<a id="quick-start"></a>
|
|
|
|
## Quick start
|
|
|
|
1. **Prepare the host.** Install and run CrossDesk on the computer to control. Wait for the server-connected status, then find its ID and password under **Local Desktop**.
|
|
2. **Connect.** On another computer, enter the host's 9-digit ID and click **Connect**. Native mobile clients and the [Web Client](https://web.crossdesk.cn/) can also connect.
|
|
3. **Verify the password.** Enter the host's current connection password and wait for the desktop to appear. On desktop, select **Remember password** to reconnect later from **Recent Connections**.
|
|
|
|
For self-hosting, both ends must use the same service. See the [user guide](docs/USER_GUIDE_EN.md#quick-start) for connection, password, and browser controls, or the [FAQ](docs/FAQ.md#english) for failed connections, blank video, and input problems.
|
|
|
|
<a id="preview"></a>
|
|
|
|
## Preview
|
|
|
|
### Desktop client
|
|
|
|
Local credentials, remote connections, and recent devices share the main window. Open DeskHub from the top-left corner.
|
|
|
|
<p align="center">
|
|
<img src="docs/images/desktop-main-en.png" width="800" alt="CrossDesk main window with local credentials, remote connection controls, and recent devices; demonstration data" />
|
|
</p>
|
|
|
|
<a id="deskhub"></a>
|
|
|
|
### DeskHub
|
|
|
|
View devices by group, click a preview to enlarge it, and take control when needed. Batch actions include connecting, muting, and sending files.
|
|
|
|
<p align="center">
|
|
<img src="docs/images/desktop-deskhub-en.png" width="960" alt="DeskHub with six demonstration remote desktops and its management toolbar" />
|
|
</p>
|
|
|
|
Group control sends input to all connected devices; closing DeskHub disconnects all remote connections. See the [DeskHub user guide](docs/USER_GUIDE_EN.md#deskhub) for exact scopes and controls. Screenshots use demonstration data; more views and sources are in the [user guide](docs/USER_GUIDE_EN.md) and [screenshot notes](docs/images/README.md).
|
|
|
|
<a id="session"></a>
|
|
<a id="settings"></a>
|
|
|
|
## Session controls and settings
|
|
|
|
Remote sessions support monitor switching, video quality and frame-rate controls, audio, text clipboard synchronization, and file transfer. The toolbar also provides network statistics and privacy screen controls. Desktop settings configure codecs, relay, self-hosting, and the DeskHub video budget.
|
|
|
|
- [Session controls](docs/USER_GUIDE_EN.md#session): toolbar, text clipboard, received files, and privacy screens.
|
|
- [Client settings and updates](docs/USER_GUIDE_EN.md#settings): general options, DeskHub video settings, and version checks.
|
|
- [DeskHub technical guide](docs/deskhub.md) (Chinese): preview subscriptions, bandwidth allocation, protocol, and compatibility.
|
|
|
|
<a id="mobile"></a>
|
|
|
|
## Mobile and HarmonyOS
|
|
|
|
<a id="ios"></a>
|
|
|
|
### iOS / iPadOS
|
|
|
|
The native controller supports touch and a virtual mouse, multiple monitors, remote audio, file transfers, and text clipboard. Tap **剪贴板** (Clipboard) in the floating menu to send local text, up to 128 KiB per transfer. iPhone and iPad cannot currently act as remote hosts. The native interface uses Chinese labels.
|
|
|
|
[User guide](docs/USER_GUIDE_EN.md#ios) · [Build and signing](apps/ios/README.md)
|
|
|
|
<a id="android"></a>
|
|
|
|
### Android
|
|
|
|
The native controller supports touch and external keyboards/mice, monitor switching, file transfers, text clipboard, and video settings. H.264 / AV1 use hardware decoding when available, with software fallback when unsupported or when decoding fails. Active sessions use Picture in Picture when switching apps, with a foreground service as a fallback when Picture in Picture is unavailable. Phone-as-host and privacy screens are not currently supported.
|
|
|
|
[User guide](docs/USER_GUIDE_EN.md#android) · [Build from source](apps/android/README.md) (Chinese)
|
|
|
|
<a id="harmonyos"></a>
|
|
|
|
### HarmonyOS (development)
|
|
|
|
The PC client acts as both controller and host, sharing the desktop UI and DeskHub. Phones and tablets use a native ArkUI controller with touch, external input devices, monitors, text clipboard, and file transfers. PC screen capture and input control require system authorization. Physical-device and long-session validation are ongoing.
|
|
|
|
[Usage and limits](docs/USER_GUIDE_EN.md#harmonyos) · [Build and signing](apps/harmony/README.md) · [PC guide](apps/harmony/desktop-port/README.md) · [Mobile features](apps/harmony/MOBILE_PARITY.md) (platform guides in Chinese)
|
|
|
|
<a id="windows-service"></a>
|
|
|
|
## Unattended and headless access
|
|
|
|
- **Windows:** CrossDesk Service supports lock screens, sign-in, and secure desktops. Installed builds can enable access before sign-in with a separate device ID and password; ordinary **Auto Start** runs after a user signs in. See the [Windows unattended guide](docs/USER_GUIDE_EN.md#windows-service) for capabilities, limits, and commands.
|
|
- **Linux:** reuse an existing desktop or create an independent Xvfb / Xfce session. See [Linux headless operation](docs/HEADLESS_EN.md).
|
|
|
|
<a id="self-hosting"></a>
|
|
|
|
## Self-hosting
|
|
|
|
Host your own signaling and TURN services, then enable them under **Settings → General → Self-Hosted Config**. Both the controller and host must use the same service.
|
|
|
|
[Deployment guide](docs/SELF_HOSTING_EN.md) · [Client setup](docs/USER_GUIDE_EN.md#self-hosting) · [Server source](https://github.com/kunkundi/crossdesk-server) · [Web client deployment](https://github.com/kunkundi/crossdesk-web-client)
|
|
|
|
<a id="development"></a>
|
|
|
|
## Build and feedback
|
|
|
|
- [Build from source](docs/BUILD_EN.md): desktop dependencies, build options, and packaging. Use the platform guides above for mobile builds.
|
|
- [GUI architecture](docs/gui-architecture.md) (Chinese): desktop UI, platform implementation, and project structure.
|
|
- [FAQ](docs/FAQ.md#english): connections, blank video, permissions, received files, and build issues.
|
|
- [Report an issue or suggestion](https://github.com/kunkundi/crossdesk/issues): include both operating systems, client versions, connection mode, and reproduction steps.
|
|
|
|
<a id="sponsor"></a>
|
|
|
|
## Support CrossDesk
|
|
|
|
If CrossDesk is useful to you, consider sponsoring its continued development, cross-platform testing, and maintenance through one of the platforms below. Thank you for your support!
|
|
|
|
[Ko-fi](https://ko-fi.com/kunkundi) · [GitHub Sponsors](https://github.com/sponsors/kunkundi) · [AFDIAN](https://afdian.com/a/kunkundi)
|
|
|
|
## Acknowledgements and license
|
|
|
|
Thanks to [HelloGitHub](https://hellogithub.com/), [Ruanyf Weekly](https://github.com/ruanyf/weekly), and the [LinuxDo](https://linux.do) community for featuring CrossDesk and contributing feedback.
|
|
|
|
Copyright (c) 2026 JUNKUN DI.
|
|
|
|
CrossDesk is licensed under [GPL-3.0-only](LICENSE). See the [Privacy Policy](PRIVACY.md#english).
|
|
|
|
### Code signing policy
|
|
|
|
CrossDesk uses SignPath.io to sign official Windows releases built from this repository.
|
|
|
|
**Free code signing provided by [SignPath.io](https://signpath.io/), certificate by [SignPath Foundation](https://signpath.org/).**
|
|
|
|
- **Committers and reviewers:** [kunkundi](https://github.com/kunkundi)
|
|
- **Approvers:** [kunkundi](https://github.com/kunkundi)
|