← 返回 Skills 市场
ltpop

Ipcam

作者 ltpop · GitHub ↗ · v1.0.0
cross-platform ⚠ suspicious
834
总下载
0
收藏
4
当前安装
1
版本数
在 OpenClaw 中安装
/install ipcam
功能描述
Control ONVIF Profile S/T IP cameras for PTZ, presets, discovery, and RTSP snapshot/recording with auto-discovery and multi-camera support.
使用说明 (SKILL.md)

IP Camera Skill

Control IP cameras via RTSP (snapshots, recording) and ONVIF (PTZ, presets, discovery).

Tested with TP-Link Tapo/Vigi. Works with Hikvision, Dahua, Reolink, Amcrest, Axis, and other ONVIF Profile S/T cameras.

Setup

bash skills/ipcam/install.sh

Then either discover cameras automatically or configure manually:

# Auto-discover and add
ptz.py discover --add

# Or edit config
nano ~/.config/ipcam/config.json

Config Format

{
  "default": "front-door",
  "cameras": {
    "front-door": {
      "ip": "192.168.1.100",
      "username": "admin",
      "password": "secret",
      "rtsp_port": 554,
      "onvif_port": 2020,
      "rtsp_main_path": "stream1",
      "rtsp_sub_path": "stream2"
    }
  }
}
  • onvif_port: 2020 (TP-Link), 80 (Hikvision/Dahua), 8000, 8080
  • rtsp_main_path / rtsp_sub_path: auto-detect with ptz.py stream-uri --save
  • Env overrides: CAM_IP, CAM_USER, CAM_PASS, CAM_RTSP_PORT, CAM_ONVIF_PORT

Usage

RTSP (camera.sh)

camera.sh snapshot                         # capture frame
camera.sh --cam cam2 snapshot /tmp/cam.jpg # specific camera
camera.sh record 15                        # record 15s clip
camera.sh stream-url sub                   # print sub-stream URL
camera.sh info                             # test connectivity
camera.sh list-cameras                     # list configured cameras

PTZ (ptz.py)

ptz.py status                     # current position
ptz.py move left                  # pan left (speed 0.5, 0.5s)
ptz.py move zoomin 0.8 1.0        # zoom in, speed 0.8, 1s
ptz.py goto 0.5 -0.2 0.0          # absolute pan/tilt/zoom
ptz.py home                       # home position
ptz.py stop                       # stop movement
ptz.py preset list                # list presets
ptz.py preset goto 1              # go to preset 1
ptz.py preset set 2 "Door"        # save current pos as preset

Discovery & Stream URI

ptz.py discover                   # scan network for ONVIF cameras
ptz.py discover --add             # scan and add to config
ptz.py stream-uri                 # query RTSP paths from ONVIF
ptz.py stream-uri --save          # save paths to config

Multi-camera: use --cam \x3Cname> with any command.

Directions

left, right, up, down, zoomin, zoomout, upleft, upright, downleft, downright

Troubleshooting

  • RTSP fails: Check IP/port/firewall. Use ptz.py stream-uri to verify paths. Camera may limit concurrent RTSP connections (try closing other viewers).
  • ONVIF fails: Verify ONVIF port and that ONVIF is enabled in camera web UI. Try common ports: 2020, 80, 8000, 8080.
  • No cameras found: Ensure same subnet, ONVIF enabled, UDP multicast not blocked.
  • PTZ not working: Not all cameras support PTZ. Check ONVIF Profile S support.
  • Auth error: Check username/password. Special characters are URL-encoded automatically.
