Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Control Tesla vehicles from macOS via the Tesla Owner API using teslapy (auth, list cars, status, lock/unlock, climate, charging, location, and extras). Use when you want to check your car state or run safe remote commands. Designed for Parth Maniar (@officialpm) with local-only auth caching, confirmation gates for disruptive actions, and chat-friendly status output.
Control Tesla vehicles from macOS via the Tesla Owner API using teslapy (auth, list cars, status, lock/unlock, climate, charging, location, and extras). Use when you want to check your car state or run safe remote commands. Designed for Parth Maniar (@officialpm) with local-only auth caching, confirmation gates for disruptive actions, and chat-friendly status output.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
Author: Parth Maniar โ @officialpm A practical Tesla control skill for Clawdbot built on teslapy.
TESLA_EMAIL env var set (your Tesla account email) Python 3.10+
TESLA_EMAIL="you@email.com" python3 {baseDir}/scripts/tesla.py auth This opens a Tesla login URL. Log in, then paste the callback URL back into the CLI. Token cache: ~/.tesla_cache.json (local only; best-effort chmod 0600) Optional: set MY_TESLA_DEFAULT_CAR to a vehicle display name to pick a default car via env var Or persist a local default with: python3 {baseDir}/scripts/tesla.py default-car "Name" (writes ~/.my_tesla.json; best-effort chmod 0600)
# List vehicles python3 {baseDir}/scripts/tesla.py list python3 {baseDir}/scripts/tesla.py list --json # machine-readable, privacy-safe # Version python3 {baseDir}/scripts/tesla.py version python3 {baseDir}/scripts/tesla.py --version # Debugging # If something fails unexpectedly, add --debug for a full traceback # (or set MY_TESLA_DEBUG=1) python3 {baseDir}/scripts/tesla.py --debug status --no-wake # Pick a car (optional) # --car accepts: exact name, partial name (substring match), or a 1-based index from `list` python3 {baseDir}/scripts/tesla.py --car "Model" status python3 {baseDir}/scripts/tesla.py --car 1 report # Set a default car (used when --car is not passed) python3 {baseDir}/scripts/tesla.py default-car "My Model 3" # One-line summary (best for chat) python3 {baseDir}/scripts/tesla.py summary python3 {baseDir}/scripts/tesla.py summary --no-wake # don't wake a sleeping car # Summary as JSON (privacy-safe) # Unlike `status --json`, this emits a small sanitized object (no location). # Includes `usable_level_percent` when the vehicle reports it. python3 {baseDir}/scripts/tesla.py summary --json python3 {baseDir}/scripts/tesla.py summary --json --raw-json # raw vehicle_data (may include location) # One-screen report (chat friendly, more detail) # Includes battery/charging/climate + (when available) TPMS tire pressures. # Includes "Usable battery" when the vehicle reports it (helpful for health/degradation). # Also includes a quick openings summary (doors/trunk/frunk/windows) when available. # When available, includes a compact seat heater summary line. # When the vehicle reports it, includes scheduled departure / preconditioning / off-peak charging status. python3 {baseDir}/scripts/tesla.py report python3 {baseDir}/scripts/tesla.py report --no-wake # Detailed status python3 {baseDir}/scripts/tesla.py status python3 {baseDir}/scripts/tesla.py status --no-wake python3 {baseDir}/scripts/tesla.py status --summary # include one-line summary + detailed output python3 {baseDir}/scripts/tesla.py --car "My Model 3" status # JSON output (prints ONLY JSON; good for piping/parsing) # NOTE: `status --json` outputs *raw* `vehicle_data`, which may include location/drive_state. # Prefer `summary --json` (sanitized) or `report --json` (sanitized) unless you explicitly need the raw payload. python3 {baseDir}/scripts/tesla.py summary --json # sanitized summary object (no location) python3 {baseDir}/scripts/tesla.py report --json # sanitized report object (no location; includes scheduled charging + charge port state) python3 {baseDir}/scripts/tesla.py status --json # raw vehicle_data (may include location) python3 {baseDir}/scripts/tesla.py report --json --raw-json # raw vehicle_data (may include location) python3 {baseDir}/scripts/tesla.py summary --json --raw-json # raw vehicle_data (may include location) python3 {baseDir}/scripts/tesla.py charge status --json # includes usable battery + (when charging) power details (kW/V/A) # Lock / unlock python3 {baseDir}/scripts/tesla.py lock python3 {baseDir}/scripts/tesla.py unlock # Climate (status is read-only) python3 {baseDir}/scripts/tesla.py climate status python3 {baseDir}/scripts/tesla.py climate status --no-wake python3 {baseDir}/scripts/tesla.py climate on python3 {baseDir}/scripts/tesla.py climate off python3 {baseDir}/scripts/tesla.py climate defrost on python3 {baseDir}/scripts/tesla.py climate defrost off python3 {baseDir}/scripts/tesla.py climate temp 72 # default: ยฐF python3 {baseDir}/scripts/tesla.py climate temp 22 --celsius # Charging python3 {baseDir}/scripts/tesla.py charge status python3 {baseDir}/scripts/tesla.py charge status --no-wake python3 {baseDir}/scripts/tesla.py charge start --yes python3 {baseDir}/scripts/tesla.py charge stop --yes python3 {baseDir}/scripts/tesla.py charge limit 80 --yes # 50โ100 python3 {baseDir}/scripts/tesla.py charge amps 16 --yes # 1โ48 (conservative guardrail) # Scheduled charging (set/off are safety gated) python3 {baseDir}/scripts/tesla.py scheduled-charging status python3 {baseDir}/scripts/tesla.py scheduled-charging status --no-wake python3 {baseDir}/scripts/tesla.py scheduled-charging set 23:30 --yes python3 {baseDir}/scripts/tesla.py scheduled-charging off --yes # Scheduled departure (read-only) # Shows scheduled departure, preconditioning, and off-peak charging flags (when the vehicle reports them). python3 {baseDir}/scripts/tesla.py scheduled-departure status python3 {baseDir}/scripts/tesla.py scheduled-departure status --no-wake python3 {baseDir}/scripts/tesla.py --json scheduled-departure status # Location (approx by default; use --yes for precise coordinates) python3 {baseDir}/scripts/tesla.py location python3 {baseDir}/scripts/tesla.py location --no-wake python3 {baseDir}/scripts/tesla.py location --digits 1 # coarser rounding python3 {baseDir}/scripts/tesla.py location --digits 3 # a bit more precise (still approximate) python3 {baseDir}/scripts/tesla.py location --yes # Tire pressures (TPMS) python3 {baseDir}/scripts/tesla.py tires python3 {baseDir}/scripts/tesla.py tires --no-wake # Openings (doors/trunks/windows) python3 {baseDir}/scripts/tesla.py openings python3 {baseDir}/scripts/tesla.py openings --no-wake python3 {baseDir}/scripts/tesla.py openings --json # Trunk / frunk (safety gated) python3 {baseDir}/scripts/tesla.py trunk trunk --yes python3 {baseDir}/scripts/tesla.py trunk frunk --yes # Windows python3 {baseDir}/scripts/tesla.py windows status python3 {baseDir}/scripts/tesla.py windows status --no-wake python3 {baseDir}/scripts/tesla.py windows status --json # Windows (safety gated) python3 {baseDir}/scripts/tesla.py windows vent --yes python3 {baseDir}/scripts/tesla.py windows close --yes # Seat heaters python3 {baseDir}/scripts/tesla.py seats status python3 {baseDir}/scripts/tesla.py seats status --no-wake python3 {baseDir}/scripts/tesla.py seats status --json # Seat heaters (safety gated) # seat: driver|passenger|rear-left|rear-center|rear-right|3rd-left|3rd-right (or 0โ6) # level: 0โ3 (0=off) python3 {baseDir}/scripts/tesla.py seats set driver 3 --yes # Sentry Mode (status is read-only; on/off safety gated) python3 {baseDir}/scripts/tesla.py sentry status python3 {baseDir}/scripts/tesla.py sentry status --no-wake python3 {baseDir}/scripts/tesla.py sentry on --yes python3 {baseDir}/scripts/tesla.py sentry off --yes # Charge port door python3 {baseDir}/scripts/tesla.py charge-port status python3 {baseDir}/scripts/tesla.py charge-port status --no-wake python3 {baseDir}/scripts/tesla.py charge-port status --json # Mileage tracking (odometer) โ local SQLite python3 {baseDir}/scripts/tesla.py mileage init python3 {baseDir}/scripts/tesla.py mileage record --no-wake --auto-wake-after-hours 24 python3 {baseDir}/scripts/tesla.py mileage status python3 {baseDir}/scripts/tesla.py mileage export --format csv python3 {baseDir}/scripts/tesla.py mileage export --format csv --since-days 7 python3 {baseDir}/scripts/tesla.py mileage export --format json python3 {baseDir}/scripts/tesla.py mileage export --format json --since-ts 1738195200 # Charge port door open/close (safety gated) python3 {baseDir}/scripts/tesla.py charge-port open --yes python3 {baseDir}/scripts/tesla.py charge-port close --yes # Fun / attention-grabbing python3 {baseDir}/scripts/tesla.py honk --yes python3 {baseDir}/scripts/tesla.py flash --yes
Some actions require an explicit confirmation flag: unlock, charge start|stop|limit|amps, trunk, windows, seats set, sentry on|off, honk, flash, charge-port open|close, and scheduled-charging set|off require --yes location is approximate by default; add --yes for precise coordinates (or --digits N to control rounding)
Credentials are cached locally only (~/.tesla_cache.json). Do not commit tokens, logs, VINs, or location outputs.
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.