Token导航 LogoToken导航

Agent Skill · 研究检索

recamera(recamera 音频)

recamera 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

recamera 是研究检索类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为接触敏感数据;许可证为 MIT-0,第三方扫描有提醒项,按安装量在研究检索类的 73,675 个 Skill 里排第 14,914。

总安装 8,208周安装 342GitHub Stars 公开资料未说明下载 2,736核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.0.0

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:recamera(recamera 音频)
来源仓库:https://github.com/mjq2020/recamera
安装命令:
openclaw skills install recamera
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install recamera

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

提供 reCamera (RV1126B) 设备全栈 Web API 参考文档。涵盖鉴权、设备管理、音视频配置与存储规则详细说明。适用于开发者集成摄像头功能至智能家居或安防系统。recamera 属于研究检索类 Skill,可作为该场景下的辅助能力补充。需配合 SDK 使用,并确认固件版本与 API 兼容性。

部分高级功能依赖特定硬件型号,非全系列设备均支持全部接口。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install recamera;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

recamera 怎么安装?

在终端执行 openclaw skills install recamera。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

recamera 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

recamera 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

recamera 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

recamera 用的人多吗?

公开数据是累计安装 8,208 次,近一周安装 342 次,下载 2,736 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

recamera 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
recamera

recamera 音频 · 本页

8,208—接触敏感数据MIT-0有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
recamera-web-api
description
reCamera (RV1126B) device full-stack Web API reference covering authentication, device management, video/audio/image configuration, recording rules & storage, AI model inference, terminal/logs, and SenseCraft cloud model conversion. Use when developing or debugging reCamera frontend/backend features, calling device HTTP/WebSocket APIs, or integrating with SenseCraft AI services.

reCamera Web API

Complete API reference for the reCamera (RV1126B) embedded camera platform. This skill enables agents to correctly construct HTTP requests, handle responses, and follow the interaction protocols required by the device.

Conventions

Base URL

All CGI endpoints are prefixed with:

/cgi-bin/entry.cgi/{api_category}/{resource}/{sub_resource}

Exceptions clearly noted per-endpoint (e.g. serial port uses /api/v1/..., file relay uses /storage/relay/...).

Authentication (CRITICAL — Token Must Be Captured and Reused)

Login flow (mandatory for all authenticated operations):

  1. Fetch RSA public key: GET /system/key (no auth required)
  2. Login: POST /system/login with {sUserName, sPassword} (password RSA-encrypted)
  3. Extract token from response: On success (iStatus: 0, iAuth: 1), the HTTP response contains a Set-Cookie header like Set-Cookie: token=<jwt_value>; Path=/; .... You MUST capture the token value from this header.
  4. Persist token for session: Store the extracted token value. All subsequent HTTP requests for this session must include the header: Cookie: token=<jwt_value>

For curl / shell scripts:

# Login and capture token from Set-Cookie header
RESPONSE=$(curl -s -D - -X POST http://{ip}/cgi-bin/entry.cgi/system/login \
  -H "Content-Type: application/json" \
  -d '{"sUserName":"admin","sPassword":"<RSA-encrypted>"}')
TOKEN=$(echo "$RESPONSE" | grep -oP 'Set-Cookie:.*token=\K[^;]+')

# ALL subsequent requests must carry the token cookie
curl -s -X GET http://{ip}/cgi-bin/entry.cgi/system/device-info \
  -H "Cookie: token=$TOKEN"

For browser automation (browser-use agent): After navigating to the login page and submitting credentials, the browser automatically stores the token cookie from the Set-Cookie header. However, you should verify the cookie exists by checking document.cookie for a token= entry after login succeeds. All subsequent same-origin XHR/fetch requests will include the cookie automatically (the app uses withCredentials: true).

IMPORTANT: If you receive an HTTP 401 response or a response body with "code": 401, the token has expired or is missing. You must re-login to obtain a fresh token.

Agent Playbooks (Mandatory Execution)

When user intent matches one of the following tasks, execute the corresponding workflow directly.

Playbook A: Discover reCamera Devices in a Subnet

Trigger intent examples: "scan subnet", "find recamera on 192.168.x.0/24", "discover devices in LAN"

Mandatory workflow:

  1. Enumerate active IPs in the target subnet (e.g. ARP table / ping sweep / nmap host discovery).
  2. For each active IP, send GET http://{ip}/cgi-bin/entry.cgi/system/key (no auth).
  3. Classify as reCamera only if:

- HTTP status is 200, and - response contains field sPublicKey.

  1. Return a structured result with:

- reachable_ips - recamera_ips - non_recamera_ips - unreachable_or_timeout_ips

Do not treat "TCP port open" alone as reCamera confirmation. /system/key verification is required.

Playbook B: Login and Persist Token for Follow-up Calls

Trigger intent examples: "login device", "call authenticated API", "configure after login"

Mandatory workflow:

  1. GET /system/key to fetch RSA public key.
  2. POST /system/login with {sUserName, sPassword} (RSA-encrypted password).
  3. On successful login (iStatus: 0, iAuth: 1), parse Set-Cookie response header and extract token.
  4. Persist token in session context.
  5. For all subsequent HTTP requests in the same session, include:

- Cookie: token=<jwt_value>

  1. If any request returns 401 / auth failure, re-login and refresh token, then retry once.

Do not continue authenticated calls without a captured token.

Configuration Update Pattern (Read-Before-Write)

CRITICAL: For any endpoint that supports both GET and POST/PUT:

  1. First GET the current full configuration
  2. Modify only the fields you need to change on the returned data
  3. POST/PUT the complete modified configuration back

Never send a partial configuration constructed from scratch. The device expects the full config object and omitted fields may revert to defaults or cause unexpected behavior.

Field Naming

JSON keys use a type-prefix + camelCase convention:

PrefixTypeExample
iIntegeriCpuUsage
fFloatfConfidence
sStringsSerialNumber
lList/ArraylActiveWeekdays
dDict/ObjectdNtpConfig
bBooleanbRuleEnabled

Standard Response

Operation endpoints (POST/PUT/DELETE) return:

{
  "code": 0,
  "message": "success"
}

code: 0 = success. Non-zero = error (see error code ranges below).

Error Code Ranges

RangeModule
10xxxDevice Info
20xxxLive Video
30xxxRecording & Storage
40xxxAI Inference
50xxxTerminal & Logs

API Quick Reference

1. Authentication

ActionMethodPathNotes
Get RSA public keyGET/system/keyNo auth. Encrypt passwords with returned key
LoginPOST/system/loginBody: {sUserName, sPassword}. IP-based lockout on failures
Change passwordPUT/system/passwordBody: {sUserName, sOldPassword, sNewPassword} (RSA-encrypted)

Login response key fields:

  • iStatus: 0=correct, -1=wrong password, -3=rate limited
  • iAuth: 1=success, 0=fail, 2=must change password

2. Device Info

ActionMethodPath
Device infoGET/system/device-info
Get system timeGET/system/time
Set system timePUT/system/time
System resources (CPU/NPU/Mem/Storage)GET/system/resource-info
Get network (LAN)GET/network/lan
Set network (LAN)PUT/network/lan
WiFi statusGET/network/wifi-status
WiFi power on/offPOST`/network/wifi-status?power=on\off`
Scan WiFi listGET/network/wifi-list
Connected WiFi infoGET/network/wifi
Connect WiFiPOST/network/wifi
Forget WiFiDELETE/network/wifi?Ignore={ssid}
Get HTTP API settingsGET/web/setting
Set HTTP API settingsPOST/web/setting
Get FTP settingsGET/ftp/setting
Set FTP settingsPOST/ftp/setting
Get serial port configGET/api/v1/device/serial-port
Set serial port configPOST/api/v1/device/serial-port
Export device configGET/config/export
Import device configPOST/config/upload
RebootPOST/system/reboot
Factory reset (two-phase)POST/system/factory-reset
Get HTTPS statusGET/system/secure
Set HTTPSPOST/system/secure
Battery statusGET/system/battery

3. Live Video

ActionMethodPath
Get video encode configGET/video/{stream_id}/encode
Set video encode configPUT/video/{stream_id}/encode
Get stream push configGET/video/{stream_id}/stream
Set stream push configPOST/video/{stream_id}/stream
Get OSD configGET/osd/cfg
Set OSD configPOST/osd/cfg
Get audio encode (stream)GET/audio/{id}
Set audio encode (stream)POST/audio/{id}
Get audio encode (storage)GET/audio/storage
Set audio encode (storage)POST/audio/storage

