Skip to main content

LifeDB

Your life, one SQLite file — and any AI agent can read it.

GitHub stars GitHub forks License: MIT Python 3.10+

“一切你无法喂给AI的数据,都是白做的。” —— 孙哥

中文 · English · Product Vision

LifeDB life movie — 8 years of GPS tracks igniting on a map

A 32-second movie generated by one command from 295,135 GPS points, 1,668 photos and 125 workouts. Full video →


The problem

You generate more personal data every day than any generation before you — location history, photos, workouts, sleep, heart rate, notes. And it's all stranded: locked in separate apps, on someone else's server, unreachable by the one thing that could actually make sense of it.

Your AI agent can't see any of it. So all of it is wasted.

Google just deleted the Timeline web viewer for billions of users. Your location history shouldn't live on a server that can turn it off tomorrow.

Two promises

🤖 Bring Your Own Agent

LifeDB is not an app. It's a local MCP server — a database your AI agent can actually use.

{ "mcpServers": { "lifedb": { "command": "lifedb-mcp" } } }

That's the entire integration. Claude, or any MCP-capable agent, instantly gains seven tools over your life: what happened that day, where was I that week, build me a map of 2024, how far did I commute. Seven indexed queries — no arbitrary SQL, no full-table scans.

The demos below aren't a product roadmap. They're examples — proof of what agents can build on this contract. The demo layer is yours to extend: connect the MCP, write your app, done.

🔒 Bring Your Own Data

  • Nothing leaves your machine. No cloud, no account, no telemetry, no upload. One SQLite file you own, back up, and delete.
  • Import adapters are plugins — a manifest + a script. The kernel defines one contract; the community builds the connectors. (Want your app supported? See the wanted list below — PRs welcome.)
  • Open format. It's just SQLite. Query it with sqlite3 today, forever. No lock-in, by design.

What people build with it

📍 Day Replay
One day, replayed in real time: the camera follows your GPS across the city and photos pop up where you took them. Pairs with a cross-modal hero-day card →. Single-day replay — camera follows GPS across the city
Watch full →
🧭 Trip Replay
Multi-day trips stitched into one journey: pass a second date and the tracks concatenate — cross-city stops, photo clusters, a single continuous timeline. Multi-day trip replay — one continuous journey
Watch full →
📊 Annual Wrapped
Spotify-Wrapped-style share cards, 9:16, fully self-hosted. Nights witnessed by GPS, kilograms lifted, cities photographed. 2026 annual wrapped — 5 share cards
🗓️ Weekly Review
Every Monday, a card lands in your chat: commute times, step rhythm, training volume, resting HR trend. Generated by a cron job through the same MCP tools an external agent would use. Weekly review — commute, rhythm, training, body

Every one of these is a demo, not a walled garden. All data flows through the same seven MCP tools listed below.

Quick start

pip install git+https://github.com/SPA3K/lifedb.git   # PyPI package coming soon
# or: pipx install git+https://github.com/SPA3K/lifedb.git
life-db init                            # create your timeline.db
life-db ingest events.jsonl             # unified JSONL contract, idempotent
life-db query 2026-10                   # one month, every modality
life-db around 2026-10-13T09:00 --window 2h   # what happened around then
life-db stats                           # coverage & counts

Connect your agent (Claude Desktop / Claude Code / any MCP client):

{
  "mcpServers": {
    "lifedb": {
      "command": "lifedb-mcp",
      "env": { "LIFEDB_DB": "/path/to/timeline.db" }
    }
  }
}

MCP tool surface (v0.1)

Tool What it gives your agent
lifedb_stats Schema version, modality counts, time coverage
lifedb_query_month Full timeline for a month
lifedb_around Cross-modal events around any moment
lifedb_geo_track Raw GPS track for any window (map rendering)
lifedb_export_atlas One-stop pack: track + events + photos
lifedb_ingest_jsonl The only write path — idempotent, dry-run by default
lifedb_adapters Discover installed data-source plugins

Tools only grow, never change or disappear — that's the contract.

Data sources

Adapters are plugins: one JSON manifest + one script, discovered automatically. Currently supported:

Source Data Mode
Phone GPS tracks 11 years of second-level points periodic
训记 (xunji) Strength workouts: sets, volume, movements periodic
Apple Health export Sleep, workout routes, ECG, metrics manual
Google Timeline Stays & segments manual
Photo libraries EXIF GPS → photo layer manual
iCloud sync Automated download pipeline periodic

Wanted — PRs welcome: Hevy / Strong / Strava CSV · GPX / FIT · Google Takeout (new Records.json) · Obsidian vault · Keep / Mi Fitness / Huawei Health · Garmin export. See docs/PRODUCT.md §3.3 for the interface contract — a manifest and a script is all it takes.

Architecture

Your agent        Claude / Cursor / anything that speaks MCP
    ⬇  stdio (localhost only)
MCP server        lifedb-mcp — the contract (7 tools, no arbitrary SQL)
    ⬇
Kernel            SQLite timeline.db + unified JSONL import layer + CLI
    ⬇
Your data         phone GPS · workouts · health · photos · timeline

Docs

⭐ Star it

If your AI agent can finally see your life — star the repo. It's the only distribution a local-first, zero-marketing project gets.

Want an adapter that's missing? Open an issue or grab one from the wanted list above — a manifest and a script is all it takes.

License

MIT — see LICENSE.

Metadata

Release files for lifedb 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lifedb 0.1.0
File Size Uploaded Provenance Actions
lifedb-0.1.0.tar.gz 17.6 kB Without provenance Details for lifedb-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for lifedb 0.1.0
File Interpreter ABI Platform Actions
lifedb-0.1.0-py3-none-any.whl Python 3 none any Details for lifedb-0.1.0-py3-none-any.whl

Total release size: 33.2 kB

Release files / lifedb-0.1.0.tar.gz

Download URL lifedb-0.1.0.tar.gz
Size 17.6 kB
Tags Source
SHA-256 checksum
How to use checksums
88b204f90a54c0b4d32fdd53f296a0f47caaa964215bd86c18270e5771812582
BLAKE2b-256 checksum
How to use checksums
efd98509620791856e12a218a7b727d1e2f2c9a1b58fa793963e6485d981c5f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.12

Release files / lifedb-0.1.0-py3-none-any.whl

Download URL lifedb-0.1.0-py3-none-any.whl
Size 15.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6714481cd5953be4cf6b7675273e1622b2587f6a58dd78fa568cab89997305d0
BLAKE2b-256 checksum
How to use checksums
3860f6448e65697311adb1f3d04cf52235619a4eeec84abb2452107de18ed675
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.12

Security for lifedb 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page