# Frpc-Desktop: a visual FRP client for Windows, macOS and Linux

> Frpc-Desktop wraps the frp command line client in an Electron and Vue desktop app so you can configure tunnels in a form instead of a TOML file. It is aimed at people who run frpc on a workstation and want the configuration, the frp binary download and the logs in one window.

**luckjiawei/frpc-desktop** — Cross-platform desktop client for FRP, visual configuration, easily achieve intranet penetration!

- Repository: https://github.com/luckjiawei/frpc-desktop
- Website: https://jwinks.com/p/frp/
- Stars: 6,898 · Forks: 496
- Language: TypeScript
- License: MIT
- Published: 2026-09-22 · Updated: 2026-09-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/luckjiawei-frpc-desktop

## What Frpc-Desktop actually removes from the frp workflow

frp splits into two binaries. frps runs on the machine with a public address, frpc runs next to the service you want to expose. The frpc side is normally a frpc.toml file plus a downloaded binary, and on a desktop machine that means keeping two things in sync by hand every time you add a tunnel. Frpc-Desktop is a cross-platform desktop client that manages both: the README describes it as a visual configuration client that supports all frp versions, auto-start, and import and export of all configurations. The target user is someone who runs frpc on a laptop or workstation and does not want to hand-edit TOML, not a platform team running frpc in a cluster. The project is written in TypeScript, packaged with Electron, and licensed MIT.

## Electron, Vue and a local database behind the forms

The repository layout shows the usual Electron split: an electron/ directory for the main process, src/ for the Vue 3 renderer, and dist-electron/main/index.js as the packaged entry point. Vite builds the renderer, Tailwind handles styling, and better-sqlite3 plus nedb appear in the dependencies, so proxy definitions and settings live in a local store rather than in a remote service. That architecture explains a real constraint: frpc itself still runs as a child process of the desktop app, so tunnels stop when you quit the app or when the machine sleeps. The README lists TCP, UDP, STCP and XTCP proxy types, batch ports for TCP and UDP, HTTP basic auth and subdomains, and multi-user support with user and meta_token, which maps onto the frpc configuration surface rather than inventing a new one. The README also points to Podux, a browser-based frpc manager from the same author, for people who want a web UI instead.

## Installing Frpc-Desktop and running a first TCP tunnel

The README does not include a build-from-source walkthrough for end users; it links to the docs site at jwinks.com/p/frp/ and to the GitHub releases page, where the packaged installers live. For anyone building from the repository, package.json requires Node 22.12.0 or newer and exposes the standard scripts. The command below installs dependencies and starts the Vite development server, which the debug configuration points at http://127.0.0.1:3344/.

```bash
npm install
npm run dev
```

To produce an installer for your own platform, the package.json scripts wrap electron-builder. The macOS variant is the one the README discusses in its troubleshooting notes, because better-sqlite3 ships separate x64 and arm64 prebuilds that must both survive the universal build.

```bash
npm run build:electron:mac
```

Once the app is open, the flow the README describes is: add a proxy in the manager screen, choose the proxy type (TCP and UDP support batch ports), point it at the local address and port of the service you want to expose, then start it. The README also lists a quick local port selection helper, so you pick the local port from a list instead of typing it. If you already have a working frpc.toml, the import feature is the faster route: the README states the app can import and recognize frpc.toml, and that all configurations can be exported again, which is the practical way to move a tunnel set between machines. Frp binaries are not bundled; the app downloads them, and the README notes mirror site selection for that download, added in v1.2.6.

## Where the desktop model breaks down

The clearest limitation is that this is a frpc client only. There is no frps management, no server side dashboard, and no mention of a headless mode anywhere in the README. If your tunnels must stay up across reboots without a logged-in session, a desktop app is the wrong shape regardless of how good its forms are; a systemd unit or a container running frpc directly is the right tool. Auto-start on boot is listed as done, but the README does not document how that interacts with a locked screen or a user who never logs in. The second limitation is platform friction on macOS: the README has a dedicated section for the app reporting as damaged, with the workaround sudo xattr -cr Frpc-Desktop.app, which is a Gatekeeper and quarantine issue rather than a bug in the app, but it is still a step a new user has to perform. Third, the README documents no rollback path for configuration changes and no version pinning story beyond the frp version selection; if a newer frp release changes behaviour, the README does not say how you revert.

## Frpc-Desktop versus editing frpc.toml or running frpc in Docker

The honest alternative is not another GUI, it is the plain frpc binary plus a text editor. That approach has no download step for the app itself, no Electron runtime, and no local database; the config is a file you can put in git and review in a pull request. The trade-off is that every tunnel change means editing TOML and restarting the process, and you manage frp versions yourself. A second alternative is running frpc as a container, which the search data shows people ask about, and which suits servers and CI rather than laptops. Frpc-Desktop wins specifically where the machine is a desktop, the user is the same person who owns the tunnels, and the value of a form, a port picker and an in-app log viewer outweighs the cost of an Electron app. On a headless server, that calculation flips.

## Maintenance, licence and what the release history shows

The repository is not archived, and the last push was on 2026-09-16, so development is current as of this writing. The release cadence is irregular rather than monthly: v1.2.5 on 2026-03-26, v1.2.6 on 2026-05-21, v1.2.7 on 2026-09-07. The milestone list shows the project has been shipping since v1.0 in November 2023, with the underlying architecture rebuilt in v1.2.0 in March 2025. The licence is MIT, which permits commercial use and modification provided the copyright notice and permission notice are retained; this is a statement about the licence text, not legal advice, and anyone embedding the code in a product should read the LICENSE file themselves. Upgrade cost is low for end users because the app is distributed as installers, but note that the frp binary is a separate download managed inside the app, so an app upgrade and an frp version bump are two different operations.

## Conclusion

Adopt Frpc-Desktop if you run frpc on a personal workstation or a small set of machines and want the frpc.toml, the frp binary and the logs managed from a GUI rather than by hand. Skip it if you deploy frpc inside containers, manage hosts with Ansible or similar tooling, or need a server side dashboard, because this is a client only and the repository documents no headless or Docker path. Before relying on it, verify that the frp version you need can be fetched through the download mirror setting, and on macOS confirm the quarantine workaround with sudo xattr -cr Frpc-Desktop.app after installation.

## FAQ

### Is Frpc-Desktop available for Windows, macOS and Linux?

Yes. The README describes it as a cross-platform desktop client and the repository topics list frp-linux, frp-macos and frp-window. The package.json build scripts include separate macOS, Windows and Linux targets.

### Does Frpc-Desktop include the frp binary, or do I download it separately?

The app downloads frp itself rather than bundling it. The README lists download of frp through mirror sites as a completed feature, and v1.2.6 added download proxy selection.

### Can Frpc-Desktop import my existing frpc.toml file?

Yes. The README states that the app supports importing and recognizing frpc.toml, and that all configurations can be exported as well.

## Sources

- [License: MIT](https://github.com/luckjiawei/frpc-desktop/blob/main/LICENSE)
- [luckjiawei/frpc-desktop on GitHub](https://github.com/luckjiawei/frpc-desktop)
- [Project website](https://jwinks.com/p/frp/)
- [README](https://github.com/luckjiawei/frpc-desktop/blob/main/README.md)
- [Releases](https://github.com/luckjiawei/frpc-desktop/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/luckjiawei-frpc-desktop
