LinkAndroid: An Electron Desktop Client for ADB, Scrcpy and Python Automation
Link Android and PC easily! 全能手机连接助手!
At a glance
- What is it?
- LinkAndroid is an Electron, Vue 3 and TypeScript desktop app that wraps ADB and scrcpy into a GUI for mirroring, file management, shell access and scheduled Python tasks. It is aimed at people who want scrcpy control without typing scrcpy commands, and it pays for that convenience with a heavier runtime and a download-only install.
- Who is it for?
- Adopt LinkAndroid if you want scrcpy-grade mirroring plus file, app and shell management in one window, and if you are willing to install from the packages at linkandroid.com rather than build from source. Skip it if you only need a single scrcpy session on Linux, where the upstream binary is smaller and has fewer moving parts, or if you need a documented rollback path, because the README does not describe one.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 12 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 24, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What LinkAndroid actually replaces
The project describes itself as an all-in-one Android phone connection assistant, built on Electron with TypeScript and Vue 3. The problem it targets is fragmentation of the desktop Android workflow. Mirroring, screen recording, file transfer, APK installation, log inspection and shell commands normally mean four or five separate tools with different flags and different connection handling. LinkAndroid puts them behind one device list.
The audience is not Android platform engineers. It is developers, QA testers and support staff who already know what ADB is but do not want to keep a terminal open next to a file manager. The README lists device grouping and multi-device connection, which points at the same person: someone testing the same build on two or three handsets and switching between them repeatedly.
The Electron shell, the ADB layer and the HTTP server
The repository layout tells you most of the architecture. There is an electron/ directory for the main process, a page/ directory for the renderer, and src/ for shared TypeScript. The package.json main field points at dist-electron/main/index.js, and the dev script runs vite, which starts the Vite dev server and the Electron window together. The debug block sets VITE_DEV_SERVER_URL to http://127.0.0.1:3344/, so the renderer talks to a local dev server during development.
Screen mirroring is delegated to scrcpy rather than reimplemented. The README credits scrcpy for low-latency mirroring and lists reverse control, an OTG mode that turns the PC into a keyboard and mouse emulator, and a camera mirroring mode with selectable resolution and frame rate. Device discovery covers four paths: USB, QR-code wireless pairing, a six-digit pairing code, and manual IP:port entry, plus mDNS discovery on the local network.
Automation is the part that is not just a scrcpy wrapper. Tasks are written in Python and can be scheduled with Cron expressions, run against multiple devices, and triggered remotely. That remote trigger is an HTTP server on port 53070 with Bearer Token authentication and five documented endpoints: POST /api/devices, POST /api/task/list, POST /api/task/get, POST /api/task/run and POST /api/task/history. The run endpoint accepts an optional deviceId and falls back to the first online device when it is omitted. That fallback is convenient for a single-device setup and a source of surprise in a lab with several phones attached.
Installing LinkAndroid and running a first task
There are two install paths. For normal use, the README says to download the installer for Windows, macOS or Linux from linkandroid.com and run it. For development, the README states the project has only been tested under Node.js 20, so match that version before starting.
Clone the repository and install dependencies:
git clone https://github.com/modstart-lib/linkandroid.git
cd linkandroid
npm installThen start the development mode, which the README says launches the Electron window automatically:
npm run devOn macOS the Makefile wraps this with a process kill and an environment init script, which is worth using if a previous Electron instance is still holding the port:
make devOnce the window is open, connect a device over USB. The README describes USB as plug-and-play, so the device should appear in the device list without further configuration. From there, the mirror button opens the scrcpy view and the ADB Shell panel opens a terminal against the selected device. To build a distributable rather than run from source, the README documents npm run build for a full electron-builder package and npm run build:preview for a Vite build with no packaging.
Where LinkAndroid is the wrong tool
The install path is the first constraint. The README points every platform at the download page and does not document a package-manager route such as Homebrew, winget or a distribution repository. On Linux that matters: scrcpy ships in most distributions, and installing LinkAndroid means fetching a package from a website instead of from the system's own repositories.
The second constraint is the runtime. An Electron application carries a full browser engine. The README does not publish a package size, but the framework choice is stated plainly in the badge, and that choice is what makes the cross-platform GUI possible. If your only need is a mirror window on one machine, upstream scrcpy is a smaller dependency with fewer layers between you and ADB.
The third is the HTTP API. It is a local server with Bearer Token authentication, and the README does not describe TLS, IP allowlisting or a bind-address option. Anyone exposing port 53070 beyond localhost is making a decision the documentation does not cover. The README also does not document a rollback procedure for the packaged application, so plan upgrades around the changelog.md file in the repository root rather than assuming an in-app downgrade path.
LinkAndroid compared with Escrcpy and plain scrcpy
Escrcpy appears in the related search data and is the closest comparison: it is also a GUI front end for scrcpy. The difference visible in this repository is scope. LinkAndroid bundles file management, APK installation and uninstallation, a Cron-scheduled Python task runner, an HTTP API and AI model configuration on top of mirroring. That is a broader surface, and it means more of the application is maintained by this project rather than by the scrcpy authors.
Plain scrcpy is the opposite trade. It does one thing, starts from a command line, and has no task scheduler, no file browser and no REST endpoints. If your workflow already lives in shell scripts, scrcpy plus adb plus a file sync tool covers the same ground with less to install. LinkAndroid earns its place when the same operations need to be handed to someone who will not open a terminal, or when the Cron task runner replaces a set of ad hoc scripts.
Licence and the cost of keeping up
The project is licensed under Apache-2.0, and package.json carries the same identifier. That is a permissive licence, but note that the repository is marked private in package.json, which concerns publishing to npm and does not restrict use of the source under the licence file. Because mirroring is delegated to scrcpy, the licence and update cadence of that upstream project also affect what you get. The README does not state which scrcpy version is bundled.
On maintenance, the last push to the default branch was on 2026-09-18, the same day as the v2.3.0 release, with v2.2.0 on 2026-09-11 and v2.1.0 on 2026-08-03. Releases are frequent, and the repository is not archived. The version in package.json is 2.4.0-beta, which is ahead of the published v2.3.0 release, so the default branch carries unreleased work. The Makefile exposes a version bump target, make update-version VERSION=2.3.0, which is the project's own mechanism for keeping the version string consistent. Upgrading means downloading a new package and re-checking your task scripts against changelog.md, since the README does not describe a migration procedure between versions.
Editorial conclusion
Adopt LinkAndroid if you want scrcpy-grade mirroring plus file, app and shell management in one window, and if you are willing to install from the packages at linkandroid.com rather than build from source. Skip it if you only need a single scrcpy session on Linux, where the upstream binary is smaller and has fewer moving parts, or if you need a documented rollback path, because the README does not describe one. Before committing, confirm that your device exposes wireless debugging for the QR and pairing-code flows, that port 53070 is free on the machine that will run the HTTP API, and that Node.js 20 is available if you intend to build from source.
Frequently asked questions
What is LinkAndroid used for?
It connects an Android phone to a PC over USB or Wi-Fi and provides screen mirroring and reverse control through scrcpy, screen capture and MP4 or GIF recording, file and app management, an ADB Shell terminal, and Python task automation that can run on a Cron schedule.
How do I install LinkAndroid on Windows, macOS or Linux?
The README directs all three platforms to the download page at linkandroid.com for an installer. Building from source requires cloning the repository, running npm install, and then npm run dev, and the README states the project has only been tested under Node.js 20.
Does LinkAndroid expose an API for remote control?
Yes. The README documents a built-in HTTP server on port 53070 with Bearer Token authentication and endpoints for listing devices, listing and fetching tasks, running a task, and reading task history. The run endpoint accepts an optional deviceId and otherwise selects the first online device.
Is LinkAndroid the same as scrcpy?
No. LinkAndroid uses scrcpy for the mirroring layer, as the README states, and adds a graphical device manager, file and app management, an ADB Shell panel, a Python task runner and an HTTP API around it.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/modstart-lib-linkandroid)