EVBook
Open source · Apache-2.0 · Tesla today, more to follow

The digital book of your EV's life.

Drives, charging, trips, battery health, efficiency and costs — logged from your own account and kept in your own hands. Self-hosted with none of the self-hosting: one Cloudflare Worker, one SQLite database, one command to deploy.

Two cars and three years of history, already loaded. No sign-up.

Everything your car did, made legible.

EVBook logs your car without keeping it awake — a vehicle state machine with careful sleep-preservation rules — and turns that log into the screens below.

Drives

Route maps with speed, power, battery and temperature charts, GPX export, and filters and presets that follow you across pages.

Charges

Energy, cost and AC/DC split, charging curves, per-session cost editing and geofence-based pricing rules.

Battery health

Usable capacity and degradation trends, consumption by outside temperature — the panel that tells winter apart from wear — plus idle loss and firmware history.

Trips & places

The drives of one journey put back together — route, stops, charges on the way and what it all cost — over named geofences with a map editor and per-location pricing.

Statistics & history

Distance, energy, cost and consumption by day, week, month or year in your own time zone — and one band of asleep/awake/driving/charging for "what happened last Tuesday".

Your data, exportable

Import your history from another logger and watch it replay through the real state machine. Every table is a CSV download away, and there is a read-only JSON API.

Why EVBook

TeslaMate proved a self-hosted logger can be gentle to the battery and thorough with the history. Tessie showed how effortless the experience can be. EVBook is an attempt at both, on infrastructure you do not have to operate.

Aspect EVBook TeslaMate Tessie
Runs on Your Cloudflare account, or any VPS Your server Their cloud
Stack to operate One Worker + one SQLite database Elixir + PostgreSQL + Grafana + MQTT
Setup One command, or one guided agent chat Docker Compose, reverse proxy, auth Sign-up
Running cost Free on Cloudflare's free tier Server + upkeep Monthly subscription
Maintenance None — no OS, no database upgrades, no backups to schedule Image pulls, Postgres upgrades, backups None (managed)
Updates Noticed by the app; one click installs them Manual Managed
Your data Your account; full CSV export Your server Their servers
Keeps the car asleep Yes Yes Yes

Deploy your own in four commands

The deploy provisions the D1 database and the R2 bucket by name in your account, and the worker applies its own migrations — so the same unmodified configuration deploys into any Cloudflare account.

npm install
npx wrangler login
npx wrangler secret put ENCRYPTION_KEY   # a long random string
npx wrangler secret put APP_PASSWORD     # what you log in with
npm run deploy

Prefer a server? A VPS with Docker works too — one container, one SQLite file.

  1. Or let an agent do it Point Claude Code at the bundled evbook-deploy skill and ask it to deploy. It provisions, migrates, sets secrets and verifies — without ever asking you to paste a secret into the chat.
  2. Connect your car Open the URL, log in, and paste a Tesla access + refresh token pair. Your cars appear within seconds.
  3. Keep your encryption key safe It encrypts your Tesla tokens at rest. Losing it means signing in to Tesla again — your logged history is never affected.

See it with three years of data.

The demo is the whole application against a generated world — a 2019 Model 3 that commutes and road-trips, and a 2022 Model Y on school runs and summer holidays, with seasonal weather, a fading battery and real firmware history.