安全使用建议
This skill appears to be what it claims: ONVIF discovery, PTZ control and RTSP snapshot/recording. Before installing, consider the following: - Credentials: The installer creates ~/.config/ipcam/config.json which contains camera usernames/passwords in plaintext by default. Prefer environment variables (CAM_USER/CAM_PASS) or tighten permissions on the config file (chmod 600) and use a dedicated low-privilege camera account where possible. - Package installs: install.sh creates a local Python venv and runs 'pip install onvif-zeep' and may call apt-get or brew to install ffmpeg. These pull packages from standard registries (PyPI/apt/homebrew). If you require strict provenance, inspect the onvif-zeep package and its dependencies before allowing network installs. - Network behavior: Discovery uses WS-Discovery multicast (239.255.255.250) to scan your LAN and then connects to discovered camera IPs over ONVIF/RTSP. This is expected and limited to your local network; it does not contact external cloud endpoints in the provided code. - Permissions: install.sh may call sudo apt-get on Linux; be aware of privilege escalation during installation. Review the script before running it on a machine you don't control. - Origin: The registry metadata lists no homepage and the source is unknown. While the code is coherent and readable, if you require higher trust, request or inspect a published upstream repo or a maintainer identity. If those tradeoffs are acceptable (local network scanning, storing credentials locally unless you use env overrides, and allowing pip/apt/brew installs), the skill is consistent with its purpose.
功能分析
Type: OpenClaw Skill Name: ipcam Version: 1.0.0 The skill is classified as suspicious due to two primary security risks, though without clear malicious intent. First, the `install.sh` script uses `sudo apt-get install -y ffmpeg`, which requires elevated privileges and represents a privilege escalation vulnerability if the agent executes it without explicit user consent. Second, both `camera.sh` and `ptz.py` read and utilize camera `username` and `password` stored in plaintext within `~/.config/ipcam/config.json`. While this is necessary for the skill's functionality and not an act of exfiltration, storing credentials in plaintext locally is a significant security vulnerability, making them susceptible to compromise if the local system is breached. The `SKILL.md` and other documentation do not contain prompt injection attempts or instructions for malicious behavior, and the shell scripts use proper quoting to mitigate direct shell injection risks.
能力评估
Purpose & Capability
Name/description (ONVIF PTZ + RTSP) match the provided scripts and SKILL.md. Required binaries (ffmpeg, python3, jq) and the python dependency onvif-zeep are appropriate for RTSP capture, ONVIF control and JSON parsing. No unrelated credentials, binaries, or config paths are requested.
Instruction Scope
SKILL.md and the scripts instruct the agent to run the installer, run discovery, query RTSP/ONVIF endpoints, and read/write the local config (~/.config/ipcam/config.json). The runtime actions (multicast WS-Discovery, ONVIF connections, ffmpeg RTSP probes) are within the stated scope and do not attempt to read unrelated system files or send data to third-party endpoints.
Install Mechanism
Installer is a local shell script that creates a venv and runs 'pip install onvif-zeep', and may call brew or apt-get to install ffmpeg. This uses PyPI and package managers (expected for the functionality) and does not download arbitrary archives from unknown servers. The venv is placed in the skill directory and executables are made executable. Network access is used to fetch packages from standard registries (pip/apt/brew).
Credentials
The skill reads camera-related env vars (CAM_IP, CAM_USER, CAM_PASS, CAM_RTSP_PORT, CAM_ONVIF_PORT, IPCAM_CONFIG) which are proportionate to its purpose. However, camera credentials are stored in a local config file (~/.config/ipcam/config.json) in plaintext by default; users should be aware of this sensitive storage and restrict filesystem permissions or prefer env overrides.
Persistence & Privilege
always:false and disable-model-invocation:false (normal). The skill does not request permanent platform-wide privileges or modify other skills. Installer writes a config template and makes included scripts executable—expected behavior for a local CLI skill.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install ipcam
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /ipcam 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial release: ONVIF PTZ control, RTSP capture, camera discovery, multi-camera support
元数据
Slug ipcam
版本 1.0.0
许可证
累计安装 4
当前安装数 4
历史版本数 1
常见问题

Ipcam 是什么?

Control ONVIF Profile S/T IP cameras for PTZ, presets, discovery, and RTSP snapshot/recording with auto-discovery and multi-camera support. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 834 次。

如何安装 Ipcam?

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

Ipcam 是免费的吗?

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

Ipcam 支持哪些平台?

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

谁开发了 Ipcam?

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

💬 留言讨论