Skip to content

iwkse/smartremote-client

SmartRemote Client

SmartRemote is a remote desktop / remote support solution developed by beyondAI (https://smartremote.beyond-ai.me). This repository contains the source code of the SmartRemote client, published in compliance with the terms of the GNU Affero General Public License v3.0 (AGPL-3.0).

SmartRemote is a fork of RustDesk (based on RustDesk 1.4.5) with customisations specific to the beyondAI product — rebranding, installer changes, a guest build variant for unattended support, a "Guest Spot" activation flow, installed-apps reporting, and additional polish around the Windows / Linux / macOS / Android build pipelines.

How it works

Like RustDesk, SmartRemote is composed of three moving parts:

  1. A client (this repository) that runs on the operator's machine and on the target machine. The client can be built in two variants:
    • SmartRemote — the regular (host + controller) build.
    • SmartRemoteGuest — a controller-only build intended for assisted support scenarios (activated via the "Guest Spot" flow).
  2. A rendezvous / relay server (the RustDesk hbbs / hbbr stack) that brokers connections between two clients. SmartRemote runs its own rendezvous infrastructure; the client ships with placeholders that must be replaced before building a usable binary (see Building below).
  3. A SmartRemote Web API (proprietary, hosted at https://smartremote.beyond-ai.me) that handles account management, device binding, version checks, the Guest Spot activation flow, software inventory sync, and other auxiliary features that are not part of upstream RustDesk. The source code of this API is not distributed — it is a proprietary component operated by beyondAI and is not required by the AGPL because it is a separate program that communicates with the client only over HTTP. The client talks to it via REST endpoints under /api/*.

The client source in this repository is self-contained; you can build it and run it against any RustDesk-compatible rendezvous server. The proprietary Web API features (device binding, Guest Spot activation, version updates, installed-apps sync, etc.) will not work unless you point the client at a compatible backend.

Relationship to RustDesk upstream

This repository is published to honour the AGPL-3.0 obligations of the RustDesk codebase that SmartRemote is built from. It is not a drop-in replacement for upstream RustDesk and is not intended to be merged back.

  • libs/hbb_common is vendored into this repository (not a git submodule) so the tree is fully self-contained. The upstream project keeps it as a separate repository.
  • Internal build wrappers, CI helpers and product documentation used by beyondAI internally are intentionally not included; the upstream RustDesk build system (Cargo, build.py, Dockerfile, the Flutter project under flutter/, etc.) is retained and is sufficient to build the client from source.

Building

The build system is the same as upstream RustDesk. Consult the upstream RustDesk build documentation (build.py, Dockerfile, the vcpkg.json manifest, and the Flutter project under flutter/) for the full toolchain requirements.

Placeholders you MUST replace

Before you build a functional binary you have to replace the placeholders in libs/hbb_common/src/config.rs:

pub const RENDEZVOUS_SERVERS: &[&str] = &["<YOUR_RENDEZVOUS_SERVER_HOST_OR_IP>"];
pub const RS_PUB_KEY: &str = "<YOUR_RENDEZVOUS_PUBLIC_KEY_BASE64>";
  • RENDEZVOUS_SERVERS — the hostname or IP address of the rendezvous server (hbbs) that clients should connect to. You can run your own using the RustDesk server stack.
  • RS_PUB_KEY — the base64-encoded public key of your rendezvous server. hbbs generates it on first run (look for id_ed25519.pub in the server working directory).

Building the client without replacing these placeholders will produce a binary that cannot connect to any rendezvous server.

Optional: guest build

To produce the SmartRemoteGuest controller-only variant, set the IS_GUEST environment variable to any value before running the build. The application name, installer paths, and a handful of behaviours (for example is_outgoing_only) switch based on this flag.

License

SmartRemote Client is distributed under the GNU Affero General Public License v3.0. A full copy of the license is available in LICENSE.

SmartRemote is a fork of RustDesk, which is © the RustDesk authors and also licensed under AGPL-3.0. All modifications in this repository are © beyondAI and are released under the same license.

The proprietary SmartRemote Web API (hosted at https://smartremote.beyond-ai.me) is a separate work and is not distributed under AGPL-3.0.

Contact

About

SmartRemote Client

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors