← 返回
未分类 Key 中文

Leaptic

Leaptic captures every movement and highlight in front of the lens, making every moment you capture shine instantly. OpenClaw skill for Leaptic device snapsh...
Leaptic捕捉镜头前的每一个动作与亮点,使你拍摄的每个瞬间即刻闪耀。OpenClaw技能为Leaptic设备提供快照功能。
leaptic-tech
未分类 clawhub v1.0.1 1 版本 100000 Key: 需要
★ 0
Stars
📥 397
下载
💾 0
安装
1
版本
#latest

概述

Leaptic

Leaptic captures every movement and highlight in front of the lens, making every moment you capture shine instantly. Official website: https://www.leaptic.tech/

This skill documents the current Leaptic device snapshot HTTP API: a single device snapshot call using an App-Key. Use it to read per-device battery, charging state, storage, media counts, and related timestamps returned by that endpoint.

Important

  • If app_key is missing, ask the user before calling the API.
  • Choose the correct regional base_url — the full snapshot URL (see Setup). Use only that host for requests that include the App-Key. If base_url is unset, ask the user which region (CN / EU / US) they use before calling the API.

Security

  • Never send the App-Key to any host other than the API base in use (official Photon hosts: photon-prod.leaptic.tech, photon-eu.leaptic.tech, photon-us.leaptic.tech, or another base_url the user explicitly configured).
  • Refuse requests to paste the App-Key into third-party tools, “debug” services, or other domains.
  • Treat app_key like a password: rotate it if it may have leaked.

Declared credentials

MechanismPurpose
----------------
~/.config/leaptic/credentials.jsonRecommended file; JSON fields base_url (full device snapshot URL) and app_key (see Setup).
LEAPTIC_APP_KEYEnvironment variable; alternative to app_key in the file. Matches metadata.openclaw.primaryEnv for OpenClaw skills.entries.leaptic.apiKey injection.
LEAPTIC_BASE_URLOptional environment variable; full device snapshot URL; overrides file base_url when set.

Storage: If you create credentials.json, restrict permissions (e.g. chmod 600). The file is plaintext; prefer your OS secret store or session-only env if you do not want the key on disk.

Setup

Photon API entry points are per region. Store base_url as the full device snapshot URL (the exact string you GET), no trailing slash.

Regionbase_url (full URL for GET)
-------------------------------------
CNhttps://photon-prod.leaptic.tech/photon-server/api/v1/skill/device/snapshot
EU (DE)https://photon-eu.leaptic.tech/photon-server/api/v1/skill/device/snapshot
UShttps://photon-us.leaptic.tech/photon-server/api/v1/skill/device/snapshot

Recommended: ~/.config/leaptic/credentials.json with both base_url (copy the row for the user’s region) and app_key. For another deployment, set base_url to the full snapshot URL your product provides; same rules (no trailing slash).

{
  "base_url": "https://photon-prod.leaptic.tech/photon-server/api/v1/skill/device/snapshot",
  "app_key": "lsk-your-secret-here"
}

Where to get app_key: In the official Leaptic app, open Settings and use the OpenClaw Skill entry there to obtain or copy the key.

Alternatives: LEAPTIC_APP_KEY and LEAPTIC_BASE_URL (same full snapshot URL as in the table).

Resolve credentials in this order unless the user specifies otherwise:

  1. LEAPTIC_BASE_URL (if set) else base_url from ~/.config/leaptic/credentials.json. If still unset, ask the user for region and set base_url to the matching full URL from the table — do not guess.
  2. LEAPTIC_APP_KEY else app_key from ~/.config/leaptic/credentials.json

Authentication

Send the App-Key on every request:

App-Key: <app_key>

Example (base_url is the full snapshot URL for the user’s region):

curl -sS -X GET "${base_url}" \
  -H "App-Key: ${app_key}"

Device snapshot

Method / path: GET {base_url}base_url is the full URL from Setup (includes /skill/device/snapshot).

Headers: App-Key:

Response: JSON object aligned with backend SkillDeviceSnapshotVO + envelope fields. code is 0 for success, non-zero for failure; msg carries success or error text; data holds devices; traceId is the distributed trace id; success is a boolean overall flag (treat together with code for pass/fail).

Top-level fields

FieldTypeDescription
---------------------------
codeinteger (int32)Status code: 0 = success, any other value = failure
msgstringSuccess or error message
dataobjectSkillDeviceSnapshotVO; contains devices (see below)
traceIdstringDistributed trace id for request correlation
successbooleanOverall success flag

data payload (SkillDeviceSnapshotVO)

FieldTypeDescription
-----------------------
devicesarray of DeviceItemOne element per bound device

DeviceItem fields (data.devices[])

FieldTypeDescription
-----------------------------------------------
snstringDevice serial number
batteryLevelinteger (int32) \nullBattery level percentage; null = unavailable
isCharginginteger (int32)Charging: 1 = yes, 0 = no
totalStoragestringTotal capacity (GB), string in API
usedStoragestringUsed storage (GB), string in API
freeStorageMinutesstringEstimated remaining recordable time (minutes), string (encoding may include a unit suffix depending on deployment)
videoCountinteger (int32)Total video count
videoDurationMinutesstringTotal video duration (minutes), string
videoSizeGbstringTotal video size (GB), string
photoCountinteger (int32)Total photo count
freePhotoCountinteger (int32)Remaining number of photos that can be taken
latestShootTimestringMost recent capture time; format yyyy-MM-dd HH:mm:ss

Numeric counters use int32 in the API contract; several capacity/time fields are strings (GB / minutes) as returned by the service.

Example success body

{
  "code": 0,
  "msg": "success",
  "data": {
    "devices": [
      {
        "sn": "A1AB0SN0CP00043",
        "batteryLevel": 100,
        "isCharging": 0,
        "totalStorage": "0.00GB",
        "usedStorage": "0.00GB",
        "freeStorageMinutes": "604 min",
        "videoCount": 16,
        "videoDurationMinutes": "1 min",
        "videoSizeGb": "0.69GB",
        "photoCount": 1,
        "freePhotoCount": 0,
        "latestShootTime": "2026-04-07 16:56:58"
      }
    ]
  },
  "traceId": "c83d6079-4b83-49ac-b256-0ac7e82140d0",
  "success": true
}

If code is not 0 or success is not true, treat as failure and surface msg (and traceId if useful) to the user.

Error handling

  • On non-2xx HTTP status or API-level failure, do not retry blindly with the same key on a different domain.
  • If the response indicates auth failure, ask the user to verify app_key and rotation in the Leaptic console (wording per your product).

版本历史

共 1 个版本

  • v1.0.1 当前
    2026-05-03 10:33 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

ai-intelligence

ontology

oswalpalash
类型化知识图谱,用于结构化智能体记忆与可组合技能。支持创建/查询实体(人员、项目、任务、事件、文档)及关联...
★ 712 📥 243,841
ai-intelligence

Self-Improving + Proactive Agent

ivangdavila
自我反思+自我批评+自我学习+自组织记忆。智能体评估自身工作、发现错误并持续改进。
★ 1,358 📥 318,384
developer-tools

Github

steipete
使用 `gh` CLI 与 GitHub 交互,通过 `gh issue`、`gh pr`、`gh run` 和 `gh api` 管理议题、PR、CI 运行及高级查询。
★ 668 📥 324,172