Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions .agents/skills/agentdrive/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: agentdrive
description: Use AgentDrive to read a personal vehicle and send parked commands through the agentdrive program. Use when the user asks about battery, climate, lock state, tyre pressure, a health check, the daily vehicle report, a coarse area, an in-car charging timetable, charging current, a departure time that preconditions the cabin, sentry mode, seat or steering heat, defrost, cabin preconditioning, the rear trunk, the front trunk, remote start, or a parked command such as flash lights, lock, or charging. Also use it when the user has more than one car or a family member asks for an action the owner must approve. Do not sign vehicle commands in this skill.
description: Use AgentDrive to read a personal vehicle and send parked commands through the agentdrive program. Use when the user asks about battery, climate, lock state, tyre pressure, a health check, the daily vehicle report, a coarse area, an in-car charging timetable, charging current, a departure time that preconditions the cabin, sentry mode, seat or steering heat, defrost, cabin preconditioning, the rear trunk, the front trunk, remote start, or a parked command such as flash lights, lock, or charging. Also use it when the user has more than one car, a family member asks for an action the owner must approve, whether the battery is enough for a trip, a charge limit, charging habits, a home tariff, or a weekly, monthly, or yearly chart. Do not sign vehicle commands in this skill.
---

# AgentDrive
Expand Down Expand Up @@ -41,7 +41,7 @@ Security trade-off of a shared key: every agent that can read the private key fi
3. `agentdrive where` — a coarse area: suburb or locality, state or region, and country. It does not wake a sleeping vehicle and it does not send a command. A rounded point is sent to Nominatim. `agentdrive where --precise` prints precise latitude and longitude and a map link when the car is already online. It still does not wake the car. Precise coordinates are not written to the local history. Do not copy them into memory.
4. A vehicle command only after doctor and check have finished, and only when the user asks. Park and speed 0 are required. Unlock, turning sentry off, the rear trunk, the front trunk, remote start, charging changes, and setting or removing a departure schedule need a fresh confirmation. A schedule cannot supply that confirmation and cannot run sentry off, the trunk, the front trunk, remote start, or a departure schedule change.

`agentdrive sentry-on` and `agentdrive sentry-off` change sentry mode. Both wake a sleeping car: if the vehicle list says the car is not online, they send one wake and poll for up to 45 seconds, then send the signed command. `sentry-off` needs a fresh confirmation that names turning sentry off, for example `I confirm turn sentry off`. A schedule cannot supply that confirmation and cannot run `sentry-off`. `agentdrive check`, `agentdrive report`, `agentdrive where`, and history do not wake a sleeping car.
`agentdrive sentry-on` and `agentdrive sentry-off` change sentry mode. Both wake a sleeping car: if the vehicle list says the car is not online, they send one wake and poll for up to 45 seconds, then send the signed command. `sentry-off` needs a fresh confirmation that names turning sentry off, for example `I confirm turn sentry off`. A schedule cannot supply that confirmation and cannot run `sentry-off`. `agentdrive check`, `agentdrive report`, `agentdrive where`, history, `agentdrive advice`, and `agentdrive tariff` do not wake a sleeping car. Advice does not change a charge limit, a timetable, or preconditioning.

`agentdrive seat-heat`, `agentdrive steering-heat`, `agentdrive defrost-on`, `agentdrive defrost-off`, and `agentdrive precondition` are parked climate commands. They use the same confirmation pattern as climate on, climate off, and set temperature. `seat-heat` takes a seat the signed tool accepts (`front-left`, `front-right`, `2nd-row-left`, `2nd-row-center`, `2nd-row-right`, `3rd-row-left`, `3rd-row-right`) and a level (`off`, `low`, `medium`, or `high`). `steering-heat` is `on` or `off`. Defrost is max defrost, on or off, for the front and rear together. `precondition` starts cabin preconditioning now. It does not add a departure schedule. A departure time is `agentdrive departure`.

Expand Down Expand Up @@ -110,6 +110,16 @@ On install, schedule a routine that runs `agentdrive check --json` every 30 minu

On install, create one daily job. Run `agentdrive report-schedule`. The default is 07:30 local time and enabled, until the user changes it. The job runs `agentdrive history due` and you send that usage briefing. On Monday it is the previous week, on the 1st it is the previous month, and on 1 January it is the previous year. Every other morning it is the previous day. The command reads saved history only. It does not wake the car. This one morning job is enough. A short tip is included only on some mornings, and the same tip is not repeated for two calendar months. A service reminder is included when one is due and was not sent in the last two months. On a Monday weekly briefing, include one new official item from the Tesla site for the profile country when `history due` prints one. The item is a short summary plus the official link. When that part is absent, send the briefing without it. Do not add a second morning job, and do not fill the gap with a usage tip. `agentdrive news` prints the same official item on demand and prints nothing when there is nothing new. `agentdrive report` is the live parked snapshot. Run it when the user wants the car's current status, and send the skip line when the car is asleep.

A weekly, monthly, or yearly briefing prints a summary and a `Chart:` path. Attach that PNG to the message. The `Dashboard:` path is one local HTML file with week, month, and year views. It works offline. Do not upload the history database or the history key. The summary names kilometres, trips, average kilometres per day, charges, kWh added, the previous period, and coverage. History is opportunistic, not a continuous record. Say so when the briefing says coverage is incomplete.

## Trip and charging advice

