Leaptic
/install leaptic
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_keyis 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. Ifbase_urlis 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 anotherbase_urlthe user explicitly configured). - Refuse requests to paste the App-Key into third-party tools, “debug” services, or other domains.
- Treat
app_keylike a password: rotate it if it may have leaked.
Declared credentials
| Mechanism | Purpose |
|---|---|
~/.config/leaptic/credentials.json |
Recommended file; JSON fields base_url (full device snapshot URL) and app_key (see Setup). |
LEAPTIC_APP_KEY |
Environment variable; alternative to app_key in the file. Matches metadata.openclaw.primaryEnv for OpenClaw skills.entries.leaptic.apiKey injection. |
LEAPTIC_BASE_URL |
Optional 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.
| Region | base_url (full URL for GET) |
|---|---|
| CN | https://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 |
| US | https://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:
LEAPTIC_BASE_URL(if set) elsebase_urlfrom~/.config/leaptic/credentials.json. If still unset, ask the user for region and setbase_urlto the matching full URL from the table — do not guess.LEAPTIC_APP_KEYelseapp_keyfrom~/.config/leaptic/credentials.json
Authentication
Send the App-Key on every request:
App-Key: \x3Capp_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: \x3Capp_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
| Field | Type | Description |
|---|---|---|
| code | integer (int32) | Status code: 0 = success, any other value = failure |
| msg | string | Success or error message |
| data | object | SkillDeviceSnapshotVO; contains devices (see below) |
| traceId | string | Distributed trace id for request correlation |
| success | boolean | Overall success flag |
data payload (SkillDeviceSnapshotVO)
| Field | Type | Description |
|---|---|---|
| devices | array of DeviceItem | One element per bound device |
DeviceItem fields (data.devices[])
| Field | Type | Description |
|---|---|---|
| sn | string | Device serial number |
| batteryLevel | integer (int32) | null | Battery level percentage; null = unavailable |
| isCharging | integer (int32) | Charging: 1 = yes, 0 = no |
| totalStorage | string | Total capacity (GB), string in API |
| usedStorage | string | Used storage (GB), string in API |
| freeStorageMinutes | string | Estimated remaining recordable time (minutes), string (encoding may include a unit suffix depending on deployment) |
| videoCount | integer (int32) | Total video count |
| videoDurationMinutes | string | Total video duration (minutes), string |
| videoSizeGb | string | Total video size (GB), string |
| photoCount | integer (int32) | Total photo count |
| freePhotoCount | integer (int32) | Remaining number of photos that can be taken |
| latestShootTime | string | Most 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_keyand rotation in the Leaptic console (wording per your product).
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install leaptic - 安装完成后,直接呼叫该 Skill 的名称或使用
/leaptic触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
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... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 136 次。
如何安装 Leaptic?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install leaptic」即可一键安装,无需额外配置。
Leaptic 是免费的吗?
是的,Leaptic 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Leaptic 支持哪些平台?
Leaptic 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Leaptic?
由 leaptic-tech(@leaptic-tech)开发并维护,当前版本 v1.0.1。