Claim this agent
Agent DossierCLAWHUBSafety 84/100

Xpersona Agent

Tesla Fleet Api

Use when integrating with Tesla's official Fleet API to read vehicle/energy device data or issue remote commands (e.g. start HVAC preconditioning, wake vehicle, charge controls). Covers onboarding (developer app registration, regions/base URLs), OAuth token flows (third-party + partner tokens, refresh rotation), required domain/public-key hosting, and using Tesla's official vehicle-command/tesla-http-proxy for signed vehicle commands.

OpenClaw ยท self-declared
2.5K downloadsTrust evidence available
clawhub skill install kn7c7fek4a503rbvj0bxbwx6dx7yw25e:tesla-fleet-api

Overall rank

#62

Adoption

2.5K downloads

Trust

Unknown

Freshness

Feb 28, 2026

Freshness

Last checked Feb 28, 2026

Best For

Tesla Fleet Api is best for general automation workflows where OpenClaw compatibility matters.

Not Ideal For

Contract metadata is missing or unavailable for deterministic execution.

Evidence Sources Checked

CLAWHUB, CLAWHUB, runtime-metrics, public facts pack

Overview

Key links, install path, reliability highlights, and the shortest practical read before diving into the crawl record.

Self-declaredCLAWHUB

Overview

Executive Summary

Use when integrating with Tesla's official Fleet API to read vehicle/energy device data or issue remote commands (e.g. start HVAC preconditioning, wake vehicle, charge controls). Covers onboarding (developer app registration, regions/base URLs), OAuth token flows (third-party + partner tokens, refresh rotation), required domain/public-key hosting, and using Tesla's official vehicle-command/tesla-http-proxy for signed vehicle commands. Capability contract not published. No trust telemetry is available yet. 2.5K downloads reported by the source. Last updated 4/15/2026.

No verified compatibility signals2.5K downloads

Trust score

Unknown

Compatibility

OpenClaw

Freshness

Feb 28, 2026

Vendor

Clawhub

Artifacts

0

Benchmarks

0

Last release

1.5.0

Install & run

Setup Snapshot

clawhub skill install kn7c7fek4a503rbvj0bxbwx6dx7yw25e:tesla-fleet-api
  1. 1

    Install using `clawhub skill install kn7c7fek4a503rbvj0bxbwx6dx7yw25e:tesla-fleet-api` in an isolated environment before connecting it to live workloads.

  2. 2

    No published capability contract is available yet, so validate auth and request/response behavior manually.

  3. 3

    Review the upstream CLAWHUB listing at https://clawhub.ai/odrobnik/tesla-fleet-api before using production credentials.

Evidence & Timeline

Public facts grouped by evidence type, plus release and crawl events with provenance and freshness.

Self-declaredCLAWHUB

Public facts

Evidence Ledger

Vendor (1)

Vendor

Clawhub

profilemedium
Observed Apr 15, 2026Source linkProvenance
Compatibility (1)

Protocol compatibility

OpenClaw

contractmedium
Observed Apr 15, 2026Source linkProvenance
Release (1)

Latest release

1.5.0

releasemedium
Observed Feb 13, 2026Source linkProvenance
Adoption (1)

Adoption signal

2.5K downloads

profilemedium
Observed Apr 15, 2026Source linkProvenance
Security (1)

Handshake status

UNKNOWN

trustmedium
Observed unknownSource linkProvenance

Artifacts & Docs

Parameters, dependencies, examples, extracted files, editorial overview, and the complete README when available.

Self-declaredCLAWHUB

Captured outputs

Artifacts Archive

Extracted files

3

Examples

6

Snippets

0

Languages

Unknown

Executable Examples

bash

command.py [VEHICLE] <command> [options]

bash

command.py climate start
command.py climate stop
command.py flash climate start          # specific vehicle

bash

command.py climate temps <driver_temp> [passenger_temp]
command.py climate temps 21             # both seats 21ยฐC
command.py climate temps 22 20          # driver 22ยฐC, passenger 20ยฐC

bash

command.py climate keeper <mode>

bash

command.py seat-heater --level <level> [--position <position>]
command.py seat-heater -l <level> [-p <position>]

bash

command.py seat-heater -l high                    # driver (default)
command.py seat-heater -l medium -p passenger
command.py seat-heater --level low --position rear_left
command.py seat-heater -l 2 -p 4                  # medium, rear center
command.py seat-heater -l off -p driver           # turn off
Extracted Files

SKILL.md

---
name: tesla-fleet-api
description: Use when integrating with Tesla's official Fleet API to read vehicle/energy device data or issue remote commands (e.g. start HVAC preconditioning, wake vehicle, charge controls). Covers onboarding (developer app registration, regions/base URLs), OAuth token flows (third-party + partner tokens, refresh rotation), required domain/public-key hosting, and using Tesla's official vehicle-command/tesla-http-proxy for signed vehicle commands.
version: 1.5.0
homepage: https://github.com/odrobnik/tesla-fleet-api-skill
metadata:
  openclaw:
    emoji: "๐Ÿš—"
    requires:
      bins: ["python3", "openssl"]
      env: ["TESLA_CLIENT_ID", "TESLA_CLIENT_SECRET"]
      optionalEnv: ["TESLA_AUDIENCE", "TESLA_REDIRECT_URI", "TESLA_DOMAIN", "TESLA_BASE_URL", "TESLA_CA_CERT", "TESLA_ACCESS_TOKEN", "TESLA_REFRESH_TOKEN", "TESLA_SCOPE"]

---

# Tesla Fleet API

Control Tesla vehicles via the official Fleet API.

## Scripts Overview

| Script | Purpose |
|--------|---------|
| `command.py` | Vehicle commands (climate, charging, locks, etc.) |
| `vehicle_data.py` | Read vehicle data (battery, climate, location, etc.) |
| `vehicles.py` | List vehicles + refresh cache |
| `auth.py` | Authentication and configuration |
| `tesla_oauth_local.py` | OAuth helper with local callback server |
| `start_proxy.sh` | Start the signing proxy (for vehicle commands) |
| `stop_proxy.sh` | Stop the signing proxy |

---

## Setup / Configuration

Setup is documented in **`SETUP.md`**:

- [SETUP.md](SETUP.md)

State directory: `{workspace}/tesla-fleet-api/`
- `config.json` (provider creds + non-token config)
- `auth.json` (tokens)
- `vehicles.json` (cached vehicle list)
- `places.json` (named locations)
- `proxy/` (TLS material for signing proxy)

No `.env` file loading โ€” credentials in `config.json` or environment variables.

---

## command.py - Vehicle Commands

Execute commands on your Tesla. Vehicle is auto-selected if you only have one.

### Usage

```bash
command.py [VEHICLE] <command> [options]
```

- `VEHICLE` - Vehicle name or VIN (optional if single vehicle)
- Commands can be run without specifying vehicle: `command.py honk`
- Or with vehicle name: `command.py flash honk` (vehicle "flash", command "honk")

---

### Climate Control

