{"skill":{"slug":"tesla","displayName":"Tesla","summary":"Control your Tesla vehicles — lock/unlock, climate, location, charge status, and more. Supports multiple vehicles via Tesla Fleet API.","description":"---\nname: tesla\nversion: \"1.1.0\"\ndescription: Control your Tesla vehicles — lock/unlock, climate, location, charge status, and more. Supports multiple vehicles via Tesla Fleet API.\nauthor: mvanhorn\nlicense: MIT\nrepository: https://github.com/mvanhorn/clawdbot-skill-tesla\nhomepage: https://developer.tesla.com/docs/fleet-api\nmetadata:\n  openclaw:\n    emoji: \"🚗\"\n    requires:\n      env:\n        - TESLA_EMAIL\n    primaryEnv: TESLA_EMAIL\n    tags:\n      - tesla\n      - vehicle\n      - iot\n      - fleet-api\n---\n\n# Tesla\n\nControl your Tesla vehicles from OpenClaw. Supports multiple cars on one account.\n\n> **Fleet API Update (2026):** Tesla is deprecating direct `/command` REST calls. Vehicles on firmware 2024.26+\n> require the Vehicle Command Protocol (VCP) SDK. The `tesla-fleet-api` Python package (v1.x+) handles this automatically.\n\n## Setup\n\n### First-time authentication:\n\n```bash\nTESLA_EMAIL=\"you@email.com\" python3 {baseDir}/scripts/tesla.py auth\n```\n\nThis will:\n1. Display a Tesla login URL\n2. You log in and authorize in browser\n3. Paste the callback URL back\n4. Token cached for future use (~30 days, auto-refreshes)\n\n### Environment variables:\n\n- `TESLA_EMAIL` — Your Tesla account email\n- Token cached in `~/.tesla_cache.json`\n\n## Multi-Vehicle Support\n\nUse `--car` or `-c` to specify which vehicle:\n\n```bash\n# List all vehicles\npython3 {baseDir}/scripts/tesla.py list\n\n# Commands for specific car\npython3 {baseDir}/scripts/tesla.py --car \"Snowflake\" status\npython3 {baseDir}/scripts/tesla.py -c \"Stella\" lock\n```\n\nWithout `--car`, commands target your first vehicle.\n\n## Commands\n\n```bash\n# List all vehicles\npython3 {baseDir}/scripts/tesla.py list\n\n# Get vehicle status\npython3 {baseDir}/scripts/tesla.py status\npython3 {baseDir}/scripts/tesla.py --car \"Stella\" status\n\n# Lock/unlock\npython3 {baseDir}/scripts/tesla.py lock\npython3 {baseDir}/scripts/tesla.py unlock\n\n# Climate\npython3 {baseDir}/scripts/tesla.py climate on\npython3 {baseDir}/scripts/tesla.py climate off\npython3 {baseDir}/scripts/tesla.py climate temp 72\n\n# Charging\npython3 {baseDir}/scripts/tesla.py charge status\npython3 {baseDir}/scripts/tesla.py charge start\npython3 {baseDir}/scripts/tesla.py charge stop\n\n# Location\npython3 {baseDir}/scripts/tesla.py location\n\n# Honk & flash\npython3 {baseDir}/scripts/tesla.py honk\npython3 {baseDir}/scripts/tesla.py flash\n\n# Wake up (if asleep)\npython3 {baseDir}/scripts/tesla.py wake\n```\n\n## Example Chat Usage\n\n- \"Is my Tesla locked?\"\n- \"Lock Stella\"\n- \"What's Snowflake's battery level?\"\n- \"Where's my Model X?\"\n- \"Turn on the AC in Stella\"\n- \"Honk the horn on Snowflake\"\n\n## API Reference\n\nUses the unofficial Tesla Owner API documented at:\nhttps://tesla-api.timdorr.com\n\n## Privacy & Security\n\n- Credentials stored locally only\n- Refresh token cached in `~/.tesla_cache.json`\n- No data sent to third parties\n- Tokens auto-refresh for ~30 days\n","tags":{"latest":"1.3.1"},"stats":{"comments":1,"downloads":2619,"installsAllTime":99,"installsCurrent":3,"stars":1,"versions":8},"createdAt":1769059422583,"updatedAt":1779076397254},"latestVersion":{"version":"1.3.1","createdAt":1772859039387,"changelog":"Fix display name (remove Clawdbot prefix)","license":null},"metadata":{"setup":[{"key":"TESLA_EMAIL","required":true}],"os":null,"systems":null},"owner":{"handle":"mvanhorn","userId":"s17ea85t738dtyvg6gkwt7zt5h84596q","displayName":"Matt Van Horn","image":"https://avatars.githubusercontent.com/u/455140?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1779915662555}}