stream_id: 0=main stream, 1=sub stream

4. Image (ISP) Settings

ActionMethodPath
Get all ISP paramsGET/image/0
Reset to defaultsPOST/image/0
Switch scene profilePUT/image/0/scene
Video adjustment (rotation/flip)PUT/image/0/video-adjustment
Night-to-day paramsPUT/image/0/night-to-day
Image adjustment (brightness etc.)PUT/image/0/{scene_id}/adjustment
ExposurePUT/image/0/{scene_id}/exposure
Backlight (BLC/HDR/HLC)PUT/image/0/{scene_id}/blc
White balancePUT/image/0/{scene_id}/white-blance
Image enhancement (denoise)PUT/image/0/{scene_id}/enhancement

scene_id: 0=general, 1=day, 2=night

ISP Configuration Workflow:

  1. GET /image/0 — fetch all params and determine current scene/profile in use
  2. Select target scene profile (scene_id / iProfile: 0|1|2) based on current mode or user-specified mode
  3. PUT /image/0/scene with {iProfile: 0|1|2} — enter that profile's live edit mode (5min timeout)
  4. Adjust parameters (brightness/contrast/hue/saturation/sharpness etc.) via PUT /image/0/{scene_id}/{specific}
  5. Send save/commit command: PUT /image/0/scene with {iProfile: -1} to exit edit mode and finalize changes

Mandatory sequence for image tuning tasks: "select mode -> enter mode edit state -> adjust params -> send save command". Do not skip the final save/commit step.

5. Recording

ActionMethodPath
Get/Set global rule configGET/POST.../record/rule/config
Get/Set schedule ruleGET/POST.../record/rule/schedule-rule-config
Get/Set record rule (triggers)GET/POST.../record/rule/record-rule-config
Recording system infoGET.../record/rule/info
HTTP rule triggerPOST.../record/rule/http-rule-activate
Get/Set storage configGET/POST.../record/storage/config
Storage statusGET.../record/storage/status
Storage controlPOST.../record/storage/control

Trigger types: INFERENCE_SET, TIMER, GPIO, TTY, HTTP

Storage control actions: FORMAT, FREE_UP, EJECT, CONFIG, RELAY, RELAY_STATUS, UNRELAY, REMOVE_FILES_OR_DIRECTORIES

6. File Access (via Relay)

File access requires a relay session:

  1. POST .../record/storage/control with sAction: "RELAY" — returns dRelayStatus.sRelayDirectory (UUID)
  2. GET /storage/relay/{uuid}/ — list directories (Nginx autoindex JSON)
  3. GET /storage/relay/{uuid}/{path} — download file
  4. Relay auto-expires after 300s; re-request refreshes timeout
  5. Video thumbnails: /path/to/.thumb/video.mp4.thumb.jpg (may not exist, implement fallback)

7. AI Model & Inference

ActionMethodPath
List modelsGET/model/list
Upload model (resumable)POST/model/upload
Delete modelDELETE/model/delete?File-name={name}
Get model infoGET/model/info?File-name={name}
Set model infoPOST/model/info?File-name={name}
Supported algorithmsGET/model/algorithm
Get inference statusGET/model/inference?id=0
Configure inferencePOST/model/inference?id=0
Get notification configGET/notify/cfg
Set notification configPOST/notify/cfg

Notification output modes: 0=off, 1=MQTT, 2=HTTP, 3=UART

8. WebSocket Endpoints

FunctionURLProtocol
Inference results stream/ws/inference/resultsWebSocket
Terminal (ttyd + xterm.js)/ws/system/terminalWebSocket
System logs/ws/system/logsWebSocket

9. SenseCraft AI Cloud (ONNX to RKNN)

Base URL: https://sensecraft-train-api.seeed.cc (prod) / https://test-sensecraft-train-api.seeed.cc (test)

ActionMethodPathKey Params
Create conversion taskPOST/v1/api/create_taskuser_id, framework_type=9, device_type=40, file (.onnx)
List user modelsGET/v1/api/get_training_recordsuser_id, framework_type=9, device_type=40, page, size
Check task statusGET/v1/api/train_statususer_id, model_id
Download model (v1)GET/v1/api/get_modeluser_id, model_id — returns binary .rknn
Download model (v2)GET/v2/api/get_modeluser_id, model_id — returns JSON with download_url
Delete cloud modelGET/v1/api/del_modeluser_id, model_id

