.claude/skills/cielo-home-api-reverse-engineering/SKILL.md
Cielo Home / Mr Cool minisplit smart AC API details and CLI tool. Use when: (1) Controlling Mr Cool or Cielo Home minisplit AC units programmatically, (2) Building integrations with Cielo Home API (api.smartcielo.com), (3) Token expired and need to refresh credentials for cielo-cli, (4) Need to understand Cielo Home WebSocket command format for device control. Covers API endpoints, authentication flow, HAR-based token extraction, and the Chrome CORS header stripping workaround.
npx skillsauth add Dbochman/dotfiles cielo-home-api-reverse-engineeringInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Cielo Home (home.cielowigle.com) provides a web app for controlling Mr Cool minisplit AC units, but has no public API documentation. Building programmatic control requires reverse-engineering the API from the obfuscated Angular frontend and the Home Assistant community integration.
POST /auth/login requires a
reCAPTCHA token. Neither the HA integration nor node-smartcielo perform programmatic login.authorization header
and an API key in x-api-key.$CIELO_API_KEY env var (extracted from live browser,
differs from the obfuscated JS value in the web app).POST /web/token/refresh with body {"local":"en","refreshToken":"..."}.
Requires authorization header with current access token.| Endpoint | Method | Purpose |
|----------|--------|---------|
| https://api.smartcielo.com/web/devices?limit=420 | GET | List all devices |
| https://api.smartcielo.com/web/sync/db/6?applianceIdList=[ids] | GET | Appliance details |
| https://api.smartcielo.com/web/token/refresh | POST | Refresh access token |
| wss://apiwss.smartcielo.com/websocket/?sessionId=...&token=... | WS | Real-time control |
Commands are sent as JSON over WebSocket. Two main action types:
actionControl: Change a single setting (power, temp, mode, fan, swing)syncState: Set multiple values at onceRequired fields: action, actionSource ("WEB"), macAddress, user_id, fw_version,
deviceTypeVersion, mid ("WEB"), connection_source, applianceId, applianceType,
actions (object with power/mode/temp/fanspeed/swing/turbo/light/followme),
oldPower, and for actionControl: actionType + actionValue.
Critical discovery: Chrome HAR exports strip authorization headers from CORS
requests (cross-origin to api.smartcielo.com). However, WebSocket URLs retain the
token as a query parameter (?sessionId=...&token=...). This is the most reliable
way to extract tokens from a HAR file.
apiwss.smartcielo.comtoken and sessionId from the URL query parameters/Users/dylanbochman/repos/cielo-cli/
~/.config/cielo/config.jsondevices, status, on, off, temp, mode, fan, swing, set, load-harDo9ehqFdb6home.cielowigle.com used SignalR WebSocket and session cookies (node-smartcielo approach). The new API uses REST + standard WebSocket.connectionSource field matters for commands - use the value from the device object.application_version: "1.4.4" in all messages.isFaren: 1 means the device uses Fahrenheit.tools
Use exact configured Reolink cameras through the local Home Hub for availability and power status, fresh stills, visual commentary, protected Dylan/Julia/household sharing, and reversible spotlight control. Supports trusted owner tasks and explicitly scoped proactive automations; not for Nest or Ring cameras, arbitrary recipients, recordings, account changes, or raw camera APIs.
data-ai
Privately manage Dylan and Julia's household plant inventory and care history by physical location, bed, and exact Flower Cam view. Use for confirmed plant onboarding from camera conversations, camera- or bed-filtered inventory, record corrections, individual or whole-bed care, and private filtered exports. Pair with reolink-camera when an owner asks about plants visible in Flower Cam images.
testing
Inspect and control the physically secured Reachy Mini at Crosstown through ClawBody. Use for requests to check Reachy, look around, express an emotion, play any official emotion or dance preset, speak proactively, mute or unmute its microphone, stop movement, or describe what its camera sees.
tools
Handle Reachy/iMessage handoffs, selective durable memory, forgetting, and diagnostics; automatic context comes from the gateway plugin.