#### Start/Stop Climate
```bash
command.py climate start
command.py climate stop
command.py flash climate start          # specific vehicle
```

#### Set Temperature
```bash
command.py climate temps <driver_temp> [passenger_temp]
command.py climate temps 21             # both seats 21ยฐC
command.py climate temps 22 20          # driver 22ยฐC, passenger 20ยฐC
```

#### Climate Keeper Mode
```bash
command.py climate keeper <mode>
```
Modes: `off`, `keep`, `dog`, `camp`

---

### Seat Heater

```bash
command.py seat-heater --level <level> [--position <position>]
command.py seat-heater -l <level> [-p <position>]
```

**Levels:**
| Value | Name |
|-------|------|
| 0 | off |
| 1 | low |
| 2 | medium |
| 3 | high |

**Posi

_meta.json

{
  "ownerId": "kn7c7fek4a503rbvj0bxbwx6dx7yw25e",
  "slug": "tesla-fleet-api",
  "version": "1.5.0",
  "publishedAt": 1771003588072
}

SETUP.md

# Tesla Fleet API Skill โ€” Setup Guide

This guide covers **setup + configuration** for the Tesla Fleet API skill.

If you just want the CLI command reference, see `SKILL.md`.

---

## Prerequisites

- Tesla Developer Account + an app created
- A domain you control (for public key hosting + virtual key enrollment)
- `python3`
- `openssl` (for key generation + TLS certs)
- macOS (scripts tested on macOS)
- For proxy setup: `go` (on macOS: `brew install go`) โ€” only needed once to compile the proxy binary

---

## State / Files

All runtime state lives in your workspace:

`{workspace}/tesla-fleet-api/`

Files:
- `config.json` โ€” provider creds (client id/secret), non-token config (audience, base_url, ca_cert, redirect_uri, domain)
- `auth.json` โ€” tokens (access/refresh)
- `vehicles.json` โ€” cached vehicle list
- `places.json` โ€” named locations (`{"home": {"lat": ..., "lon": ...}}`)
- `proxy/` โ€” TLS material for the signing proxy
- `private-key.pem` โ€” your Tesla EC private key (fixed name)

Credentials come from `config.json` or environment variables (`TESLA_CLIENT_ID`, `TESLA_CLIENT_SECRET`). No `.env` file loading.

---

## 1) Create & host your EC keypair

```bash
# Generate P-256 keypair
openssl ecparam -name prime256v1 -genkey -noout -out private-key.pem
openssl ec -in private-key.pem -pubout -out public-key.pem

# Host public key at:
# https://YOUR_DOMAIN/.well-known/appspecific/com.tesla.3p.public-key.pem
```

Store your private key in the workspace with a fixed name:
`{workspace}/tesla-fleet-api/private-key.pem`

---

## 2) Configure provider credentials

```bash
python3 scripts/auth.py config set \
  --client-id "YOUR_CLIENT_ID" \
  --client-secret "YOUR_CLIENT_SECRET" \
  --redirect-uri "http://localhost:18080/callback" \
  --audience "https://fleet-api.prd.eu.vn.cloud.tesla.com"
```

This writes to `{workspace}/tesla-fleet-api/config.json`.

---

## 3) OAuth login (creates auth.json)

Interactive login (manual code paste):

```bash
python3 scripts/auth.py login
```

Automatic login via local callback server:

```bash
python3 scripts/tesla_oauth_local.py --prompt-missing-scopes
```

---

## 4) Register domain + enroll virtual key

```bash
python3 scripts/auth.py register --domain YOUR_DOMAIN.com
```

Then, on your phone (Tesla app installed):

`https://tesla.com/_ak/YOUR_DOMAIN.com`

---

## 5) Proxy Setup (for signed commands only)

> **Note:** The proxy is only needed for **sending signed commands** to the vehicle (climate, locks, charging, honk, etc.). Reading vehicle data (battery, location, temperatures) works without the proxy โ€” those requests go directly to the Tesla Fleet API.

### Install tesla-http-proxy

Requires Go (`brew install go` on macOS).

```bash
# Pin to a specific version for supply-chain safety
go install github.com/teslamotors/vehicle-command/cmd/tesla-http-proxy@v0.4.1
```

This installs `tesla-http-proxy` to `~/go/bin/`.

### Generate TLS certificates