SenseCraft Auth Flow:

  1. Redirect user to: https://sensecraft.seeed.cc/ai/authorize?client_id=seeed_recamera&response_type=token&scop=profile&redirec_url={your_url}
  2. Receive token via callback
  3. Backend resolves user_id: POST https://sensecraft-hmi-api.seeed.cc/api/v1/user/login_token with Authorization: {token} header

Conversion polling: 2s interval on /train_status; download only when status === "done"

Firmware Upgrade Flow

Two modes: local upload (resumable) and network download.

Network upgrade:

  1. POST /system/firmware-upgrade?upload-type=network with {sReleaseURL} — returns version info + sConfirmToken
  2. POST /system/firmware-upgrade?upload-type=network with {sConfirmToken} — confirm upgrade
  3. GET /system/firmware-upgrade — poll download progress

Local upload (resumable):

  1. POST /system/firmware-upgrade?upload-type=resumable with {iFileSize} — returns File-Id header
  2. POST /system/firmware-upgrade?id={file_id} with binary chunks (Content-Range headers)
  3. POST /system/firmware-upgrade?start={file_id}&md5sum={hash} — finalize upload

Factory Reset (Two-Phase Confirmation)

  1. First POST /system/factory-reset — returns sConfirmToken (time-limited, ~1-5 min)
  2. Second POST /system/factory-reset with {sConfirmToken} — executes reset

Key Constraints & Gotchas

  • Read-before-write (GET-then-POST/PUT): When updating any configuration endpoint that has a corresponding GET method, ALWAYS fetch the current configuration first via GET, then modify only the needed fields on the fetched data, and POST/PUT the complete object back. Never construct a partial config payload from scratch — the device expects the full configuration structure and missing fields may be reset to defaults or cause errors
  • JWT token expiration: The token obtained from login has a ~10-hour TTL. For long-running scripts or sessions, monitor for 401/auth errors and re-login to refresh the token
  • RTSP capture with OpenCV: When using cv2.VideoCapture to grab frames from an RTSP stream, the first ~120 frames are stale buffered data. ALWAYS discard at least 120 frames before capturing a usable image (e.g. loop cap.read() 120 times, then take the next frame)
  • BLC/HDR/HLC are mutually exclusive — only one can be "open" at a time in backlight settings
  • Privacy masks: max 6 regions in OSD mask overlay
  • ISP scene config: 5-minute inactivity timeout auto-exits live config mode
  • Storage RELAY: requires slot state >= CONFIGURED; relay expires in 300s
  • Model inference: model must have associated model info (JSON) before enabling
  • InferenceSet + classification model: RegionFilter must be empty
  • InferenceSet + detection model: at least one polygon required (default to full-frame [[0,0],[1,0],[1,1],[0,1]])
  • Serial port endpoint does NOT go through CGI: /api/v1/device/serial-port
  • File relay endpoint does NOT go through CGI: /storage/relay/...
  • Device discovery: To detect whether a reCamera device is reachable at a given IP, send GET http://{ip}/cgi-bin/entry.cgi/system/key. This endpoint requires no authentication and returns immediately. A successful response (HTTP 200 with sPublicKey field) confirms the target is a reCamera device

Large Reference Reading Policy (Token-Efficient)

API_REFERENCE.md is intentionally large. Use it on demand instead of reading the whole file by default.

  1. Default behavior: Do NOT read API_REFERENCE.md in full.
  2. First-pass routing: Determine target module from user intent (auth/device/network/video/image/recording/storage/inference/websocket/cloud).
  3. Section-first lookup: Read only the relevant section(s) for the current task.
  4. Progressive expansion: If a field or constraint is still unclear, expand to adjacent subsection(s) only.
  5. Full-file exception: Read the entire API_REFERENCE.md only when the user explicitly asks for a full audit/review/export, or when cross-module validation is strictly required.

Practical rule: prefer "minimum sufficient context" and keep reads scoped to the exact endpoint(s) being implemented or debugged.

Additional Resources

  • For complete endpoint schemas with all fields and value ranges, see API_REFERENCE.md

平台分布

OpenClaw

79.24%
按下载量换算2,168

安全审计

VirusTotal

可疑

ClawScan

通过

Static analysis

通过

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills