tessie

$npx mdskill add obra/muse-skills/tessie

Use `tessie-api` to list vehicles, inspect status/state, and run explicit Tessie vehicle commands.

SKILL.md

.github/skills/tessieView on GitHub ↗
---
name: "tessie"
description: "Monitor a Tesla vehicle, inspect live state, and run explicit Tessie command endpoints."
metadata: { "includeInPrompt": false }
---

# Tessie (Tesla Vehicle Control)

## Purpose
Use `tessie-api` to list vehicles, inspect status/state, and run explicit Tessie vehicle commands.

## Tooling
Use:

```sh
tessie-api <subcommand> [options]
```

Core subcommands:
- `authorize-url`
- `set-token --token '<TOKEN>'`
- `disconnect`
- `verify`
- `vehicles`
- `status --vin '<VIN>'`
- `state --vin '<VIN>'`
- `command --vin '<VIN>' --command <command_name> [--wait-for-completion] [--extra-query k=v]`
- `request --method GET --path '/<VIN>/battery' [--query k=v] [--json-body '{"...":"..."}']`

JSON output contract:
- `authorize-url`: parse `ok`, `authorize_url`, and `connect_url`
- `set-token`: parse `ok` and `action`
- `disconnect`: parse `ok`, `action`, `path`, and `removed`
- `verify`: parse `ok`, `action`, and `error`
- all read/command calls: parse top-level `ok`, `status`, and `body`
- common `body` fields include `results[]`, `battery_level`, `battery_range`, `status`, and `result`

## Auth
Manage Tessie auth through the CLI helpers only.

Auth contract:
- Run `tessie-api verify` before Tessie API use when connection state is unknown.
- If no API key is configured, run `tessie-api authorize-url`. When `connect_url` is present, replace `<connect_url>` with the returned URL and share exactly this Markdown link: `[Connect Tessie](<connect_url>)`; do not paste the raw URL separately.
- The user can generate a token at `https://dash.tessie.com/settings/api`.
- If the user provides a key through the CLI flow, store it only through `tessie-api set-token --token '<TESSIE_API_TOKEN>'`; do not write auth files directly.
- Remove stored auth only through `tessie-api disconnect`.
- Never print token values.

## Operating Rules
1. If VIN is not given, call `vehicles` and ask user to pick one when multiple exist.
2. Use `status` or `state` before impactful commands when the current vehicle condition matters.
3. `honk`, `flash`, `remote_boombox`, software-update scheduling or cancellation, and fleet telemetry configuration may proceed from a clear, unambiguous request without an additional confirmation. Other vehicle commands and raw API writes use the connector approval gate; invoke the resolved command directly and do not add a duplicate chat confirmation. Never invent a command or infer a physical action the user did not request.
4. Use `command --command <name>` only for explicit Tessie command names. Do not invent a mandatory pre-wake flow or undocumented helper behavior.
5. On HTTP or API errors, report `status` and `body` clearly. Common cases are `401`, `408`, and `503`.
6. Never print token values.
7. Read results preserve Tessie's raw timestamps and add semantic UTC and
   user-local forms for state observations, last-seen values, and record
   creation/update times.

More from obra/muse-skills

SkillDescription
apple_healthkitThe user's synced Apple Health (HealthKit) data: daily metrics (steps, distance, calories, heart rate, HRV, VO2max), sleep sessions (stages, quality, efficiency), and workouts.
artifact_documentCreate, read, edit, or manipulate Word documents (.docx) and Word templates (.dotx). Use whenever a build task's artifact kind is document with the default docx output, or the task mentions a Word doc, .docx, or .dotx, extracts or reorganizes content from one, inserts or replaces images, does find-and-replace in one, or works with tracked changes (redlines) or comments. Covers python-docx generation, raw OOXML editing of existing files, document structure and formatting, and render verification. Not for PDFs, spreadsheets, or Google Docs.
artifact_markdownBuild or revise a plain markdown file (md) deliverable such as notes, a README, meeting minutes, documentation, or text the user will edit or paste elsewhere. Use whenever a build task's artifact kind is markdown. Covers markdown formatting conventions and read-back verification.
artifact_pdfBuild, revise, or manipulate a fixed-layout PDF (report, guide, one-pager, printable document). Use whenever a build task's artifact kind is pdf, a document build's output format is pdf, or the task reads, merges, splits, crops, or fills an existing PDF, including fillable AcroForms. Covers authoring the print-CSS HTML source, rendering, the geometry and validation gates, existing-PDF manipulation and form filling, and delivery under workspace/your_files.
artifact_presentationBuild or revise a slide deck (pptx by default; pdf or html on request). Use whenever a build task's artifact kind is presentation, or the user asks for a deck, slides, or a presentation. Covers per-slide HTML authoring, the StylePlan theme system, font embedding, deck assembly, render gates, and the PPTX export.
artifact_spreadsheetCreate, read, edit, fix, or clean spreadsheet files (.xlsx, .xlsm, .csv, .tsv). Use whenever a build task's artifact kind is spreadsheet, or the task names a spreadsheet file and wants something done to it or produced from it, including restructuring messy tabular data into a proper workbook. Covers openpyxl generation, formulas and recalculation, editing existing workbooks, and the validation gates. Not for tasks whose deliverable is a document, report, or web page that merely contains a table.
artifact_testingVerify an artifact before delivering it - file deliverables (pdf, pptx, docx, xlsx, csv) and web artifacts alike. Use whenever a build is about to return a link, or a build task asks for validation, QA, or a visual check. Covers the per-kind gate scripts, render-and-look verification, and leftover-placeholder scanning.
asana>-
bookingPrimary entry point for direct flight, hotel, restaurant, or event-ticket transactions and for bounded live availability checks delegated by Travel Planning. Always use before provider-specific skills or browser work when the user asks to find live availability or prices, compare bookable options, book, or continue an active booking. Do not use for trip planning itself, broad inspiration, opening hours, schedules, flight status, or other factual questions without transaction intent.
boxSearch, read, upload, download, move, rename, delete, restore, and share Box content; manage comments and metadata.