```bash
mkdir -p {workspace}/tesla-fleet-api/proxy
cd {workspace}/t

Editorial read

Docs & README

Docs source

CLAWHUB

Editorial quality

thin

Skill: Tesla Fleet Api Owner: odrobnik Summary: Use when integrating with Tesla's official Fleet API to read vehicle/energy device data or issue remote commands (e.g. start HVAC preconditioning, wake vehicle, charge controls). Covers onboarding (developer app registration, regions/base URLs), OAuth token flows (third-party + partner tokens, refresh rotation), required domain/public-key hosting, and using Tesla's offi

Full README

Skill: Tesla Fleet Api

Owner: odrobnik

Summary: Use when integrating with Tesla's official Fleet API to read vehicle/energy device data or issue remote commands (e.g. start HVAC preconditioning, wake vehicle, charge controls). Covers onboarding (developer app registration, regions/base URLs), OAuth token flows (third-party + partner tokens, refresh rotation), required domain/public-key hosting, and using Tesla's official vehicle-command/tesla-http-proxy for signed vehicle commands.

Tags: latest:1.5.0

Version history:

v1.5.0 | 2026-02-13T17:26:28.072Z | auto

  • Dropped the Go runtime dependency; Go is no longer required to use the skill.
  • Updated required environment variables and optional settings, removing obsolete entries related to signing proxy and public key.
  • Improved documentation for setup, reflecting dependency changes.
  • start_proxy.sh script and related requirements simplified due to proxy/signing changes.
  • Version bumped to 1.5.0.

v1.4.2 | 2026-02-12T18:21:45.162Z | auto

Changelog for tesla-fleet-api v1.4.2

  • Simplified environment requirements: no longer requires bash or git for basic operation.
  • Removed .env file support; credentials are now loaded only from config.json or environment variables.
  • Updated state directory layout and documentation in SETUP.md and SKILL.md.
  • Refined scripts: removed setup_proxy.sh, added explicit start_proxy.sh and stop_proxy.sh for controlling the signing proxy.

v1.3.0 | 2026-02-12T13:15:24.540Z | auto

  • Adds support for seat cooler (ventilated seat) commands.
  • Implements seat-climate commands to control seat auto climate modes.
  • Updates to precondition scheduling for more robust schedule parameters.
  • Various code improvements and expanded option parsing across commands.

v1.2.0 | 2026-02-12T07:32:08.391Z | user

Replace .env loading with config.json for provider creds (legacy .env fallback kept)

v1.1.9 | 2026-02-11T18:22:38.413Z | user

Remove local-only calendar automation (school-precondition.sh) from published package; keep local copy outside skill.

v1.1.8 | 2026-02-11T17:40:00.777Z | user

Mitigate supply-chain risk: setup_proxy uses pinned vehicle-command version via go install; document TESLA_VEHICLE_COMMAND_VERSION override.

v1.1.7 | 2026-02-11T15:56:59.323Z | user

Default state dir is ~/.openclaw; update remaining docs/help strings (legacy ~/.moltbot noted).

v1.1.6 | 2026-02-11T15:56:13.732Z | user

Prefer ~/.openclaw state dir (fallback to legacy ~/.moltbot). Update scripts + docs.

v1.1.5 | 2026-02-11T15:52:34.116Z | user

Declare TESLA_PRIVATE_KEY + document proxy build (vehicle-command clone) and calendar access.

v1.1.4 | 2026-02-11T15:37:26.342Z | user

Declare required env/bins + state dir; make proxy setup script non-installing (no automatic brew install)

v1.1.3 | 2026-01-26T07:09:34.686Z | user

Docs: remove legacy migration note from SETUP.md.

v1.1.2 | 2026-01-26T07:07:12.605Z | user

Docs: remove tesla_fleet.py from scripts overview table.

v1.1.1 | 2026-01-26T07:03:09.924Z | user

Docs: move setup/config into SETUP.md; SKILL.md now references it.

v1.1.0 | 2026-01-26T06:41:51.632Z | user

Split state: config.json/auth.json/vehicles.json/places.json; provider creds via .env; added places + vehicles commands.

Archive index:

Archive v1.5.0: 12 files, 33731 bytes

Files: scripts/auth.py (12479b), scripts/command.py (33317b), scripts/start_proxy.sh (2622b), scripts/stop_proxy.sh (1056b), scripts/store.py (4599b), scripts/tesla_fleet.py (3224b), scripts/tesla_oauth_local.py (8710b), scripts/vehicle_data.py (18280b), scripts/vehicles.py (4664b), SETUP.md (4978b), SKILL.md (11654b), _meta.json (134b)

File v1.5.0:SKILL.md


name: tesla-fleet-api description: Use when integrating with Tesla's official Fleet API to read vehicle/energy device data or issue remote commands (e.g. start HVAC preconditioning, wake vehicle, charge controls). Covers onboarding (developer app registration, regions/base URLs), OAuth token flows (third-party + partner tokens, refresh rotation), required domain/public-key hosting, and using Tesla's official vehicle-command/tesla-http-proxy for signed vehicle commands. version: 1.5.0 homepage: https://github.com/odrobnik/tesla-fleet-api-skill metadata: openclaw: emoji: "๐Ÿš—" requires: bins: ["python3", "openssl"] env: ["TESLA_CLIENT_ID", "TESLA_CLIENT_SECRET"] optionalEnv: ["TESLA_AUDIENCE", "TESLA_REDIRECT_URI", "TESLA_DOMAIN", "TESLA_BASE_URL", "TESLA_CA_CERT", "TESLA_ACCESS_TOKEN", "TESLA_REFRESH_TOKEN", "TESLA_SCOPE"]


Tesla Fleet API

Control Tesla vehicles via the official Fleet API.

Scripts Overview

| Script | Purpose | |--------|---------| | command.py | Vehicle commands (climate, charging, locks, etc.) | | vehicle_data.py | Read vehicle data (battery, climate, location, etc.) | | vehicles.py | List vehicles + refresh cache | | auth.py | Authentication and configuration | | tesla_oauth_local.py | OAuth helper with local callback server | | start_proxy.sh | Start the signing proxy (for vehicle commands) | | stop_proxy.sh | Stop the signing proxy |


Setup / Configuration

Setup is documented in SETUP.md:

State directory: {workspace}/tesla-fleet-api/

  • config.json (provider creds + non-token config)
  • auth.json (tokens)
  • vehicles.json (cached vehicle list)
  • places.json (named locations)
  • proxy/ (TLS material for signing proxy)

No .env file loading โ€” credentials in config.json or environment variables.


command.py - Vehicle Commands

Execute commands on your Tesla. Vehicle is auto-selected if you only have one.

Usage

command.py [VEHICLE] <command> [options]
  • VEHICLE - Vehicle name or VIN (optional if single vehicle)
  • Commands can be run without specifying vehicle: command.py honk
  • Or with vehicle name: command.py flash honk (vehicle "flash", command "honk")

Climate Control

Start/Stop Climate

command.py climate start
command.py climate stop
command.py flash climate start          # specific vehicle

Set Temperature

command.py climate temps <driver_temp> [passenger_temp]
command.py climate temps 21             # both seats 21ยฐC
command.py climate temps 22 20          # driver 22ยฐC, passenger 20ยฐC

Climate Keeper Mode

command.py climate keeper <mode>

Modes: off, keep, dog, camp


Seat Heater

command.py seat-heater --level <level> [--position <position>]
command.py seat-heater -l <level> [-p <position>]

Levels: | Value | Name | |-------|------| | 0 | off | | 1 | low | | 2 | medium | | 3 | high |

Positions: | Value | Names | |-------|-------| | 0 | driver, front_left, fl | | 1 | passenger, front_right, fr | | 2 | rear_left, rl | | 3 | rear_left_back | | 4 | rear_center, rc | | 5 | rear_right, rr | | 6 | rear_right_back | | 7 | third_left | | 8 | third_right |

Examples:

command.py seat-heater -l high                    # driver (default)
command.py seat-heater -l medium -p passenger
command.py seat-heater --level low --position rear_left
command.py seat-heater -l 2 -p 4                  # medium, rear center
command.py seat-heater -l off -p driver           # turn off

Seat Cooler (Ventilation)

command.py seat-cooler --level <level> [--position <position>]
command.py seat-cooler -l <level> [-p <position>]

Same levels and positions as seat heater.

Examples:

command.py seat-cooler -l medium -p driver
command.py seat-cooler -l high -p passenger

Seat Auto Climate

command.py seat-climate [--position <position>] <mode>
command.py seat-climate [-p <position>] <mode>

Modes: auto, on, off

Examples:

command.py seat-climate auto                      # driver auto
command.py seat-climate -p passenger auto
command.py seat-climate -p driver off             # disable auto

Steering Wheel Heater

command.py steering-heater <on|off>

Examples:

command.py steering-heater on
command.py steering-heater off

Precondition Schedules

Modern API for scheduling departure preconditioning (replaces deprecated set_scheduled_departure).

Add Schedule

command.py precondition add --time <HH:MM> [--days <days>] [--id <id>] [--one-time] [--disabled]
command.py precondition add -t <HH:MM> [-d <days>] [--id <id>]

Days options: | Value | Description | |-------|-------------| | all | Every day (default) | | weekdays | Monday through Friday | | weekends | Saturday and Sunday | | mon,tue,wed,... | Specific days (comma-separated) |

Day names: sun, mon, tue, wed, thu, fri, sat (or full names)

Examples:

command.py precondition add -t 08:00              # every day at 8am
command.py precondition add -t 08:00 -d weekdays  # Mon-Fri
command.py precondition add -t 07:30 -d mon,wed,fri
command.py precondition add -t 09:00 --one-time   # one-time only
command.py precondition add -t 08:30 --id 123     # modify existing schedule
command.py precondition add -t 08:00 --disabled   # create but disabled

Remove Schedule

command.py precondition remove --id <id>

Examples:

command.py precondition remove --id 123
command.py precondition remove --id 1

Charging Control

Start/Stop Charging

command.py charge start
command.py charge stop

Set Charge Limit

command.py charge limit <percent>

Percent must be 50-100.

Examples:

command.py charge limit 80
command.py charge limit 90
command.py flash charge limit 70                  # specific vehicle

Doors & Security

command.py lock                   # lock all doors
command.py unlock                 # unlock all doors
command.py honk                   # honk the horn
command.py flash                  # flash the lights
command.py wake                   # wake vehicle from sleep

With vehicle name:

command.py flash wake             # wake vehicle named "flash"
command.py flash flash            # flash lights on vehicle "flash"

vehicle_data.py - Read Vehicle Data

Fetch vehicle data with human-readable output by default.

Usage

vehicle_data.py [VEHICLE] [flags] [--json]
  • VEHICLE - Vehicle name or VIN (optional if single vehicle)
  • No flags = all data
  • --json = raw JSON output

Flags

| Flag | Long | Data | |------|------|------| | -c | --charge | Battery level, charge limit, charging status | | -t | --climate | Interior/exterior temp, HVAC status | | -d | --drive | Gear, speed, power, heading | | -l | --location | GPS coordinates | | -s | --state | Locks, doors, windows, odometer, software | | -g | --gui | GUI settings (units, 24h time) | | | --config-data | Vehicle config (model, color, wheels) |

Examples

# All data
vehicle_data.py
vehicle_data.py flash

# Specific data
vehicle_data.py -c                        # charge only
vehicle_data.py -c -t                     # charge + climate
vehicle_data.py flash -c -l               # charge + location

# Raw JSON
vehicle_data.py --json
vehicle_data.py -c --json

Sample Output

๐Ÿš— My Tesla (online)
   VIN: 5YJ... (redacted)

โšก Charge State
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  Battery:    [โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘] 78%
  Limit:      80%
  State:      Charging
  Power:      11 kW (16A ร— 234V ร— 3ฯ†)
  Added:      37.2 kWh
  Remaining:  10m
  Range:      438 km (272 mi)
  Cable:      IEC

๐ŸŒก๏ธ  Climate State
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  Inside:     11.9ยฐC
  Outside:    6.0ยฐC
  Set to:     20.5ยฐC
  Climate:    Off

auth.py - Authentication

Manage OAuth tokens and configuration.

Usage

auth.py <command> [options]

Commands

Login (OAuth Flow)

auth.py login

Interactive: generates auth URL, prompts for code, exchanges for tokens.

Exchange Code

auth.py exchange <code>

Exchange authorization code for tokens (non-interactive).

Refresh Tokens

auth.py refresh

Refresh access token. Note: refresh tokens rotate - the new one is saved automatically.

Register Domain

auth.py register --domain <domain>

Register your app domain with Tesla (required for signed commands).

After registration, enroll your virtual key:

https://tesla.com/_ak/<domain>

Show Config

auth.py config

Display current configuration (secrets redacted).

Set Config

auth.py config set [options]

Options:

  • --client-id <id>
  • --client-secret <secret>
  • --redirect-uri <uri>
  • --audience <url>
  • --base-url <url>
  • --ca-cert <path>
  • --domain <domain>

Examples:

# Initial setup
auth.py config set \
  --client-id "abc123" \
  --client-secret "secret" \
  --redirect-uri "http://localhost:18080/callback"

# Configure proxy
auth.py config set \
  --base-url "https://localhost:4443" \
  --ca-cert "/path/to/tls-cert.pem"

tesla_fleet.py - List Vehicles

List vehicles with human-readable output.

python3 scripts/tesla_fleet.py vehicles
python3 scripts/tesla_fleet.py vehicles --json

Sample Output

๐Ÿš— Name:   My Tesla
๐Ÿ”– VIN:    5YJ... (redacted)
๐ŸŸข Status: Online
๐Ÿ‘ค Access: Owner

Configuration / Proxy / File layout

All setup + configuration is documented in SETUP.md.


Regional Base URLs

| Region | Audience URL | |--------|--------------| | Europe | https://fleet-api.prd.eu.vn.cloud.tesla.com | | North America | https://fleet-api.prd.na.vn.cloud.tesla.com | | China | https://fleet-api.prd.cn.vn.cloud.tesla.cn |

OAuth token endpoint (all regions):

https://fleet-auth.prd.vn.cloud.tesla.com/oauth2/v3/token

Troubleshooting

"vehicle unavailable: vehicle is offline or asleep"

Wake the vehicle first:

command.py wake

"command not signed" / "vehicle rejected"

Ensure the signing proxy is running and configured. See SETUP.md ยง Proxy Setup.

Token expired

auth.py refresh

Multiple vehicles

Specify vehicle by name or VIN:

command.py flash climate start
command.py 5YJ... honk

Complete Command Reference

command.py

climate start|stop
climate temps <driver> [passenger]
climate keeper off|keep|dog|camp

seat-heater -l <level> [-p <position>]
seat-cooler -l <level> [-p <position>]
seat-climate [-p <position>] auto|on|off

steering-heater on|off

precondition add -t <HH:MM> [-d <days>] [--id <id>] [--one-time]
precondition remove --id <id>

charge start|stop
charge limit <percent>

lock
unlock
honk
flash
wake

vehicle_data.py

[VEHICLE] [-c] [-t] [-d] [-l] [-s] [-g] [--config-data] [--json]

auth.py

login
exchange <code>
refresh
register --domain <domain>
config
config set [--client-id] [--client-secret] [--redirect-uri] [--audience] [--base-url] [--ca-cert] [--domain]

File v1.5.0:_meta.json

{ "ownerId": "kn7c7fek4a503rbvj0bxbwx6dx7yw25e", "slug": "tesla-fleet-api", "version": "1.5.0", "publishedAt": 1771003588072 }

File v1.5.0:SETUP.md

Tesla Fleet API Skill โ€” Setup Guide

This guide covers setup + configuration for the Tesla Fleet API skill.

If you just want the CLI command reference, see SKILL.md.


Prerequisites

  • Tesla Developer Account + an app created
  • A domain you control (for public key hosting + virtual key enrollment)
  • python3
  • openssl (for key generation + TLS certs)
  • macOS (scripts tested on macOS)
  • For proxy setup: go (on macOS: brew install go) โ€” only needed once to compile the proxy binary

State / Files

All runtime state lives in your workspace:

{workspace}/tesla-fleet-api/

Files:

  • config.json โ€” provider creds (client id/secret), non-token config (audience, base_url, ca_cert, redirect_uri, domain)
  • auth.json โ€” tokens (access/refresh)
  • vehicles.json โ€” cached vehicle list
  • places.json โ€” named locations ({"home": {"lat": ..., "lon": ...}})
  • proxy/ โ€” TLS material for the signing proxy
  • private-key.pem โ€” your Tesla EC private key (fixed name)

Credentials come from config.json or environment variables (TESLA_CLIENT_ID, TESLA_CLIENT_SECRET). No .env file loading.


1) Create & host your EC keypair

# Generate P-256 keypair
openssl ecparam -name prime256v1 -genkey -noout -out private-key.pem
openssl ec -in private-key.pem -pubout -out public-key.pem

# Host public key at:
# https://YOUR_DOMAIN/.well-known/appspecific/com.tesla.3p.public-key.pem

Store your private key in the workspace with a fixed name: {workspace}/tesla-fleet-api/private-key.pem


2) Configure provider credentials

python3 scripts/auth.py config set \
  --client-id "YOUR_CLIENT_ID" \
  --client-secret "YOUR_CLIENT_SECRET" \
  --redirect-uri "http://localhost:18080/callback" \
  --audience "https://fleet-api.prd.eu.vn.cloud.tesla.com"

This writes to {workspace}/tesla-fleet-api/config.json.


3) OAuth login (creates auth.json)

Interactive login (manual code paste):

python3 scripts/auth.py login

Automatic login via local callback server:

python3 scripts/tesla_oauth_local.py --prompt-missing-scopes

4) Register domain + enroll virtual key

python3 scripts/auth.py register --domain YOUR_DOMAIN.com

Then, on your phone (Tesla app installed):

https://tesla.com/_ak/YOUR_DOMAIN.com


5) Proxy Setup (for signed commands only)

Note: The proxy is only needed for sending signed commands to the vehicle (climate, locks, charging, honk, etc.). Reading vehicle data (battery, location, temperatures) works without the proxy โ€” those requests go directly to the Tesla Fleet API.

Install tesla-http-proxy

Requires Go (brew install go on macOS).

# Pin to a specific version for supply-chain safety
go install github.com/teslamotors/vehicle-command/cmd/tesla-http-proxy@v0.4.1

This installs tesla-http-proxy to ~/go/bin/.

Generate TLS certificates

mkdir -p {workspace}/tesla-fleet-api/proxy
cd {workspace}/tesla-fleet-api/proxy

openssl req -x509 -newkey rsa:4096 \
  -keyout tls-key.pem -out tls-cert.pem \
  -days 365 -nodes -subj "/CN=localhost"

chmod 600 tls-key.pem

Configure scripts to use the proxy

python3 scripts/auth.py config set \
  --base-url "https://localhost:4443" \
  --ca-cert "proxy/tls-cert.pem"

The ca_cert path is stored relative to the config directory and resolved at runtime.

Start / stop the proxy

Use the convenience scripts:

# Start (uses {workspace}/tesla-fleet-api/private-key.pem)
./scripts/start_proxy.sh

# Stop
./scripts/stop_proxy.sh

The proxy runs in the background on https://localhost:4443. Logs go to {workspace}/tesla-fleet-api/proxy/proxy.log.


6) Test

# Data (no proxy needed)
python3 scripts/vehicles.py
python3 scripts/vehicle_data.py -c

# Commands (proxy required)
python3 scripts/command.py honk

Places (named lat/lon)

# list
python3 scripts/command.py places list

# set explicit coords
python3 scripts/command.py places set home --lat 48.10033 --lon 17.04217

# set from current vehicle location
python3 scripts/command.py places set school --here

# use in precondition
python3 scripts/command.py precondition add -t 08:00 -d weekdays --place home

Regional Base URLs

| Region | Audience URL | |--------|--------------| | Europe | https://fleet-api.prd.eu.vn.cloud.tesla.com | | North America | https://fleet-api.prd.na.vn.cloud.tesla.com | | China | https://fleet-api.prd.cn.vn.cloud.tesla.cn |

OAuth token endpoint (all regions):

https://fleet-auth.prd.vn.cloud.tesla.com/oauth2/v3/token

Troubleshooting

  • Token expired (401):

    python3 scripts/auth.py refresh
    
  • Vehicle asleep / unavailable:

    python3 scripts/command.py wake
    
  • Command not signed / rejected: Ensure the proxy is running and base_url + ca_cert are configured (step 5).

Archive v1.4.2: 12 files, 33979 bytes

Files: scripts/auth.py (12479b), scripts/command.py (33317b), scripts/start_proxy.sh (3040b), scripts/stop_proxy.sh (1056b), scripts/store.py (4599b), scripts/tesla_fleet.py (3224b), scripts/tesla_oauth_local.py (8710b), scripts/vehicle_data.py (18280b), scripts/vehicles.py (4664b), SETUP.md (5017b), SKILL.md (11714b), _meta.json (134b)

File v1.4.2:SKILL.md


name: tesla-fleet-api description: Use when integrating with Tesla's official Fleet API to read vehicle/energy device data or issue remote commands (e.g. start HVAC preconditioning, wake vehicle, charge controls). Covers onboarding (developer app registration, regions/base URLs), OAuth token flows (third-party + partner tokens, refresh rotation), required domain/public-key hosting, and using Tesla's official vehicle-command/tesla-http-proxy for signed vehicle commands. version: 1.4.2 homepage: https://github.com/odrobnik/tesla-fleet-api-skill metadata: openclaw: emoji: "๐Ÿš—" requires: bins: ["python3", "openssl", "go"] env: ["TESLA_CLIENT_ID", "TESLA_CLIENT_SECRET"] optionalEnv: ["TESLA_AUDIENCE", "TESLA_REDIRECT_URI", "TESLA_DOMAIN", "TESLA_BASE_URL", "TESLA_CA_CERT", "TESLA_ACCESS_TOKEN", "TESLA_REFRESH_TOKEN", "TESLA_SCOPE", "TESLA_PRIVATE_KEY", "TESLA_VEHICLE_COMMAND_VERSION"]


Tesla Fleet API

Control Tesla vehicles via the official Fleet API.

Scripts Overview

| Script | Purpose | |--------|---------| | command.py | Vehicle commands (climate, charging, locks, etc.) | | vehicle_data.py | Read vehicle data (battery, climate, location, etc.) | | vehicles.py | List vehicles + refresh cache | | auth.py | Authentication and configuration | | tesla_oauth_local.py | OAuth helper with local callback server | | start_proxy.sh | Start the signing proxy (for vehicle commands) | | stop_proxy.sh | Stop the signing proxy |


Setup / Configuration

Setup is documented in SETUP.md:

State directory: {workspace}/tesla-fleet-api/

  • config.json (provider creds + non-token config)
  • auth.json (tokens)
  • vehicles.json (cached vehicle list)
  • places.json (named locations)
  • proxy/ (TLS material for signing proxy)

No .env file loading โ€” credentials in config.json or environment variables.


command.py - Vehicle Commands

Execute commands on your Tesla. Vehicle is auto-selected if you only have one.

Usage

command.py [VEHICLE] <command> [options]
  • VEHICLE - Vehicle name or VIN (optional if single vehicle)
  • Commands can be run without specifying vehicle: command.py honk
  • Or with vehicle name: command.py flash honk (vehicle "flash", command "honk")

Climate Control

Start/Stop Climate

command.py climate start
command.py climate stop
command.py flash climate start          # specific vehicle

Set Temperature

command.py climate temps <driver_temp> [passenger_temp]
command.py climate temps 21             # both seats 21ยฐC
command.py climate temps 22 20          # driver 22ยฐC, passenger 20ยฐC

Climate Keeper Mode

command.py climate keeper <mode>

Modes: off, keep, dog, camp


Seat Heater

command.py seat-heater --level <level> [--position <position>]
command.py seat-heater -l <level> [-p <position>]

Levels: | Value | Name | |-------|------| | 0 | off | | 1 | low | | 2 | medium | | 3 | high |

Positions: | Value | Names | |-------|-------| | 0 | driver, front_left, fl | | 1 | passenger, front_right, fr | | 2 | rear_left, rl | | 3 | rear_left_back | | 4 | rear_center, rc | | 5 | rear_right, rr | | 6 | rear_right_back | | 7 | third_left | | 8 | third_right |

Examples:

command.py seat-heater -l high                    # driver (default)
command.py seat-heater -l medium -p passenger
command.py seat-heater --level low --position rear_left
command.py seat-heater -l 2 -p 4                  # medium, rear center
command.py seat-heater -l off -p driver           # turn off

Seat Cooler (Ventilation)

command.py seat-cooler --level <level> [--position <position>]
command.py seat-cooler -l <level> [-p <position>]

Same levels and positions as seat heater.

Examples:

command.py seat-cooler -l medium -p driver
command.py seat-cooler -l high -p passenger

Seat Auto Climate

command.py seat-climate [--position <position>] <mode>
command.py seat-climate [-p <position>] <mode>

Modes: auto, on, off

Examples:

command.py seat-climate auto                      # driver auto
command.py seat-climate -p passenger auto
command.py seat-climate -p driver off             # disable auto

Steering Wheel Heater

command.py steering-heater <on|off>

Examples:

command.py steering-heater on
command.py steering-heater off

Precondition Schedules

Modern API for scheduling departure preconditioning (replaces deprecated set_scheduled_departure).

Add Schedule

command.py precondition add --time <HH:MM> [--days <days>] [--id <id>] [--one-time] [--disabled]
command.py precondition add -t <HH:MM> [-d <days>] [--id <id>]

Days options: | Value | Description | |-------|-------------| | all | Every day (default) | | weekdays | Monday through Friday | | weekends | Saturday and Sunday | | mon,tue,wed,... | Specific days (comma-separated) |

Day names: sun, mon, tue, wed, thu, fri, sat (or full names)

Examples:

command.py precondition add -t 08:00              # every day at 8am
command.py precondition add -t 08:00 -d weekdays  # Mon-Fri
command.py precondition add -t 07:30 -d mon,wed,fri
command.py precondition add -t 09:00 --one-time   # one-time only
command.py precondition add -t 08:30 --id 123     # modify existing schedule
command.py precondition add -t 08:00 --disabled   # create but disabled

Remove Schedule

command.py precondition remove --id <id>

Examples:

command.py precondition remove --id 123
command.py precondition remove --id 1

Charging Control

Start/Stop Charging

command.py charge start
command.py charge stop

Set Charge Limit

command.py charge limit <percent>

Percent must be 50-100.

Examples:

command.py charge limit 80
command.py charge limit 90
command.py flash charge limit 70                  # specific vehicle

Doors & Security

command.py lock                   # lock all doors
command.py unlock                 # unlock all doors
command.py honk                   # honk the horn
command.py flash                  # flash the lights
command.py wake                   # wake vehicle from sleep

With vehicle name:

command.py flash wake             # wake vehicle named "flash"
command.py flash flash            # flash lights on vehicle "flash"

vehicle_data.py - Read Vehicle Data

Fetch vehicle data with human-readable output by default.

Usage

vehicle_data.py [VEHICLE] [flags] [--json]
  • VEHICLE - Vehicle name or VIN (optional if single vehicle)
  • No flags = all data
  • --json = raw JSON output

Flags

| Flag | Long | Data | |------|------|------| | -c | --charge | Battery level, charge limit, charging status | | -t | --climate | Interior/exterior temp, HVAC status | | -d | --drive | Gear, speed, power, heading | | -l | --location | GPS coordinates | | -s | --state | Locks, doors, windows, odometer, software | | -g | --gui | GUI settings (units, 24h time) | | | --config-data | Vehicle config (model, color, wheels) |

Examples

# All data
vehicle_data.py
vehicle_data.py flash

# Specific data
vehicle_data.py -c                        # charge only
vehicle_data.py -c -t                     # charge + climate
vehicle_data.py flash -c -l               # charge + location

# Raw JSON
vehicle_data.py --json
vehicle_data.py -c --json

Sample Output

๐Ÿš— My Tesla (online)
   VIN: 5YJ... (redacted)

โšก Charge State
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  Battery:    [โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘] 78%
  Limit:      80%
  State:      Charging
  Power:      11 kW (16A ร— 234V ร— 3ฯ†)
  Added:      37.2 kWh
  Remaining:  10m
  Range:      438 km (272 mi)
  Cable:      IEC

๐ŸŒก๏ธ  Climate State
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  Inside:     11.9ยฐC
  Outside:    6.0ยฐC
  Set to:     20.5ยฐC
  Climate:    Off

auth.py - Authentication

Manage OAuth tokens and configuration.

Usage

auth.py <command> [options]

Commands

Login (OAuth Flow)

auth.py login

Interactive: generates auth URL, prompts for code, exchanges for tokens.

Exchange Code

auth.py exchange <code>

Exchange authorization code for tokens (non-interactive).

Refresh Tokens

auth.py refresh

Refresh access token. Note: refresh tokens rotate - the new one is saved automatically.

Register Domain

auth.py register --domain <domain>

Register your app domain with Tesla (required for signed commands).

After registration, enroll your virtual key:

https://tesla.com/_ak/<domain>

Show Config

auth.py config

Display current configuration (secrets redacted).

Set Config

auth.py config set [options]

Options:

  • --client-id <id>
  • --client-secret <secret>
  • --redirect-uri <uri>
  • --audience <url>
  • --base-url <url>
  • --ca-cert <path>
  • --domain <domain>

Examples:

# Initial setup
auth.py config set \
  --client-id "abc123" \
  --client-secret "secret" \
  --redirect-uri "http://localhost:18080/callback"

# Configure proxy
auth.py config set \
  --base-url "https://localhost:4443" \
  --ca-cert "/path/to/tls-cert.pem"

tesla_fleet.py - List Vehicles

List vehicles with human-readable output.

python3 scripts/tesla_fleet.py vehicles
python3 scripts/tesla_fleet.py vehicles --json

Sample Output

๐Ÿš— Name:   My Tesla
๐Ÿ”– VIN:    5YJ... (redacted)
๐ŸŸข Status: Online
๐Ÿ‘ค Access: Owner

Configuration / Proxy / File layout

All setup + configuration is documented in SETUP.md.


Regional Base URLs

| Region | Audience URL | |--------|--------------| | Europe | https://fleet-api.prd.eu.vn.cloud.tesla.com | | North America | https://fleet-api.prd.na.vn.cloud.tesla.com | | China | https://fleet-api.prd.cn.vn.cloud.tesla.cn |

OAuth token endpoint (all regions):

https://fleet-auth.prd.vn.cloud.tesla.com/oauth2/v3/token

Troubleshooting

"vehicle unavailable: vehicle is offline or asleep"

Wake the vehicle first:

command.py wake

"command not signed" / "vehicle rejected"

Ensure the signing proxy is running and configured. See SETUP.md ยง Proxy Setup.

Token expired

auth.py refresh

Multiple vehicles

Specify vehicle by name or VIN:

command.py flash climate start
command.py 5YJ... honk

Complete Command Reference

command.py

climate start|stop
climate temps <driver> [passenger]
climate keeper off|keep|dog|camp

seat-heater -l <level> [-p <position>]
seat-cooler -l <level> [-p <position>]
seat-climate [-p <position>] auto|on|off

steering-heater on|off

precondition add -t <HH:MM> [-d <days>] [--id <id>] [--one-time]
precondition remove --id <id>

charge start|stop
charge limit <percent>

lock
unlock
honk
flash
wake

vehicle_data.py

[VEHICLE] [-c] [-t] [-d] [-l] [-s] [-g] [--config-data] [--json]

auth.py

login
exchange <code>
refresh
register --domain <domain>
config
config set [--client-id] [--client-secret] [--redirect-uri] [--audience] [--base-url] [--ca-cert] [--domain]

File v1.4.2:_meta.json

{ "ownerId": "kn7c7fek4a503rbvj0bxbwx6dx7yw25e", "slug": "tesla-fleet-api", "version": "1.4.2", "publishedAt": 1770920505162 }

File v1.4.2:SETUP.md

Tesla Fleet API Skill โ€” Setup Guide

This guide covers setup + configuration for the Tesla Fleet API skill.

If you just want the CLI command reference, see SKILL.md.


Prerequisites

  • Tesla Developer Account + an app created
  • A domain you control (for public key hosting + virtual key enrollment)
  • python3
  • macOS (scripts tested on macOS)
  • For proxy setup: go and openssl (on macOS: brew install go)

State / Files

All runtime state lives in your workspace:

{workspace}/tesla-fleet-api/

Files:

  • config.json โ€” provider creds (client id/secret), non-token config (audience, base_url, ca_cert, redirect_uri, domain)
  • auth.json โ€” tokens (access/refresh)
  • vehicles.json โ€” cached vehicle list
  • places.json โ€” named locations ({"home": {"lat": ..., "lon": ...}})
  • proxy/ โ€” TLS material for the signing proxy
  • *.tesla.private-key.pem โ€” your Tesla EC private key

Credentials come from config.json or environment variables (TESLA_CLIENT_ID, TESLA_CLIENT_SECRET). No .env file loading.


1) Create & host your EC keypair

# Generate P-256 keypair
openssl ecparam -name prime256v1 -genkey -noout -out private-key.pem
openssl ec -in private-key.pem -pubout -out public-key.pem

# Host public key at:
# https://YOUR_DOMAIN/.well-known/appspecific/com.tesla.3p.public-key.pem

Store your private key in the workspace: {workspace}/tesla-fleet-api/YOUR_DOMAIN.tesla.private-key.pem


2) Configure provider credentials

python3 scripts/auth.py config set \
  --client-id "YOUR_CLIENT_ID" \
  --client-secret "YOUR_CLIENT_SECRET" \
  --redirect-uri "http://localhost:18080/callback" \
  --audience "https://fleet-api.prd.eu.vn.cloud.tesla.com"

This writes to {workspace}/tesla-fleet-api/config.json.


3) OAuth login (creates auth.json)

Interactive login (manual code paste):

python3 scripts/auth.py login

Automatic login via local callback server:

python3 scripts/tesla_oauth_local.py --prompt-missing-scopes

4) Register domain + enroll virtual key

python3 scripts/auth.py register --domain YOUR_DOMAIN.com

Then, on your phone (Tesla app installed):

https://tesla.com/_ak/YOUR_DOMAIN.com


5) Proxy Setup (for signed commands only)

Note: The proxy is only needed for sending signed commands to the vehicle (climate, locks, charging, honk, etc.). Reading vehicle data (battery, location, temperatures) works without the proxy โ€” those requests go directly to the Tesla Fleet API.

Install tesla-http-proxy

# Pin to a specific version for supply-chain safety
go install github.com/teslamotors/vehicle-command/cmd/tesla-http-proxy@v0.4.1

This installs tesla-http-proxy to ~/go/bin/. Override the version with TESLA_VEHICLE_COMMAND_VERSION only if you explicitly want a different one.

Generate TLS certificates

mkdir -p {workspace}/tesla-fleet-api/proxy
cd {workspace}/tesla-fleet-api/proxy

openssl req -x509 -newkey rsa:4096 \
  -keyout tls-key.pem -out tls-cert.pem \
  -days 365 -nodes -subj "/CN=localhost"

chmod 600 tls-key.pem

Configure scripts to use the proxy

python3 scripts/auth.py config set \
  --base-url "https://localhost:4443" \
  --ca-cert "proxy/tls-cert.pem"

The ca_cert path is stored relative to the config directory and resolved at runtime.

Start / stop the proxy

Use the convenience scripts:

# Start (auto-detects private key in workspace, or pass path explicitly)
./scripts/start_proxy.sh
./scripts/start_proxy.sh /path/to/private-key.pem

# Stop
./scripts/stop_proxy.sh

The proxy runs in the background on https://localhost:4443. Logs go to {workspace}/tesla-fleet-api/proxy/proxy.log.


6) Test

# Data (no proxy needed)
python3 scripts/vehicles.py
python3 scripts/vehicle_data.py -c

# Commands (proxy required)
python3 scripts/command.py honk

Places (named lat/lon)

# list
python3 scripts/command.py places list

# set explicit coords
python3 scripts/command.py places set home --lat 48.10033 --lon 17.04217

# set from current vehicle location
python3 scripts/command.py places set school --here

# use in precondition
python3 scripts/command.py precondition add -t 08:00 -d weekdays --place home

Regional Base URLs

| Region | Audience URL | |--------|--------------| | Europe | https://fleet-api.prd.eu.vn.cloud.tesla.com | | North America | https://fleet-api.prd.na.vn.cloud.tesla.com | | China | https://fleet-api.prd.cn.vn.cloud.tesla.cn |

OAuth token endpoint (all regions):

https://fleet-auth.prd.vn.cloud.tesla.com/oauth2/v3/token

Troubleshooting

  • Token expired (401):

    python3 scripts/auth.py refresh
    
  • Vehicle asleep / unavailable:

    python3 scripts/command.py wake
    
  • Command not signed / rejected: Ensure the proxy is running and base_url + ca_cert are configured (step 5).

API & Reliability

Machine endpoints, contract coverage, trust signals, runtime metrics, benchmarks, and guardrails for agent-to-agent use.

MissingCLAWHUB

Machine interfaces

Contract & API

Contract coverage

Status

missing

Auth

None

Streaming

No

Data region

Unspecified

Protocol support

OpenClaw: self-declared

Requires: none

Forbidden: none

Guardrails

Operational confidence: low

No positive guardrails captured.
Invocation examples
curl -s "https://xpersona.co/api/v1/agents/clawhub-odrobnik-tesla-fleet-api/snapshot"
curl -s "https://xpersona.co/api/v1/agents/clawhub-odrobnik-tesla-fleet-api/contract"
curl -s "https://xpersona.co/api/v1/agents/clawhub-odrobnik-tesla-fleet-api/trust"

Operational fit

Reliability & Benchmarks

Trust signals

Handshake

UNKNOWN

Confidence

unknown

Attempts 30d

unknown

Fallback rate

unknown

Runtime metrics

Observed P50

unknown

Observed P95

unknown

Rate limit

unknown

Estimated cost

unknown

Do not use if

Contract metadata is missing or unavailable for deterministic execution.
No benchmark suites or observed failure patterns are available.

Machine Appendix

Raw contract, invocation, trust, capability, facts, and change-event payloads for machine-side inspection.

MissingCLAWHUB

Contract JSON

{
  "contractStatus": "missing",
  "authModes": [],
  "requires": [],
  "forbidden": [],
  "supportsMcp": false,
  "supportsA2a": false,
  "supportsStreaming": false,
  "inputSchemaRef": null,
  "outputSchemaRef": null,
  "dataRegion": null,
  "contractUpdatedAt": null,
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Invocation Guide

{
  "preferredApi": {
    "snapshotUrl": "https://xpersona.co/api/v1/agents/clawhub-odrobnik-tesla-fleet-api/snapshot",
    "contractUrl": "https://xpersona.co/api/v1/agents/clawhub-odrobnik-tesla-fleet-api/contract",
    "trustUrl": "https://xpersona.co/api/v1/agents/clawhub-odrobnik-tesla-fleet-api/trust"
  },
  "curlExamples": [
    "curl -s \"https://xpersona.co/api/v1/agents/clawhub-odrobnik-tesla-fleet-api/snapshot\"",
    "curl -s \"https://xpersona.co/api/v1/agents/clawhub-odrobnik-tesla-fleet-api/contract\"",
    "curl -s \"https://xpersona.co/api/v1/agents/clawhub-odrobnik-tesla-fleet-api/trust\""
  ],
  "jsonRequestTemplate": {
    "query": "summarize this repo",
    "constraints": {
      "maxLatencyMs": 2000,
      "protocolPreference": [
        "OPENCLEW"
      ]
    }
  },
  "jsonResponseTemplate": {
    "ok": true,
    "result": {
      "summary": "...",
      "confidence": 0.9
    },
    "meta": {
      "source": "CLAWHUB",
      "generatedAt": "2026-04-17T03:45:58.755Z"
    }
  },
  "retryPolicy": {
    "maxAttempts": 3,
    "backoffMs": [
      500,
      1500,
      3500
    ],
    "retryableConditions": [
      "HTTP_429",
      "HTTP_503",
      "NETWORK_TIMEOUT"
    ]
  }
}

Trust JSON

{
  "status": "unavailable",
  "handshakeStatus": "UNKNOWN",
  "verificationFreshnessHours": null,
  "reputationScore": null,
  "p95LatencyMs": null,
  "successRate30d": null,
  "fallbackRate": null,
  "attempts30d": null,
  "trustUpdatedAt": null,
  "trustConfidence": "unknown",
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Capability Matrix

{
  "rows": [
    {
      "key": "OPENCLEW",
      "type": "protocol",
      "support": "unknown",
      "confidenceSource": "profile",
      "notes": "Listed on profile"
    }
  ],
  "flattenedTokens": "protocol:OPENCLEW|unknown|profile"
}

Facts JSON

[
  {
    "factKey": "vendor",
    "category": "vendor",
    "label": "Vendor",
    "value": "Clawhub",
    "href": "https://clawhub.ai/odrobnik/tesla-fleet-api",
    "sourceUrl": "https://clawhub.ai/odrobnik/tesla-fleet-api",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-04-15T00:45:39.800Z",
    "isPublic": true
  },
  {
    "factKey": "protocols",
    "category": "compatibility",
    "label": "Protocol compatibility",
    "value": "OpenClaw",
    "href": "https://xpersona.co/api/v1/agents/clawhub-odrobnik-tesla-fleet-api/contract",
    "sourceUrl": "https://xpersona.co/api/v1/agents/clawhub-odrobnik-tesla-fleet-api/contract",
    "sourceType": "contract",
    "confidence": "medium",
    "observedAt": "2026-04-15T00:45:39.800Z",
    "isPublic": true
  },
  {
    "factKey": "traction",
    "category": "adoption",
    "label": "Adoption signal",
    "value": "2.5K downloads",
    "href": "https://clawhub.ai/odrobnik/tesla-fleet-api",
    "sourceUrl": "https://clawhub.ai/odrobnik/tesla-fleet-api",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-04-15T00:45:39.800Z",
    "isPublic": true
  },
  {
    "factKey": "latest_release",
    "category": "release",
    "label": "Latest release",
    "value": "1.5.0",
    "href": "https://clawhub.ai/odrobnik/tesla-fleet-api",
    "sourceUrl": "https://clawhub.ai/odrobnik/tesla-fleet-api",
    "sourceType": "release",
    "confidence": "medium",
    "observedAt": "2026-02-13T17:26:28.072Z",
    "isPublic": true
  },
  {
    "factKey": "handshake_status",
    "category": "security",
    "label": "Handshake status",
    "value": "UNKNOWN",
    "href": "https://xpersona.co/api/v1/agents/clawhub-odrobnik-tesla-fleet-api/trust",
    "sourceUrl": "https://xpersona.co/api/v1/agents/clawhub-odrobnik-tesla-fleet-api/trust",
    "sourceType": "trust",
    "confidence": "medium",
    "observedAt": null,
    "isPublic": true
  }
]

Change Events JSON

[
  {
    "eventType": "release",
    "title": "Release 1.5.0",
    "description": "- Dropped the Go runtime dependency; Go is no longer required to use the skill. - Updated required environment variables and optional settings, removing obsolete entries related to signing proxy and public key. - Improved documentation for setup, reflecting dependency changes. - start_proxy.sh script and related requirements simplified due to proxy/signing changes. - Version bumped to 1.5.0.",
    "href": "https://clawhub.ai/odrobnik/tesla-fleet-api",
    "sourceUrl": "https://clawhub.ai/odrobnik/tesla-fleet-api",
    "sourceType": "release",
    "confidence": "medium",
    "observedAt": "2026-02-13T17:26:28.072Z",
    "isPublic": true
  }
]

Sponsored

Ads related to Tesla Fleet Api and adjacent AI workflows.