{
  "schemaVersion": "1.0",
  "item": {
    "slug": "tesla-fleet-api",
    "name": "Tesla Fleet Api",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/odrobnik/tesla-fleet-api",
    "canonicalUrl": "https://clawhub.ai/odrobnik/tesla-fleet-api",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/tesla-fleet-api",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=tesla-fleet-api",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SETUP.md",
      "SKILL.md",
      "scripts/auth.py",
      "scripts/command.py",
      "scripts/start_proxy.sh",
      "scripts/stop_proxy.sh"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/tesla-fleet-api"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/tesla-fleet-api",
    "agentPageUrl": "https://openagent3.xyz/skills/tesla-fleet-api/agent",
    "manifestUrl": "https://openagent3.xyz/skills/tesla-fleet-api/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/tesla-fleet-api/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Tesla Fleet API",
        "body": "Control Tesla vehicles via the official Fleet API."
      },
      {
        "title": "Scripts Overview",
        "body": "ScriptPurposecommand.pyVehicle commands (climate, charging, locks, etc.)vehicle_data.pyRead vehicle data (battery, climate, location, etc.)vehicles.pyList vehicles + refresh cacheauth.pyAuthentication and configurationtesla_oauth_local.pyOAuth helper with local callback serverstart_proxy.shStart the signing proxy (for vehicle commands)stop_proxy.shStop the signing proxy"
      },
      {
        "title": "Setup / Configuration",
        "body": "Setup is documented in SETUP.md:\n\nSETUP.md\n\nState directory: {workspace}/tesla-fleet-api/\n\nconfig.json (provider creds + non-token config)\nauth.json (tokens)\nvehicles.json (cached vehicle list)\nplaces.json (named locations)\nproxy/ (TLS material for signing proxy)\n\nNo .env file loading — credentials in config.json or environment variables."
      },
      {
        "title": "command.py - Vehicle Commands",
        "body": "Execute commands on your Tesla. Vehicle is auto-selected if you only have one."
      },
      {
        "title": "Usage",
        "body": "command.py [VEHICLE] <command> [options]\n\nVEHICLE - Vehicle name or VIN (optional if single vehicle)\nCommands can be run without specifying vehicle: command.py honk\nOr with vehicle name: command.py flash honk (vehicle \"flash\", command \"honk\")"
      },
      {
        "title": "Climate Control",
        "body": "Start/Stop Climate\n\ncommand.py climate start\ncommand.py climate stop\ncommand.py flash climate start          # specific vehicle\n\nSet Temperature\n\ncommand.py climate temps <driver_temp> [passenger_temp]\ncommand.py climate temps 21             # both seats 21°C\ncommand.py climate temps 22 20          # driver 22°C, passenger 20°C\n\nClimate Keeper Mode\n\ncommand.py climate keeper <mode>\n\nModes: off, keep, dog, camp"
      },
      {
        "title": "Seat Heater",
        "body": "command.py seat-heater --level <level> [--position <position>]\ncommand.py seat-heater -l <level> [-p <position>]\n\nLevels:\n\nValueName0off1low2medium3high\n\nPositions:\n\nValueNames0driver, front_left, fl1passenger, front_right, fr2rear_left, rl3rear_left_back4rear_center, rc5rear_right, rr6rear_right_back7third_left8third_right\n\nExamples:\n\ncommand.py seat-heater -l high                    # driver (default)\ncommand.py seat-heater -l medium -p passenger\ncommand.py seat-heater --level low --position rear_left\ncommand.py seat-heater -l 2 -p 4                  # medium, rear center\ncommand.py seat-heater -l off -p driver           # turn off"
      },
      {
        "title": "Seat Cooler (Ventilation)",
        "body": "command.py seat-cooler --level <level> [--position <position>]\ncommand.py seat-cooler -l <level> [-p <position>]\n\nSame levels and positions as seat heater.\n\nExamples:\n\ncommand.py seat-cooler -l medium -p driver\ncommand.py seat-cooler -l high -p passenger"
      },
      {
        "title": "Seat Auto Climate",
        "body": "command.py seat-climate [--position <position>] <mode>\ncommand.py seat-climate [-p <position>] <mode>\n\nModes: auto, on, off\n\nExamples:\n\ncommand.py seat-climate auto                      # driver auto\ncommand.py seat-climate -p passenger auto\ncommand.py seat-climate -p driver off             # disable auto"
      },
      {
        "title": "Steering Wheel Heater",
        "body": "command.py steering-heater <on|off>\n\nExamples:\n\ncommand.py steering-heater on\ncommand.py steering-heater off"
      },
      {
        "title": "Precondition Schedules",
        "body": "Modern API for scheduling departure preconditioning (replaces deprecated set_scheduled_departure).\n\nAdd Schedule\n\ncommand.py precondition add --time <HH:MM> [--days <days>] [--id <id>] [--one-time] [--disabled]\ncommand.py precondition add -t <HH:MM> [-d <days>] [--id <id>]\n\nDays options:\n\nValueDescriptionallEvery day (default)weekdaysMonday through FridayweekendsSaturday and Sundaymon,tue,wed,...Specific days (comma-separated)\n\nDay names: sun, mon, tue, wed, thu, fri, sat (or full names)\n\nExamples:\n\ncommand.py precondition add -t 08:00              # every day at 8am\ncommand.py precondition add -t 08:00 -d weekdays  # Mon-Fri\ncommand.py precondition add -t 07:30 -d mon,wed,fri\ncommand.py precondition add -t 09:00 --one-time   # one-time only\ncommand.py precondition add -t 08:30 --id 123     # modify existing schedule\ncommand.py precondition add -t 08:00 --disabled   # create but disabled\n\nRemove Schedule\n\ncommand.py precondition remove --id <id>\n\nExamples:\n\ncommand.py precondition remove --id 123\ncommand.py precondition remove --id 1"
      },
      {
        "title": "Charging Control",
        "body": "Start/Stop Charging\n\ncommand.py charge start\ncommand.py charge stop\n\nSet Charge Limit\n\ncommand.py charge limit <percent>\n\nPercent must be 50-100.\n\nExamples:\n\ncommand.py charge limit 80\ncommand.py charge limit 90\ncommand.py flash charge limit 70                  # specific vehicle"
      },
      {
        "title": "Doors & Security",
        "body": "command.py lock                   # lock all doors\ncommand.py unlock                 # unlock all doors\ncommand.py honk                   # honk the horn\ncommand.py flash                  # flash the lights\ncommand.py wake                   # wake vehicle from sleep\n\nWith vehicle name:\n\ncommand.py flash wake             # wake vehicle named \"flash\"\ncommand.py flash flash            # flash lights on vehicle \"flash\""
      },
      {
        "title": "vehicle_data.py - Read Vehicle Data",
        "body": "Fetch vehicle data with human-readable output by default."
      },
      {
        "title": "Usage",
        "body": "vehicle_data.py [VEHICLE] [flags] [--json]\n\nVEHICLE - Vehicle name or VIN (optional if single vehicle)\nNo flags = all data\n--json = raw JSON output"
      },
      {
        "title": "Flags",
        "body": "FlagLongData-c--chargeBattery level, charge limit, charging status-t--climateInterior/exterior temp, HVAC status-d--driveGear, speed, power, heading-l--locationGPS coordinates-s--stateLocks, doors, windows, odometer, software-g--guiGUI settings (units, 24h time)--config-dataVehicle config (model, color, wheels)"
      },
      {
        "title": "Examples",
        "body": "# All data\nvehicle_data.py\nvehicle_data.py flash\n\n# Specific data\nvehicle_data.py -c                        # charge only\nvehicle_data.py -c -t                     # charge + climate\nvehicle_data.py flash -c -l               # charge + location\n\n# Raw JSON\nvehicle_data.py --json\nvehicle_data.py -c --json"
      },
      {
        "title": "Sample Output",
        "body": "🚗 My Tesla (online)\n   VIN: 5YJ... (redacted)\n\n⚡ Charge State\n────────────────────────────────────────\n  Battery:    [███████████████░░░░░] 78%\n  Limit:      80%\n  State:      Charging\n  Power:      11 kW (16A × 234V × 3φ)\n  Added:      37.2 kWh\n  Remaining:  10m\n  Range:      438 km (272 mi)\n  Cable:      IEC\n\n🌡️  Climate State\n────────────────────────────────────────\n  Inside:     11.9°C\n  Outside:    6.0°C\n  Set to:     20.5°C\n  Climate:    Off"
      },
      {
        "title": "auth.py - Authentication",
        "body": "Manage OAuth tokens and configuration."
      },
      {
        "title": "Usage",
        "body": "auth.py <command> [options]"
      },
      {
        "title": "Commands",
        "body": "Login (OAuth Flow)\n\nauth.py login\n\nInteractive: generates auth URL, prompts for code, exchanges for tokens.\n\nExchange Code\n\nauth.py exchange <code>\n\nExchange authorization code for tokens (non-interactive).\n\nRefresh Tokens\n\nauth.py refresh\n\nRefresh access token. Note: refresh tokens rotate - the new one is saved automatically.\n\nRegister Domain\n\nauth.py register --domain <domain>\n\nRegister your app domain with Tesla (required for signed commands).\n\nAfter registration, enroll your virtual key:\n\nhttps://tesla.com/_ak/<domain>\n\nShow Config\n\nauth.py config\n\nDisplay current configuration (secrets redacted).\n\nSet Config\n\nauth.py config set [options]\n\nOptions:\n\n--client-id <id>\n--client-secret <secret>\n--redirect-uri <uri>\n--audience <url>\n--base-url <url>\n--ca-cert <path>\n--domain <domain>\n\nExamples:\n\n# Initial setup\nauth.py config set \\\n  --client-id \"abc123\" \\\n  --client-secret \"secret\" \\\n  --redirect-uri \"http://localhost:18080/callback\"\n\n# Configure proxy\nauth.py config set \\\n  --base-url \"https://localhost:4443\" \\\n  --ca-cert \"/path/to/tls-cert.pem\""
      },
      {
        "title": "tesla_fleet.py - List Vehicles",
        "body": "List vehicles with human-readable output.\n\npython3 scripts/tesla_fleet.py vehicles\npython3 scripts/tesla_fleet.py vehicles --json"
      },
      {
        "title": "Sample Output",
        "body": "🚗 Name:   My Tesla\n🔖 VIN:    5YJ... (redacted)\n🟢 Status: Online\n👤 Access: Owner"
      },
      {
        "title": "Configuration / Proxy / File layout",
        "body": "All setup + configuration is documented in SETUP.md."
      },
      {
        "title": "Regional Base URLs",
        "body": "RegionAudience URLEuropehttps://fleet-api.prd.eu.vn.cloud.tesla.comNorth Americahttps://fleet-api.prd.na.vn.cloud.tesla.comChinahttps://fleet-api.prd.cn.vn.cloud.tesla.cn\n\nOAuth token endpoint (all regions):\n\nhttps://fleet-auth.prd.vn.cloud.tesla.com/oauth2/v3/token"
      },
      {
        "title": "\"vehicle unavailable: vehicle is offline or asleep\"",
        "body": "Wake the vehicle first:\n\ncommand.py wake"
      },
      {
        "title": "\"command not signed\" / \"vehicle rejected\"",
        "body": "Ensure the signing proxy is running and configured. See SETUP.md § Proxy Setup."
      },
      {
        "title": "Token expired",
        "body": "auth.py refresh"
      },
      {
        "title": "Multiple vehicles",
        "body": "Specify vehicle by name or VIN:\n\ncommand.py flash climate start\ncommand.py 5YJ... honk"
      },
      {
        "title": "command.py",
        "body": "climate start|stop\nclimate temps <driver> [passenger]\nclimate keeper off|keep|dog|camp\n\nseat-heater -l <level> [-p <position>]\nseat-cooler -l <level> [-p <position>]\nseat-climate [-p <position>] auto|on|off\n\nsteering-heater on|off\n\nprecondition add -t <HH:MM> [-d <days>] [--id <id>] [--one-time]\nprecondition remove --id <id>\n\ncharge start|stop\ncharge limit <percent>\n\nlock\nunlock\nhonk\nflash\nwake"
      },
      {
        "title": "vehicle_data.py",
        "body": "[VEHICLE] [-c] [-t] [-d] [-l] [-s] [-g] [--config-data] [--json]"
      },
      {
        "title": "auth.py",
        "body": "login\nexchange <code>\nrefresh\nregister --domain <domain>\nconfig\nconfig set [--client-id] [--client-secret] [--redirect-uri] [--audience] [--base-url] [--ca-cert] [--domain]"
      }
    ],
    "body": "Tesla Fleet API\n\nControl Tesla vehicles via the official Fleet API.\n\nScripts Overview\nScript\tPurpose\ncommand.py\tVehicle commands (climate, charging, locks, etc.)\nvehicle_data.py\tRead vehicle data (battery, climate, location, etc.)\nvehicles.py\tList vehicles + refresh cache\nauth.py\tAuthentication and configuration\ntesla_oauth_local.py\tOAuth helper with local callback server\nstart_proxy.sh\tStart the signing proxy (for vehicle commands)\nstop_proxy.sh\tStop the signing proxy\nSetup / Configuration\n\nSetup is documented in SETUP.md:\n\nSETUP.md\n\nState directory: {workspace}/tesla-fleet-api/\n\nconfig.json (provider creds + non-token config)\nauth.json (tokens)\nvehicles.json (cached vehicle list)\nplaces.json (named locations)\nproxy/ (TLS material for signing proxy)\n\nNo .env file loading — credentials in config.json or environment variables.\n\ncommand.py - Vehicle Commands\n\nExecute commands on your Tesla. Vehicle is auto-selected if you only have one.\n\nUsage\ncommand.py [VEHICLE] <command> [options]\n\nVEHICLE - Vehicle name or VIN (optional if single vehicle)\nCommands can be run without specifying vehicle: command.py honk\nOr with vehicle name: command.py flash honk (vehicle \"flash\", command \"honk\")\nClimate Control\nStart/Stop Climate\ncommand.py climate start\ncommand.py climate stop\ncommand.py flash climate start          # specific vehicle\n\nSet Temperature\ncommand.py climate temps <driver_temp> [passenger_temp]\ncommand.py climate temps 21             # both seats 21°C\ncommand.py climate temps 22 20          # driver 22°C, passenger 20°C\n\nClimate Keeper Mode\ncommand.py climate keeper <mode>\n\n\nModes: off, keep, dog, camp\n\nSeat Heater\ncommand.py seat-heater --level <level> [--position <position>]\ncommand.py seat-heater -l <level> [-p <position>]\n\n\nLevels:\n\nValue\tName\n0\toff\n1\tlow\n2\tmedium\n3\thigh\n\nPositions:\n\nValue\tNames\n0\tdriver, front_left, fl\n1\tpassenger, front_right, fr\n2\trear_left, rl\n3\trear_left_back\n4\trear_center, rc\n5\trear_right, rr\n6\trear_right_back\n7\tthird_left\n8\tthird_right\n\nExamples:\n\ncommand.py seat-heater -l high                    # driver (default)\ncommand.py seat-heater -l medium -p passenger\ncommand.py seat-heater --level low --position rear_left\ncommand.py seat-heater -l 2 -p 4                  # medium, rear center\ncommand.py seat-heater -l off -p driver           # turn off\n\nSeat Cooler (Ventilation)\ncommand.py seat-cooler --level <level> [--position <position>]\ncommand.py seat-cooler -l <level> [-p <position>]\n\n\nSame levels and positions as seat heater.\n\nExamples:\n\ncommand.py seat-cooler -l medium -p driver\ncommand.py seat-cooler -l high -p passenger\n\nSeat Auto Climate\ncommand.py seat-climate [--position <position>] <mode>\ncommand.py seat-climate [-p <position>] <mode>\n\n\nModes: auto, on, off\n\nExamples:\n\ncommand.py seat-climate auto                      # driver auto\ncommand.py seat-climate -p passenger auto\ncommand.py seat-climate -p driver off             # disable auto\n\nSteering Wheel Heater\ncommand.py steering-heater <on|off>\n\n\nExamples:\n\ncommand.py steering-heater on\ncommand.py steering-heater off\n\nPrecondition Schedules\n\nModern API for scheduling departure preconditioning (replaces deprecated set_scheduled_departure).\n\nAdd Schedule\ncommand.py precondition add --time <HH:MM> [--days <days>] [--id <id>] [--one-time] [--disabled]\ncommand.py precondition add -t <HH:MM> [-d <days>] [--id <id>]\n\n\nDays options:\n\nValue\tDescription\nall\tEvery day (default)\nweekdays\tMonday through Friday\nweekends\tSaturday and Sunday\nmon,tue,wed,...\tSpecific days (comma-separated)\n\nDay names: sun, mon, tue, wed, thu, fri, sat (or full names)\n\nExamples:\n\ncommand.py precondition add -t 08:00              # every day at 8am\ncommand.py precondition add -t 08:00 -d weekdays  # Mon-Fri\ncommand.py precondition add -t 07:30 -d mon,wed,fri\ncommand.py precondition add -t 09:00 --one-time   # one-time only\ncommand.py precondition add -t 08:30 --id 123     # modify existing schedule\ncommand.py precondition add -t 08:00 --disabled   # create but disabled\n\nRemove Schedule\ncommand.py precondition remove --id <id>\n\n\nExamples:\n\ncommand.py precondition remove --id 123\ncommand.py precondition remove --id 1\n\nCharging Control\nStart/Stop Charging\ncommand.py charge start\ncommand.py charge stop\n\nSet Charge Limit\ncommand.py charge limit <percent>\n\n\nPercent must be 50-100.\n\nExamples:\n\ncommand.py charge limit 80\ncommand.py charge limit 90\ncommand.py flash charge limit 70                  # specific vehicle\n\nDoors & Security\ncommand.py lock                   # lock all doors\ncommand.py unlock                 # unlock all doors\ncommand.py honk                   # honk the horn\ncommand.py flash                  # flash the lights\ncommand.py wake                   # wake vehicle from sleep\n\n\nWith vehicle name:\n\ncommand.py flash wake             # wake vehicle named \"flash\"\ncommand.py flash flash            # flash lights on vehicle \"flash\"\n\nvehicle_data.py - Read Vehicle Data\n\nFetch vehicle data with human-readable output by default.\n\nUsage\nvehicle_data.py [VEHICLE] [flags] [--json]\n\nVEHICLE - Vehicle name or VIN (optional if single vehicle)\nNo flags = all data\n--json = raw JSON output\nFlags\nFlag\tLong\tData\n-c\t--charge\tBattery level, charge limit, charging status\n-t\t--climate\tInterior/exterior temp, HVAC status\n-d\t--drive\tGear, speed, power, heading\n-l\t--location\tGPS coordinates\n-s\t--state\tLocks, doors, windows, odometer, software\n-g\t--gui\tGUI settings (units, 24h time)\n\t--config-data\tVehicle config (model, color, wheels)\nExamples\n# All data\nvehicle_data.py\nvehicle_data.py flash\n\n# Specific data\nvehicle_data.py -c                        # charge only\nvehicle_data.py -c -t                     # charge + climate\nvehicle_data.py flash -c -l               # charge + location\n\n# Raw JSON\nvehicle_data.py --json\nvehicle_data.py -c --json\n\nSample Output\n🚗 My Tesla (online)\n   VIN: 5YJ... (redacted)\n\n⚡ Charge State\n────────────────────────────────────────\n  Battery:    [███████████████░░░░░] 78%\n  Limit:      80%\n  State:      Charging\n  Power:      11 kW (16A × 234V × 3φ)\n  Added:      37.2 kWh\n  Remaining:  10m\n  Range:      438 km (272 mi)\n  Cable:      IEC\n\n🌡️  Climate State\n────────────────────────────────────────\n  Inside:     11.9°C\n  Outside:    6.0°C\n  Set to:     20.5°C\n  Climate:    Off\n\nauth.py - Authentication\n\nManage OAuth tokens and configuration.\n\nUsage\nauth.py <command> [options]\n\nCommands\nLogin (OAuth Flow)\nauth.py login\n\n\nInteractive: generates auth URL, prompts for code, exchanges for tokens.\n\nExchange Code\nauth.py exchange <code>\n\n\nExchange authorization code for tokens (non-interactive).\n\nRefresh Tokens\nauth.py refresh\n\n\nRefresh access token. Note: refresh tokens rotate - the new one is saved automatically.\n\nRegister Domain\nauth.py register --domain <domain>\n\n\nRegister your app domain with Tesla (required for signed commands).\n\nAfter registration, enroll your virtual key:\n\nhttps://tesla.com/_ak/<domain>\n\nShow Config\nauth.py config\n\n\nDisplay current configuration (secrets redacted).\n\nSet Config\nauth.py config set [options]\n\n\nOptions:\n\n--client-id <id>\n--client-secret <secret>\n--redirect-uri <uri>\n--audience <url>\n--base-url <url>\n--ca-cert <path>\n--domain <domain>\n\nExamples:\n\n# Initial setup\nauth.py config set \\\n  --client-id \"abc123\" \\\n  --client-secret \"secret\" \\\n  --redirect-uri \"http://localhost:18080/callback\"\n\n# Configure proxy\nauth.py config set \\\n  --base-url \"https://localhost:4443\" \\\n  --ca-cert \"/path/to/tls-cert.pem\"\n\ntesla_fleet.py - List Vehicles\n\nList vehicles with human-readable output.\n\npython3 scripts/tesla_fleet.py vehicles\npython3 scripts/tesla_fleet.py vehicles --json\n\nSample Output\n🚗 Name:   My Tesla\n🔖 VIN:    5YJ... (redacted)\n🟢 Status: Online\n👤 Access: Owner\n\nConfiguration / Proxy / File layout\n\nAll setup + configuration is documented in SETUP.md.\n\nRegional Base URLs\nRegion\tAudience URL\nEurope\thttps://fleet-api.prd.eu.vn.cloud.tesla.com\nNorth America\thttps://fleet-api.prd.na.vn.cloud.tesla.com\nChina\thttps://fleet-api.prd.cn.vn.cloud.tesla.cn\n\nOAuth token endpoint (all regions):\n\nhttps://fleet-auth.prd.vn.cloud.tesla.com/oauth2/v3/token\n\nTroubleshooting\n\"vehicle unavailable: vehicle is offline or asleep\"\n\nWake the vehicle first:\n\ncommand.py wake\n\n\"command not signed\" / \"vehicle rejected\"\n\nEnsure the signing proxy is running and configured. See SETUP.md § Proxy Setup.\n\nToken expired\nauth.py refresh\n\nMultiple vehicles\n\nSpecify vehicle by name or VIN:\n\ncommand.py flash climate start\ncommand.py 5YJ... honk\n\nComplete Command Reference\ncommand.py\nclimate start|stop\nclimate temps <driver> [passenger]\nclimate keeper off|keep|dog|camp\n\nseat-heater -l <level> [-p <position>]\nseat-cooler -l <level> [-p <position>]\nseat-climate [-p <position>] auto|on|off\n\nsteering-heater on|off\n\nprecondition add -t <HH:MM> [-d <days>] [--id <id>] [--one-time]\nprecondition remove --id <id>\n\ncharge start|stop\ncharge limit <percent>\n\nlock\nunlock\nhonk\nflash\nwake\n\nvehicle_data.py\n[VEHICLE] [-c] [-t] [-d] [-l] [-s] [-g] [--config-data] [--json]\n\nauth.py\nlogin\nexchange <code>\nrefresh\nregister --domain <domain>\nconfig\nconfig set [--client-id] [--client-secret] [--redirect-uri] [--audience] [--base-url] [--ca-cert] [--domain]"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/odrobnik/tesla-fleet-api",
    "publisherUrl": "https://clawhub.ai/odrobnik/tesla-fleet-api",
    "owner": "odrobnik",
    "version": "1.5.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/tesla-fleet-api",
    "downloadUrl": "https://openagent3.xyz/downloads/tesla-fleet-api",
    "agentUrl": "https://openagent3.xyz/skills/tesla-fleet-api/agent",
    "manifestUrl": "https://openagent3.xyz/skills/tesla-fleet-api/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/tesla-fleet-api/agent.md"
  }
}