`agentdrive advice trip <km>` answers whether the battery is enough for that many kilometres. It uses a non-waking reading when the car is already online, and otherwise the last saved battery. It learns battery percent per kilometre from saved trips. If fewer than three usable trips are saved, say that plainly and do not invent a consumption figure. It also suggests an everyday charge limit, usually 80%, and a higher limit only before a long trip. When a departure schedule exists and it is cold or hot, it suggests preconditioning. Advice only. Do not change the charge limit, start preconditioning, or edit a departure schedule unless the user asks, and then use the existing command and confirmation.

`agentdrive advice charge` flags often charging to 100% and leaving it, often dropping very low before charging, and charging in a peak window. Store the owner's home hours with `agentdrive tariff set off-peak HH:MM-HH:MM` and `agentdrive tariff set peak HH:MM-HH:MM`. `--price` is optional, per kWh. `agentdrive tariff show` prints them. The file is `$AGENTDRIVE_HOME/tariff.yaml`. Suggest moving scheduled charging into the cheap window when the advice says so. Do not run `charge-schedule set` unless the user asks, and then it still needs a fresh confirmation. A schedule cannot supply that confirmation.

Pass `--car <nickname>` when several cars are saved. Advice and charts stay with that car. With one car, do not pass `--car`.

`agentdrive history trips`, `history charges`, and `history snapshots` read the same saved history. `agentdrive tips` says whether a tip is due. `agentdrive service` shows kilometres since a tyre change or a service the user told you about. Log that with `agentdrive service log rotation`, `replacement`, or `maintenance`. If no odometer is saved yet, wait for the next online check or report, then log it. That does not wake the car.

If the user asks for a different time, run `agentdrive report-schedule set HH:MM` and move the job to that time. If the user asks to turn the briefing off, run `agentdrive report-schedule disable` and remove the job. `agentdrive report-schedule enable` turns it back on. AgentDrive only stores the time in the private config home. It does not run in the background and it does not update the job for you. A host cron can use the example line the schedule command prints. Do not install a crontab unless the user asked for cron.
Expand Down
4 changes: 3 additions & 1 deletion .agents/skills/agentdrive/prompts/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@ AgentDrive does not run that job and does not install cron.
Then read `agentdrive report-schedule`. The default is 07:30 local time and enabled.
Create one daily job at that time that runs `agentdrive history due` and send me that usage briefing.
On Monday send the previous week, on the 1st the previous month, and on 1 January the previous year.
Every other morning send the previous day. `agentdrive report` is the live snapshot when I want the car's current status, including the skip line when the vehicle is asleep.
Every other morning send the previous day. When a weekly, monthly, or yearly briefing prints a Chart path, attach that PNG. The Dashboard path is a local HTML file. Do not upload the history database.
If I ask whether the battery is enough for a trip, run `agentdrive advice trip <km>`. If I ask about charging habits or cheap hours, run `agentdrive advice charge`. Save home tariff hours with `agentdrive tariff set` when I give you the times. Advice does not change the car. A charging change still needs my confirmation.
`agentdrive report` is the live snapshot when I want the car's current status, including the skip line when the vehicle is asleep.
If I later ask for a different time, run `agentdrive report-schedule set HH:MM` and update the job.
If I ask to turn the briefing off, run `agentdrive report-schedule disable` and remove the job.
AgentDrive stores the time and does not run in the background.
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ config/runtime.yaml
/cars.yaml
/family.yaml
/requests.json
/tariff.yaml

# Editor and OS noise
.DS_Store
Expand Down
11 changes: 10 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Say it in a sentence. The AI agent does the rest.

**Get a health alert when something new needs you.** Tyre pressure, a low battery, a charge problem, or the car left unlocked or open. You hear about it when it is new. The same alert then stays quiet until it clears and comes back.

**Review how the car was used.** Ask for a usage review, or receive a morning briefing: the previous day, the previous week on Monday, the previous month on the 1st, and the previous year on 1 January. Some mornings include a short tip, a service reminder when one is due, and on Monday one official Tesla note when there is something new.
**Review how the car was used.** Ask for a usage review, or receive a morning briefing: the previous day, the previous week on Monday, the previous month on the 1st, and the previous year on 1 January. A week, a month, or a year includes a short summary and a chart saved on this computer. Ask whether the battery is enough for a trip, or whether charging habits and your home electricity hours suggest a change. Some mornings include a short tip, a service reminder when one is due, and on Monday one official Tesla note when there is something new.

## A conversation

Expand All @@ -57,6 +57,15 @@ Alerts: none
Tip: You do not need to memorize commands. Say what you want in plain words. The AI agent turns that into AgentDrive.
```

On Monday the briefing is the previous week and can look like this. Illustrative sample. The figures are sample data, not a vehicle reading or a transcript.

```text
Summary: 210 km driven, 9 trips, 30 km per day. Charges: 4, energy added 48.0 kWh, average 12.0 kWh per charge.
Compared with the previous week (2026-10-26 to 2026-11-01): 210 km versus 180 km, 9 trips versus 8, 48.0 kWh versus 40.0 kWh.
Coverage is incomplete: saved readings on 5 of 7 days. History is opportunistic, not a continuous record.
Chart: /home/example/briefings/weekly-2026-11-02.png
```

## How to start

Have an AI agent that can run shell commands. Paste the prompt below. Then only handle the confirmations it asks for. About an hour, mostly approvals: you accept the disclaimer, approve a GitHub login, create the Tesla developer app, sign in to Tesla in the browser, and approve the key in the Tesla app.
Expand Down
Loading
Loading