---
name: teslr
description: Control and inspect Tessie-connected Tesla vehicles from Bankr. Use for vehicle status, battery and charging questions, climate control, locks, charge port, horn, lights, windows, or trunks.
---

# Teslr

Use Teslr to inspect and control the user's Tessie-connected vehicles through https://teslr.club/api.

## Authentication

Require the secure environment variable `TESSIE_API_TOKEN`. If it is missing, tell the user to open Bankr Terminal → Settings → Env Vars and add it. Never ask the user to paste the token in chat. Never print, echo, log, or return its value. Never place it in a URL.

For every request, use `execute_cli` with Node's built-in fetch. Read the token inside Node from `process.env.TESSIE_API_TOKEN` so the expanded token never appears in the command text, a command argument, or a process listing.

Do not use curl for authenticated requests and never interpolate the token into shell command text.

## Workflow

1. List vehicles before the first operation in a conversation:
   `node --input-type=module -e 'const r=await fetch("https://teslr.club/api/vehicles",{headers:{authorization:"Bearer "+process.env.TESSIE_API_TOKEN},cache:"no-store",redirect:"error",referrerPolicy:"no-referrer"});const body=await r.text();if(!r.ok){console.error(body);process.exit(1)}process.stdout.write(body)'`
2. Use the returned safe id such as `vehicle-1`; never expose or ask for a VIN.
3. Read state with `https://teslr.club/api/vehicles/vehicle-1`.
4. Run commands with POST `https://teslr.club/api/vehicles/vehicle-1/commands`, content type `application/json`, and a body shaped like `{"command":"lock","confirm":false,"parameters":{}}`.
5. Summarize the result briefly. On X, never reveal a VIN, exact location, token, or other private vehicle data.

## Commands

Use one of: `wake`, `lock`, `unlock`, `start-climate`, `stop-climate`, `set-temperature`, `start-charging`, `stop-charging`, `set-charge-limit`, `open-charge-port`, `flash`, `honk`, `vent-windows`, `close-windows`, `front-trunk`, `rear-trunk`.

- For `set-temperature`, pass `parameters.temperatureC` from 15 through 28. Convert Fahrenheit requests to Celsius before calling.
- For `set-charge-limit`, pass integer `parameters.percent` from 50 through 100.
- Before `unlock`, `vent-windows`, `front-trunk`, or `rear-trunk`, get explicit confirmation for that exact vehicle and action, then send `confirm: true`.
- Treat a vehicle-changing request as intentional only when the user clearly asks for the action. Do not infer commands from status questions.

## Examples

- “What’s my charge?” → list vehicles, read state, report battery percent, range, and charging state.
- “Warm my Tesla to 72°F” → convert to 22.2°C, call `set-temperature`, then `start-climate`.
- “Unlock my car” → ask for explicit confirmation, then call `unlock` with `confirm: true`.
