← 返回 Skills 市场
camopel

Private Web App (PWA)

作者 camopel · GitHub ↗ · v1.0.3
cross-platform ⚠ suspicious
667
总下载
0
收藏
1
当前安装
4
版本数
在 OpenClaw 中安装
/install privateapp
功能描述
Personal PWA dashboard server with plugin apps. Use when: (1) installing or setting up PrivateApp, (2) starting/stopping/restarting the service, (3) building...
安全使用建议
This package appears to be a legitimate personal dashboard, but several things should be checked before installing: - Do not blindly run scripts/install.sh that you cloned from the network. Inspect the contents of scripts/install.sh and scripts/install.py in the bundle (they are included) and confirm they do what you expect. Prefer installing from the bundled files rather than re-cloning the remote repo unless you trust that remote source. - Review the systemd/launchd service file the installer creates. Make sure the server is bound to localhost or your intended interface and not exposed publicly unless you intend it and have firewall/Tailscale configured securely. - The default file browser root is the user's home directory (~). If you plan to use the file browser, set file_browser.root to a restrictive folder to avoid exposing sensitive files (e.g., point it at a dedicated directory). The file browser allows reading and downloading files under that root. - The system monitor runs system commands (systemctl, pgrep, lspci, nvidia-smi) and reads sysfs to enumerate services and hardware. That's expected, but it also discloses local hostnames, running services, and other metadata — treat that data as sensitive and limit network exposure. - The app generates and stores VAPID keys and push subscription data in ~/.local/share/privateapp. Ensure file permissions are appropriate and that you understand where keys are kept. - Investigate scripts/commons/openclaw_client.py and any networking code to verify whether the app will call external services or endpoints you don't expect. If you do not want outbound network calls, block them during install or run in an isolated environment (VM/container) first. If anything in the install script or service files looks surprising (creating global system services, changing firewall, registering with third-party services), do not enable the service until you understand and approve those actions.
功能分析
Type: OpenClaw Skill Name: privateapp Version: 1.0.3 The skill bundle is classified as suspicious due to several critical vulnerabilities. The `scripts/server.py` and `scripts/app_loader.py` allow for Remote Code Execution (RCE) by enabling users to add arbitrary directories as app discovery paths via the `/api/settings/paths` API, from which Python backend code (`backend/routes.py`) can be dynamically loaded and executed. Additionally, the `apps/system-monitor/backend/routes.py` exposes unauthenticated API endpoints (`/api/app/sysmon/action/restart`, `/api/app/sysmon/action/shutdown`) that execute `sudo reboot` or `sudo shutdown`, allowing any network-accessible client to control system power. The `scripts/install.sh` also presents a supply chain risk by using `curl -fsSL ... | sh` to install Tailscale, a pattern vulnerable to remote code execution if the source script is compromised. Finally, the custom markdown renderer in `apps/file-browser/frontend/src/App.tsx` uses `dangerouslySetInnerHTML`, posing a potential Cross-Site Scripting (XSS) vulnerability.
能力评估
Purpose & Capability
The code and SKILL.md implement a personal PWA dashboard with a FastAPI backend and React frontends (file browser, system monitor). That matches the skill name/description. However the metadata claims no runtime requirements or install steps while SKILL.md explicitly requires Python 3.9+ and Node 18+ and instructs cloning and running scripts/install.sh. Also the bundled package already contains the same source files, yet the instructions tell the user to git clone a remote repo — this mismatch is unexpected and should be clarified.
Instruction Scope
Runtime instructions tell the user to clone https://github.com/camopel/PrivateApp and run scripts/install.sh which creates a venv, builds frontends, and installs a systemd user service or launchd plist. The backend apps perform broad local actions: the file browser reads and downloads files under a configured root (default: home), and the system monitor inspects systemd units, runs systemctl/pgrep/lspci/nvidia-smi, and reads sysfs. These behaviors are consistent with a dashboard but involve reading potentially sensitive user files and enumerating/running system commands. The instruction to run a remote install script (rather than using bundled code) is particularly risky because it executes code fetched from the network.
Install Mechanism
There is no declared install spec in the registry, yet SKILL.md instructs cloning a GitHub repo and running scripts/install.sh. The skill bundle already contains many source files, so cloning an external repo is redundant and raises the question: which code will actually be run? Running install.sh (an archive-provided shell script) can write files, create services, and execute arbitrary commands. Cloning from GitHub (a well-known host) is less risky than an arbitrary URL, but executing an install script taken from the network without review is high-risk.
Credentials
The registry lists no required environment variables or credentials. The project uses VAPID keys for push (install prompts for an email and generates keys stored in ~/.local/share/privateapp) and may optionally configure Tailscale for external access. No secret env vars are requested by the skill metadata, but the installed service will store keys and holds access to local files and system service state. Ensure you understand where keys and subscription data are stored and who can access the running service.
Persistence & Privilege
The installer creates a persistent user service (systemd user unit or launchd plist) that runs the server on boot for the user. 'always' is not set in the skill metadata. Creating a user-level service and optionally configuring Tailscale/HTTPS are expected for a personal dashboard, but this grants the skill ongoing presence on the machine and network exposure — review the service configuration and network binding (host/port) before enabling.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install privateapp
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /privateapp 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.3
Move screenshots to assets/ for ClawHub rendering
v1.0.2
Screenshots in SKILL.md, updated file browser screenshot
v1.0.1
Add screenshots to README for ClawHub preview
v1.0.0
Initial release: PWA dashboard with System Monitor and File Browser apps, drag-to-reorder home screen, push notifications, cross-platform install (Linux/macOS)
元数据
Slug privateapp
版本 1.0.3
许可证
累计安装 1
当前安装数 1
历史版本数 4
常见问题

Private Web App (PWA) 是什么?

Personal PWA dashboard server with plugin apps. Use when: (1) installing or setting up PrivateApp, (2) starting/stopping/restarting the service, (3) building... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 667 次。

如何安装 Private Web App (PWA)?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install privateapp」即可一键安装,无需额外配置。

Private Web App (PWA) 是免费的吗?

是的,Private Web App (PWA) 完全免费(开源免费),可自由下载、安装和使用。

Private Web App (PWA) 支持哪些平台?

Private Web App (PWA) 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Private Web App (PWA)?

由 camopel(@camopel)开发并维护,当前版本 v1.0.3。

💬 留言讨论