frpc-desktop
AGENTS.md6.9k starsChanged 2 years agoMITView on GitHub
Frpc-Desktop is a cross-platform Tauri 2 desktop application. The webview UI uses Vue 3, TypeScript, Vite, Pinia, Vue Router, Element Plus, and vue-i18n. The Rust backend in src-tauri/ manages frpc processes, SQLite persistence, downloads, system integration, tray, autostart, and IPC. Use Node.js 22.12 or newer, npm, and a stable Rust toolchain. Keep changes focused; do not edit generated output or downloaded dependencies. npm run tauri:dev starts Vite and the Tauri development app. npm run dev starts only the Vite frontend;…
We split this AGENTS.md into the rules it gives an agent
10 rules. About 1 is common, 1 is distinctive, and 8 are very specific to this project.
≈1
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Very specific: line 7
Use Node.js 22.12 or newer, npm, and a stable Rust toolchain.
- Very specific: line 48
Keep frontend code concerned with presentation and state.
- Very specific: line 49
Follow the existing flow: frontend send(ipcRouters.X.y) -> ipc_send in src-tauri/src/commands/mod.rs -> repository/service -> ApiResponse …
- Very specific: line 50
When adding IPC behavior, update all participating pieces: the route in src/core/IpcRouter.ts, the matching ipc_send branch, the Rust …
- Very specific: line 52
Put shared frontend interfaces in types/.
- Very specific: line 55
Use the @/ alias for frontend imports.
- Distinctive: line 56
Do not introduce unrelated refactors, broad formatting churn, or dependency upgrades as part of a focused fix.
- Common: line 60
Treat configuration, tokens, proxy definitions, logs, and local paths as sensitive.
- Very specific: line 62
Keep the bundle identifier priv.liujiawei.frpc.desktop so installs upgrade in place.
- Very specific: line 71
Update both README.md and README.zh_CN.md when changing user-facing setup or behavior.
≈ “Common” is an estimate: at least 1 in 5 of the 36,368 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Repository Guidelines
Project Overview
Frpc-Desktop is a cross-platform Tauri 2 desktop application. The webview UI uses Vue 3, TypeScript, Vite, Pinia, Vue Router, Element Plus, and vue-i18n. The Rust backend in src-tauri/ manages frpc processes, SQLite persistence, downloads, system integration, tray, autostart, and IPC.
Use Node.js 22.12 or newer, npm, and a stable Rust toolchain. Keep changes focused; do not edit generated output or downloaded dependencies.
Repository Layout
src/: Vue webview application.views/: route-level screens.components/: shared UI components.store/: Pinia stores and frontend application state.lang/: English and Simplified Chinese translations.core/IpcRouter.ts: canonical IPC route paths and event channels.utils/ipcUtils.ts: frontend IPC helpers (invoke("ipc_send")and event listeners).
src-tauri/: Tauri Rust backend.src/lib.rs: application startup, data directory, window, tray, and autostart wiring.src/commands/:ipc_senddispatcher that maps route paths to backend behavior.src/db/: SQLite (rusqlite) connection, migration runner, and repositories.migrations/: ordered SQLite migration files.src/downloader/,src/process/,src/config_gen/,src/system/: frpc versions, frpc process, TOML generation, and OS integration.src/models.rs: Rust payload models serialized to the frontend and JSON columns.tauri.conf.json,capabilities/,icons/: Tauri app configuration and bundle assets.
types/: global TypeScript declarations shared by frontend code.public/: static assets and logos.scripts/: npm helper scripts (for examplerun-tauri.mjs).screenshots/: README assets; do not update unless documentation visuals change.dist/,src-tauri/target/, andnode_modules/: generated content; never hand-edit or commit newly generated files unless explicitly requested.
Common Commands
npm ci
npm run tauri:dev
npm run lint
npm run build
cd src-tauri && cargo testnpm run tauri:dev starts Vite and the Tauri development app. npm run dev starts only the Vite frontend; Tauri APIs are unavailable in a plain browser. npm run build runs vue-tsc --noEmit before the Vite production build. npm run tauri:build produces platform installers and is not a routine validation step.
For normal code changes, run lint, build, and the Rust tests. For UI or backend behavior changes, also exercise the affected workflow in the development app and report what was checked.
Architecture and Change Conventions
- Keep frontend code concerned with presentation and state. Filesystem, process, network, database, and OS behavior belong under
src-tauri/. - Follow the existing flow: frontend
send(ipcRouters.X.y)->ipc_sendinsrc-tauri/src/commands/mod.rs-> repository/service ->ApiResponsereturned to the:hookhandler. Backend-pushed updates use Tauri events named bylistenersinsrc/core/IpcRouter.ts. - When adding IPC behavior, update all participating pieces: the route in
src/core/IpcRouter.ts, the matchingipc_sendbranch, the Rust implementation, and frontendon/sendcalls. Remove listeners when component-scoped subscriptions can be recreated. - Return results with
ApiResponse::success/ApiResponse::failand keep the existingbizCodeconventions. - Put shared frontend interfaces in
types/; keep Rust models insrc-tauri/src/models.rsserialized with the same JSON field names (use explicitserde(rename)when names are not plain camelCase, such asproxyURL). - User-facing text must support both
src/lang/en-US.tsandsrc/lang/zh-CN.ts. Preserve existing terminology for frp/frpc concepts. - Preserve the current formatting style: two-space indentation, double quotes, semicolons, trailing commas only where Prettier adds them, and TypeScript/Vue conventions enforced by ESLint and Prettier. Format Rust with
rustfmtconventions. - Use the
@/alias for frontend imports. - Do not introduce unrelated refactors, broad formatting churn, or dependency upgrades as part of a focused fix.
Data and Security
- Treat configuration, tokens, proxy definitions, logs, and local paths as sensitive. Do not log secrets or include real credentials in fixtures, screenshots, or examples.
- Preserve compatibility with existing user data: the app data directory (
<config dir>/Frpc-Desktop), the SQLite database, Electron 1.x frpc binary names, and frpc configuration formats. Schema, path, or filename changes require an explicit migration or backward-compatible fallback. - Keep the bundle identifier
priv.liujiawei.frpc.desktopso installs upgrade in place. - Validate frontend-provided IPC arguments in Rust before using them in paths, shell operations, downloads, or process commands.
Documentation and Commits
The canonical frontend UI development standard is docs/FRONTEND_UI_STANDARDS.md. Read and follow it before creating or changing renderer UI, layout, styling, interaction states, icons, or user-facing copy.
The canonical database design and migration document is docs/DATABASES.md. Read and follow it before changing persistence models, SQLite schema or migrations, repositories, database paths, or data compatibility behavior.
Update both README.md and README.zh_CN.md when changing user-facing setup or behavior. Keep commit subjects short and aligned with the repository's conventional emoji-prefixed history when practical (for example, 🐛 Fix ..., ✨ Add ..., or 🔧 Update ...). Do not commit build artifacts or local application data.
Trending
More talk lately.thin dataabout the whole repository
Who's talking about luckjiawei/frpc-desktop
- jaywcjlove/awesome-mac“Add Frpc-Desktop to Developer Utilities (EN/ZH/JA/KO)”GitHub · Oct 2, 2026
- duobao250/-“内网穿透”GitHub · Feb 2, 2026
- dl666123/dl666123.github.io“[deepseek提示词.txt](https://github.com/user-attachments/files/18794067/deepseek.txt)”GitHub · Oct 23, 2025
- @github-trending.bsky.social“🔥 Hot Repo! 🔥 (100+ new stars) 📦 luckjiawei / frpc-desktop ⭐ 3,230 (+162) 🗒 Vue …”Bluesky · Dec 18, 2024
- openbiox/weekly“【推荐】工具 | Frpc-Desktop: https://github.com/luckjiawei/frpc-desktop”GitHub · Aug 16, 2024
The biggest 5 of 7 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 7
Talked about on GitHub and Bluesky (7 times).
On GitHub · 6
- Oct 2, 2026Add Frpc-Desktop to Developer Utilities (EN/ZH/JA/KO) — jaywcjlove/awesome-mac0 reactions
- Feb 2, 2026内网穿透 — duobao250/-0 reactions
- Oct 23, 2025[deepseek提示词.txt](https://github.com/user-attachments/files/18794067/deepseek.txt) — dl666123/dl666123.github.io0 reactions
- Aug 16, 2024【推荐】工具 | Frpc-Desktop: https://github.com/luckjiawei/frpc-desktop — openbiox/weekly0 reactions
- Aug 12, 2024【开源自荐】Frpc Desktop - FRP跨平台桌面客户端,可视化配置,轻松实现内内网穿透 — ruanyf/weekly0 reactions
1 more on GitHub
- Apr 2, 2024一些好用的软件工具 — liuyang-f/liuyang-f.github.io0 reactions · 1 comment
On Bluesky · 1
- Dec 18, 2024🔥 Hot Repo! 🔥 (100+ new stars) 📦 luckjiawei / frpc-desktop ⭐ 3,230 (+162) 🗒 Vue frp跨平台桌面客户端,可视化配置,轻松实现内网穿透! 支持所有frp版本 — @github-trending.bsky.social0 likes and reposts · 1 reply
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 28,693 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

