| name | tesla |
| version | 3.0.0 |
| description | Complete Tesla Fleet API control - all 66 vehicle commands, energy/Powerwall management, vehicle sharing, charging history, navigation, media, V2G/Powershare, and multi-vehicle management from the terminal. |
| author | mvanhorn |
| license | MIT |
| repository | https://github.com/mvanhorn/clawdbot-skill-tesla |
| homepage | https://developer.tesla.com/docs/fleet-api |
| metadata | {"openclaw":{"emoji":"🚗","requires":{"env":["TESLA_EMAIL"]},"primaryEnv":"TESLA_EMAIL","tags":["tesla","vehicle","iot","fleet-api","electric-vehicle","ev","charging","supercharger","powerwall","solar","energy","automotive","cybertruck","v2g","powershare","navigation","media"],"triggers":["tesla","my car","my vehicle","battery level","charge status","lock my car","unlock my car","car location","where is my car","climate control","precondition","supercharger","powerwall","solar panels","energy usage","fleet api","honk horn","flash lights","charge my car","sentry mode","valet mode","dog mode","camp mode","navigate to","media controls","seat heater","steering wheel heater","charge history","share my car","guest mode","speed limit","software update","boombox","bioweapon defense","cabin overheat","v2g","powershare"]}} |
Tesla
Complete Tesla Fleet API control from OpenClaw. All 66 vehicle commands, energy/Powerwall management, vehicle sharing, charging history, navigation, media controls, V2G/Powershare, and multi-vehicle management.
Fleet API (2026): Tesla has deprecated the legacy Owner API. All vehicles now use the Fleet API at
fleet-api.prd.na.vn.cloud.tesla.com. Vehicles on firmware 2024.26+ require the Vehicle Command Protocol
(VCP). The tesla-fleet-api Python package handles both paths automatically.
Setup
Prerequisites
- Python 3.10+
- A Tesla account with at least one vehicle, Powerwall, or solar system
TESLA_EMAIL environment variable set to your Tesla account email
First-time authentication
TESLA_EMAIL="you@email.com" python3 {baseDir}/scripts/tesla.py auth
Steps:
- The script displays a Tesla login URL
- Open it in your browser, sign in, and authorize the application
- Copy the callback URL from your browser's address bar (starts with
https://auth.tesla.com/void/callback?...)
- Paste it back into the terminal
- Token is cached at
~/.tesla_cache.json for ~30 days with automatic refresh
Environment variables
| Variable | Required | Description |
|---|
TESLA_EMAIL | Yes | Your Tesla account email address |
Token storage: ~/.tesla_cache.json (auto-created on first auth, auto-refreshes)
Vehicle Command Protocol (VCP)
Vehicles running firmware 2024.26 or later require VCP for sending commands. Without VCP configured, status queries will work but commands (lock, unlock, climate, charge start/stop) will fail with a vehicle_command_protocol_required error.
How to check if VCP is needed
python3 {baseDir}/scripts/tesla.py status
If you see a VCP error in the output, your vehicle needs VCP setup.
VCP setup
-
Generate a public/private key pair on your machine:
openssl ecparam -name prime256v1 -genkey -noout -out private_key.pem
openssl ec -in private_key.pem -pubout -out public_key.pem
-
Register your public key with Tesla's servers. This requires creating a third-party application at https://developer.tesla.com/ and uploading your public_key.pem to a .well-known endpoint on your registered domain.
-
Pair your key with each vehicle. Sit inside the vehicle with the key card on the center console, then run:
python3 {baseDir}/scripts/tesla.py vcp-pair --key private_key.pem
Tap "Approve" on the vehicle's touchscreen when prompted.
-
Once paired, commands are end-to-end encrypted between your machine and the vehicle. The tesla-fleet-api package handles signing automatically when it finds your key.
Note: If you are only reading vehicle data (status, location, charge state), VCP is not required. VCP is only needed for sending commands.
Dashboard
Get a unified view of all your vehicles in one command:
python3 {baseDir}/scripts/tesla.py dashboard
Output includes for each vehicle:
- Name, model, and state (online/asleep/offline)
- Battery level and estimated range
- Charging state and time remaining (if charging)
- Location as a human-readable address (reverse geocoded from GPS)
- Lock status (locked/unlocked)
- Climate state (on/off, cabin temperature)
- Software version and any pending updates
- Sentry mode status
Example output:
--- Dashboard ---
1. Snowflake (Model Y - Online)
Battery: 78% (245 mi) Charging: Not charging
Location: 4521 Mercer Way, Mercer Island, WA 98040
Locked: Yes Sentry: On Climate: Off (68F inside)
Software: 2025.48.3 (up to date)
2. Stella (Model 3 - Asleep)
Battery: 92% (310 mi) Charging: Complete
Location: 1200 NE 45th St, Seattle, WA 98105
Locked: Yes Sentry: Off Climate: Off
Software: 2025.48.3 (update available: 2025.50.1)
Multi-Vehicle Management
List all vehicles
python3 {baseDir}/scripts/tesla.py list
Shows all vehicles on your account with name, VIN, model, state, and battery level.
Select a specific vehicle
Use --car or -c with any command to target a specific vehicle by its display name:
python3 {baseDir}/scripts/tesla.py --car "Snowflake" status
python3 {baseDir}/scripts/tesla.py -c "Stella" lock
python3 {baseDir}/scripts/tesla.py --car "Snowflake" climate on
Without --car, commands target your first vehicle.
Set a default vehicle
If you have multiple vehicles and mostly control one, set a default:
python3 {baseDir}/scripts/tesla.py set-default "Stella"
The default persists in ~/.tesla_cache.json. Override it anytime with --car.
Vehicle Commands Reference (66 commands)
Doors and Access
python3 {baseDir}/scripts/tesla.py lock
python3 {baseDir}/scripts/tesla.py unlock
python3 {baseDir}/scripts/tesla.py trunk open
python3 {baseDir}/scripts/tesla.py frunk open
python3 {baseDir}/scripts/tesla.py windows vent
python3 {baseDir}/scripts/tesla.py windows close
python3 {baseDir}/scripts/tesla.py sunroof vent
python3 {baseDir}/scripts/tesla.py sunroof close
python3 {baseDir}/scripts/tesla.py homelink
python3 {baseDir}/scripts/tesla.py homelink --lat 47.57 --lon -122.22
Fleet API endpoints: door_lock, door_unlock, actuate_trunk, window_control, sun_roof_control, trigger_homelink
Charging
python3 {baseDir}/scripts/tesla.py charge start
python3 {baseDir}/scripts/tesla.py charge stop
python3 {baseDir}/scripts/tesla.py charge status
python3 {baseDir}/scripts/tesla.py charge port-open
python3 {baseDir}/scripts/tesla.py charge port-close
python3 {baseDir}/scripts/tesla.py charge limit 80
python3 {baseDir}/scripts/tesla.py charge limit standard
python3 {baseDir}/scripts/tesla.py charge limit max
python3 {baseDir}/scripts/tesla.py charge amps 32
python3 {baseDir}/scripts/tesla.py charge amps 16
python3 {baseDir}/scripts/tesla.py charge schedule add 23:00 06:00
python3 {baseDir}/scripts/tesla.py charge schedule add 01:00 05:00 --days mon,tue,wed,thu,fri
python3 {baseDir}/scripts/tesla.py charge schedule remove 1
python3 {baseDir}/scripts/tesla.py charge schedule list
Fleet API endpoints: charge_start, charge_stop, charge_port_door_open, charge_port_door_close, charge_standard, charge_max_range, set_charge_limit, set_charging_amps, add_charge_schedule, remove_charge_schedule
Deprecation: set_scheduled_charging is deprecated. Use add_charge_schedule / remove_charge_schedule instead.
Climate
python3 {baseDir}/scripts/tesla.py climate on
python3 {baseDir}/scripts/tesla.py climate off
python3 {baseDir}/scripts/tesla.py climate temp 72
python3 {baseDir}/scripts/tesla.py climate temp 22 --celsius
python3 {baseDir}/scripts/tesla.py climate temp 72 --driver-only
python3 {baseDir}/scripts/tesla.py climate max-precondition on
python3 {baseDir}/scripts/tesla.py climate max-precondition off
python3 {baseDir}/scripts/tesla.py climate schedule add 07:30
python3 {baseDir}/scripts/tesla.py climate schedule add 07:30 --days weekdays
python3 {baseDir}/scripts/tesla.py climate schedule remove 1
python3 {baseDir}/scripts/tesla.py climate schedule list
python3 {baseDir}/scripts/tesla.py climate seat-heater driver 2
python3 {baseDir}/scripts/tesla.py climate seat-heater passenger 1
python3 {baseDir}/scripts/tesla.py climate seat-heater rear-left 3
python3 {baseDir}/scripts/tesla.py climate seat-heater rear-center 1
python3 {baseDir}/scripts/tesla.py climate seat-heater rear-right 2
python3 {baseDir}/scripts/tesla.py climate seat-cooler driver 2
python3 {baseDir}/scripts/tesla.py climate seat-cooler passenger 1
python3 {baseDir}/scripts/tesla.py climate steering-heater on
python3 {baseDir}/scripts/tesla.py climate steering-heater off
python3 {baseDir}/scripts/tesla.py climate bioweapon on
python3 {baseDir}/scripts/tesla.py climate bioweapon off
python3 {baseDir}/scripts/tesla.py climate overheat-protection on
python3 {baseDir}/scripts/tesla.py climate overheat-protection off
python3 {baseDir}/scripts/tesla.py climate overheat-protection fan-only
python3 {baseDir}/scripts/tesla.py climate keeper off
python3 {baseDir}/scripts/tesla.py climate keeper keep
python3 {baseDir}/scripts/tesla.py climate keeper dog
python3 {baseDir}/scripts/tesla.py climate keeper camp
Fleet API endpoints: auto_conditioning_start, auto_conditioning_stop, set_temps, set_preconditioning_max, add_precondition_schedule, remove_precondition_schedule, remote_seat_heater_request, remote_seat_cooler_request, remote_steering_wheel_heater_request, set_bioweapon_mode, set_cabin_overheat_protection, set_climate_keeper_mode
Deprecation: set_scheduled_departure is deprecated. Use add_precondition_schedule / remove_precondition_schedule instead.
Security
python3 {baseDir}/scripts/tesla.py sentry on
python3 {baseDir}/scripts/tesla.py sentry off
python3 {baseDir}/scripts/tesla.py valet on
python3 {baseDir}/scripts/tesla.py valet on --pin 1234
python3 {baseDir}/scripts/tesla.py valet off --pin 1234
python3 {baseDir}/scripts/tesla.py valet reset-pin
python3 {baseDir}/scripts/tesla.py pin-to-drive on --pin 1234
python3 {baseDir}/scripts/tesla.py pin-to-drive off --pin 1234
python3 {baseDir}/scripts/tesla.py speed-limit set 70
python3 {baseDir}/scripts/tesla.py speed-limit activate --pin 1234
python3 {baseDir}/scripts/tesla.py speed-limit deactivate --pin 1234
python3 {baseDir}/scripts/tesla.py guest-mode on
python3 {baseDir}/scripts/tesla.py guest-mode off
python3 {baseDir}/scripts/tesla.py remote-start
python3 {baseDir}/scripts/tesla.py erase-data --confirm
Fleet API endpoints: set_sentry_mode, set_valet_mode, reset_valet_pin, set_pin_to_drive, speed_limit_activate, speed_limit_deactivate, speed_limit_set_limit, guest_mode, remote_start_drive, erase_user_data
Navigation
python3 {baseDir}/scripts/tesla.py navigate "1600 Amphitheatre Parkway, Mountain View, CA"
python3 {baseDir}/scripts/tesla.py navigate --gps 47.6062 -122.3321
python3 {baseDir}/scripts/tesla.py navigate --supercharger
python3 {baseDir}/scripts/tesla.py navigate --supercharger "Bellevue"
python3 {baseDir}/scripts/tesla.py navigate --waypoints "Seattle, WA" "Portland, OR" "San Francisco, CA"
Fleet API endpoints: navigation_request, navigation_gps_request, navigation_sc_request, navigation_waypoints_request
Media
python3 {baseDir}/scripts/tesla.py media play
python3 {baseDir}/scripts/tesla.py media pause
python3 {baseDir}/scripts/tesla.py media next
python3 {baseDir}/scripts/tesla.py media prev
python3 {baseDir}/scripts/tesla.py media next-fav
python3 {baseDir}/scripts/tesla.py media prev-fav
python3 {baseDir}/scripts/tesla.py media volume up
python3 {baseDir}/scripts/tesla.py media volume down
python3 {baseDir}/scripts/tesla.py media volume 7
Fleet API endpoints: media_toggle_playback, media_next_track, media_prev_track, media_next_fav, media_prev_fav, media_volume_down, adjust_volume
Other Commands
python3 {baseDir}/scripts/tesla.py honk
python3 {baseDir}/scripts/tesla.py flash
python3 {baseDir}/scripts/tesla.py boombox play
python3 {baseDir}/scripts/tesla.py boombox stop
python3 {baseDir}/scripts/tesla.py set-name "Snowflake"
python3 {baseDir}/scripts/tesla.py software-update start
python3 {baseDir}/scripts/tesla.py software-update schedule 120
python3 {baseDir}/scripts/tesla.py software-update cancel
python3 {baseDir}/scripts/tesla.py wake
Fleet API endpoints: honk_horn, flash_lights, remote_boombox, set_vehicle_name, schedule_software_update, cancel_software_update
Vehicle Sharing (6 endpoints)
Share vehicle access with other Tesla accounts.
python3 {baseDir}/scripts/tesla.py sharing invitations
python3 {baseDir}/scripts/tesla.py sharing invite user@email.com
python3 {baseDir}/scripts/tesla.py sharing redeem <invitation_code>
python3 {baseDir}/scripts/tesla.py sharing revoke <invitation_id>
python3 {baseDir}/scripts/tesla.py sharing drivers
python3 {baseDir}/scripts/tesla.py sharing remove-driver <driver_id>
Fleet API endpoints: GET /invitations, POST /invitations, POST /invitations/redeem, POST /invitations/{id}/revoke, GET /drivers, DELETE /drivers
Vehicle Info Endpoints
python3 {baseDir}/scripts/tesla.py info specs
python3 {baseDir}/scripts/tesla.py info options
python3 {baseDir}/scripts/tesla.py info release-notes
python3 {baseDir}/scripts/tesla.py info alerts
python3 {baseDir}/scripts/tesla.py info service
python3 {baseDir}/scripts/tesla.py info warranty
Fleet API endpoints: GET /specs, GET /options, GET /release_notes, GET /recent_alerts, GET /service_data, GET /warranty_details
Energy Monitoring (Powerwall / Solar) - 12 endpoints
If your Tesla account includes Powerwall or solar products, you can monitor and control them.
List energy sites
python3 {baseDir}/scripts/tesla.py energy list
Shows all energy products on your account (Powerwall, Solar Roof, standalone solar).
Energy status
python3 {baseDir}/scripts/tesla.py energy info
python3 {baseDir}/scripts/tesla.py energy status
Energy history
python3 {baseDir}/scripts/tesla.py energy history --days 7
python3 {baseDir}/scripts/tesla.py energy history --months 1
python3 {baseDir}/scripts/tesla.py energy backup-history
python3 {baseDir}/scripts/tesla.py energy wall-connector-history
Powerwall controls
python3 {baseDir}/scripts/tesla.py energy reserve 20
python3 {baseDir}/scripts/tesla.py energy storm-watch on
python3 {baseDir}/scripts/tesla.py energy storm-watch off
python3 {baseDir}/scripts/tesla.py energy tou-settings --peak-start 16:00 --peak-end 21:00
python3 {baseDir}/scripts/tesla.py energy grid-config --export on --import on
python3 {baseDir}/scripts/tesla.py energy vehicle-charge-reserve 50
python3 {baseDir}/scripts/tesla.py energy mode self-powered
python3 {baseDir}/scripts/tesla.py energy mode time-based
python3 {baseDir}/scripts/tesla.py energy mode backup-only
Fleet API endpoints: GET /products, GET /site_info, GET /live_status, GET /calendar_history?kind=energy, GET /calendar_history?kind=backup, GET /telemetry_history?kind=charge, POST /backup, POST /storm_mode, POST /time_of_use_settings, POST /grid_import_export, POST /off_grid_vehicle_charging_reserve, POST /operation
Charging History (3 endpoints)
View past charging sessions and invoices.
python3 {baseDir}/scripts/tesla.py charging history
python3 {baseDir}/scripts/tesla.py charging history --days 30
python3 {baseDir}/scripts/tesla.py charging history --type supercharger
python3 {baseDir}/scripts/tesla.py charging invoice <invoice_id>
python3 {baseDir}/scripts/tesla.py charging sessions
Fleet API endpoints: GET /charging/history, GET /charging/invoice/{id}, GET /charging/sessions
Charge Station Finder
Find nearby Tesla Superchargers and destination chargers.
python3 {baseDir}/scripts/tesla.py chargers nearby
python3 {baseDir}/scripts/tesla.py chargers nearby --address "Seattle, WA"
python3 {baseDir}/scripts/tesla.py chargers nearby --lat 47.6062 --lon -122.3321
python3 {baseDir}/scripts/tesla.py chargers nearby --type supercharger
python3 {baseDir}/scripts/tesla.py chargers nearby --type destination
python3 {baseDir}/scripts/tesla.py chargers nearby --availability
Example output:
Superchargers near Snowflake (4521 Mercer Way, Mercer Island, WA):
1. Tesla Supercharger - Bellevue, WA (3.2 mi)
1234 Bellevue Way NE - 12 stalls (8 available)
250 kW - Open 24/7
Navigate: https://www.google.com/maps/dir/?api=1&destination=47.6101,-122.2015
2. Tesla Supercharger - Renton, WA (5.8 mi)
800 Rainier Ave S - 8 stalls (5 available)
150 kW - Open 24/7
Navigate: https://www.google.com/maps/dir/?api=1&destination=47.4799,-122.2034
Navigate to charger
python3 {baseDir}/scripts/tesla.py chargers navigate 1
V2G / Powershare
Tesla's vehicle-to-grid (V2G) and Powershare features allow compatible vehicles to export energy back to the home or grid.
Status
python3 {baseDir}/scripts/tesla.py powershare status
Compatibility
- Cybertruck: V2G program available in Texas (launched Feb 2026). Requires Powershare Home Backup Gateway.
- Powerwall 3: Native bidirectional capability with compatible vehicles.
- Telemetry:
PowershareStatus field available via Fleet API telemetry streaming.
Deprecation Warnings
The following Fleet API endpoints are deprecated and will be removed in a future API version:
| Deprecated Endpoint | Replacement | Notes |
|---|
set_scheduled_charging | add_charge_schedule / remove_charge_schedule | New schedule endpoints support multiple schedules and day-of-week filtering |
set_scheduled_departure | add_precondition_schedule / remove_precondition_schedule | New schedule endpoints support multiple schedules and day-of-week filtering |
The skill uses the new endpoints by default. If you have scripts using the old schedule charge-window or schedule precondition syntax, they have been migrated to the new API automatically.
Location
python3 {baseDir}/scripts/tesla.py location
python3 {baseDir}/scripts/tesla.py location --gps-only
The location command reverse geocodes GPS coordinates to a human-readable street address using the Nominatim API (OpenStreetMap, no API key needed). Falls back to raw GPS if geocoding fails.
Error Recovery
Authentication expired
If your token has expired (after ~30 days without use), you will see:
Error: Token expired or revoked
Fix: Re-authenticate:
TESLA_EMAIL="you@email.com" python3 {baseDir}/scripts/tesla.py auth
Vehicle asleep
Vehicles go to sleep after ~15 minutes of inactivity to save battery. The script automatically wakes the vehicle before sending commands, but if wake fails:
Error: Vehicle did not wake up within 30 seconds
Fix: Try again - the vehicle may need more time. The script retries up to 3 times with 10-second intervals:
python3 {baseDir}/scripts/tesla.py wake
python3 {baseDir}/scripts/tesla.py status
If the vehicle is in a deep sleep state (e.g., parked for days), it may take up to 2 minutes to wake. The script handles this automatically with exponential backoff.
VCP not configured
If you see:
Error: vehicle_command_protocol_required
Your vehicle's firmware requires VCP for commands. See the VCP setup section above. Note that read-only operations (status, location, charge status) still work without VCP.
Command timeout
If a command times out:
Error: Command timed out after 30 seconds
The vehicle may be in an area with poor cellular connectivity. The command may still execute - check status before retrying. Common in underground parking or remote areas.
Rate limiting
The Tesla Fleet API enforces rate limits. If you see:
Error: 429 Too Many Requests
Wait 60 seconds before retrying. Avoid polling status more frequently than once per minute.
Vehicle offline
If the vehicle shows as "offline", it has no cellular connection. Commands cannot be sent until it reconnects. This can happen in:
- Underground parking garages
- Remote areas without cell coverage
- When the 12V battery is very low
No fix except waiting for the vehicle to regain connectivity.
Example Chat Usage
Ask naturally and the skill handles the rest:
- "Show me my Tesla dashboard"
- "Is my Tesla locked?"
- "Lock Stella"
- "What's Snowflake's battery level?"
- "Where is my Model Y?"
- "Turn on the AC in Stella and set it to 72"
- "Honk the horn on Snowflake"
- "Start charging my car"
- "Set the charge limit to 80%"
- "Open the frunk"
- "Set the charge amps to 16"
- "Turn on sentry mode"
- "Put Stella in dog mode"
- "Enable camp mode"
- "Turn on bioweapon defense mode"
- "Set a speed limit of 65 mph"
- "Enable valet mode with PIN 1234"
- "Navigate to Pike Place Market"
- "Send the nearest Supercharger to my car's nav"
- "Navigate with stops through Portland and San Francisco"
- "Play next track"
- "Set volume to 5"
- "Turn on the seat heater for the driver"
- "Turn on the seat cooler for the passenger"
- "Turn on the steering wheel heater"
- "Set cabin overheat protection to fan only"
- "Enable PIN to drive"
- "Start remote drive"
- "Precondition my car for 7:30 AM on weekdays"
- "Schedule charging between 11 PM and 6 AM"
- "Find the nearest Supercharger"
- "How much solar am I generating right now?"
- "What's my Powerwall battery at?"
- "Set Powerwall to self-powered mode"
- "Turn on storm watch"
- "Show my charging history"
- "Who has access to my car?"
- "Invite user@email.com to drive my Tesla"
- "Remove the guest driver"
- "Rename my car to Thunder"
- "Install the software update now"
- "Schedule the software update for 2 hours from now"
- "Cancel the software update"
- "Play the boombox"
- "Open the garage door"
- "What are my car's specs?"
- "Show the release notes"
- "Any recent alerts on my car?"
- "What's my warranty status?"
- "What's my Powershare status?"
- "Show my Wall Connector charging history"
API Reference
This skill uses the Tesla Fleet API:
- Endpoint:
fleet-api.prd.na.vn.cloud.tesla.com
- Auth: OAuth2 via
TESLA_EMAIL with token cached locally
- Python package:
tesla-fleet-api (handles Fleet API + VCP automatically)
- Docs: https://developer.tesla.com/docs/fleet-api
The Fleet API replaced the legacy Owner API (tesla-api.timdorr.com) which is no longer functional.
Command coverage (66 vehicle commands)
| Category | Commands | Count |
|---|
| Doors/Access | door_lock, door_unlock, actuate_trunk (front/rear), window_control, sun_roof_control, trigger_homelink | 6 |
| Charging | charge_start, charge_stop, charge_port_door_open, charge_port_door_close, charge_standard, charge_max_range, set_charge_limit, set_charging_amps, add_charge_schedule, remove_charge_schedule | 10 |
| Climate | auto_conditioning_start, auto_conditioning_stop, set_temps, set_preconditioning_max, add_precondition_schedule, remove_precondition_schedule, remote_seat_heater_request, remote_seat_cooler_request, remote_steering_wheel_heater_request, set_bioweapon_mode, set_cabin_overheat_protection, set_climate_keeper_mode | 12 |
| Security | set_sentry_mode, set_valet_mode, reset_valet_pin, set_pin_to_drive, speed_limit_activate, speed_limit_deactivate, speed_limit_set_limit, guest_mode, erase_user_data, remote_start_drive | 10 |
| Navigation | navigation_request, navigation_gps_request, navigation_sc_request, navigation_waypoints_request | 4 |
| Media | media_toggle_playback, media_next_track, media_prev_track, media_next_fav, media_prev_fav, media_volume_down, adjust_volume | 7 |
| Other | honk_horn, flash_lights, remote_boombox, set_vehicle_name, schedule_software_update, cancel_software_update | 6 |
| Subtotal | | 55 |
| Sharing | GET/POST /invitations, POST /invitations/redeem, POST /invitations/{id}/revoke, GET /drivers, DELETE /drivers | 6 |
| Vehicle Info | GET /specs, /options, /release_notes, /recent_alerts, /service_data, /warranty_details | 6 |
| Total vehicle endpoints | | 67 |
Plus 12 energy endpoints and 3 charging history endpoints for a complete Fleet API integration.
Privacy and Security
- All credentials are stored locally on your machine only
- OAuth2 refresh token cached in
~/.tesla_cache.json
- No data is sent to any third party
- VCP commands are end-to-end encrypted between your machine and the vehicle
- Reverse geocoding uses OpenStreetMap Nominatim (sends only GPS coordinates, no account data)
- Tokens auto-refresh for ~30 days; re-auth required if unused for longer
- PIN-protected commands (valet, speed limit, pin-to-drive) require explicit PIN entry
erase_user_data requires --confirm flag to prevent accidental data loss