Karlicoss Builds a Programming Interface for Life

Table of content

Karlicoss runs a public experiment: what if you could import your entire digital life into Python?

That’s the premise behind HPI (Human Programming Interface), a Python library with 1.6k GitHub stars that treats personal data as code. Instead of clicking through apps to find what you highlighted last year or which songs you played in 2018, you write Python:

import my.reddit
from collections import Counter
Counter(s.subreddit for s in my.reddit.saved()).most_common(4)

The library pulls from 50+ data sources: Reddit saves, Kindle highlights, Spotify scrobbles, Kobo annotations, Hypothesis highlights, browser history, health data, location logs, chat exports. All of it normalized into Python objects you can query, filter, and combine.

The Philosophy: Parse, Don’t Normalize

The conventional wisdom says: dump everything into a database, then query it. Karlicoss argues against unnecessary databases. Databases force you to flatten your data into rigid schemas before you understand what you need. A Python package lets you keep the original structure and transform it on the fly.

His blog post “The sad state of personal data and infrastructure” catalogs the frustrations:

The answer, in each case: your data is siloed. APIs are annoying. Error handling is painful. Pagination breaks. Auth tokens expire. So most people give up.

HPI handles the annoying parts. You configure where your data lives, and the library deals with parsing, caching, and error recovery.

Promnesia: Your History Follows You

Promnesia (1.9k stars) is a browser extension built on top of HPI. It shows you everywhere you’ve encountered a URL before—which chat you received it in, when you bookmarked it, what you highlighted.

The use case: you land on an article and wonder “have I read this?” Promnesia checks your Reddit saves, Instapaper highlights, Telegram messages, browser history, even your old Twitter likes. It surfaces the context.

This only works because HPI already unified the data. The extension just queries it.

The Extended Mind

Karlicoss describes his digital trace as part of his identity. The term he uses: “extended mind.” Your notes, highlights, saves, and bookmarks form a second memory. But most of that memory is locked in apps you can’t search.

His personal data map shows the full setup: GDPR exports, API scrapers, local databases, all feeding into HPI. The blog documents the whole stack—how to export data from each service, how modules connect, where caching happens.

The Toolbox

Beyond HPI and Promnesia, the ecosystem includes:

All of it open source. All of it designed to work together.

Who’s This For?

HPI isn’t plug-and-play. You need to export your data, configure paths, and probably write some Python. The setup docs walk through the process, but this is still programmer-grade tooling.

That said, the architecture is modular. You don’t need all 50 sources. Start with one—Reddit, maybe, or your Kindle highlights—and expand from there.

The bet: once your data exists as Python objects, building new tools becomes trivial. Want a dashboard? Write a script. Want alerts when patterns change? Write a script. Want to cross-correlate your sleep data with your commit history? It’s just a join.

Your life, queryable.

Topics: personal-data quantified-self data-liberation python org-mode