Manifest-driven
Every card is a single JSON file. Add tracking for a new supplement, a new biomarker, a new mood scale: create a file, refresh the page, you have a card. No code changes, no schema migrations.
Free & open source Self-hosted health tracking
Klebb is a free, open-source, manifest-driven dashboard for tracking anything medical: supplements, peptides, bloods, weight, mood, sleep, whatever matters to you. Drop a JSON file, a card appears. No subscriptions, no database, no cloud, no compromises.
Built by
makeitbreakitfixit.com
confessions of a backyard inventor
What it does
Every card is a single JSON file. Add tracking for a new supplement, a new biomarker, a new mood scale: create a file, refresh the page, you have a card. No code changes, no schema migrations.
Your data lives in plain JSON files on your own machine. No external service knows what you ate, what you took, or how you slept. git diff tells you exactly what changed.
An optional chat agent reads your manifests as context. Ask why your HRV tanked last week, or which supplement stack mapped to your best sleep. Bring your own gateway, any OpenAI-compatible endpoint works.
WebAuthn, no passwords, no email, no SMS codes. One tap on your phone or hardware key and you are in. Multi-instance: every user gets their own isolated dashboard with separate data and credentials.
How it works
A Klebb card is one file. Two halves: meta describes
what it tracks and how to render it; data is the
history. The server reads it, hands it to the browser, and the
right renderer draws the card.
{
"schema": "klebb.datafile.v1",
"meta": {
"id": "weight",
"title": "Body weight",
"unit": "kg",
"view": {
"component": "eh-trend-card",
"goal": 82
}
},
"data": [
{ "date": "2026-05-19", "value": 84.2 },
{ "date": "2026-05-20", "value": 83.9 },
{ "date": "2026-05-21", "value": 83.6 }
]
}
Tech stack
Klebb is what falls out when you refuse to add a framework until you genuinely need one. No bundler, no database, no surprises.
Lit web components loaded straight from esm.sh. No React, no bundler, no build pipeline.
Plain Node.js http. No Express, no ORM. Node 20+.
JSON files on disk. The filesystem is the database; rsync is the backup tool.
WebAuthn passkeys with recovery codes. No passwords stored, ever.
One systemd unit per user, or a single Docker image. Multi-instance isolation comes for free.
AGPL-3.0-only. Run it, fork it, modify it; share what you change.
Plot any series over any window. Spot the curve in your weight, sleep, mood, or bloods at a glance.
Drop in DNA panels, blood results, lab PDFs. Klebbius reads them as context when you chat about your data.
Card types
Klebb cards come in a handful of shapes, each suited to a different kind of thing you might want to track. Pick the shape that fits; the dashboard takes care of how it looks.
83.6kg ▼ 0.6
7-day average 84.1 kg · goal 82.0
For anything you check once a day. Shows the latest reading, which way it's moving, and how close you are to a goal.
Good for weight, sleep score, resting heart rate, blood pressure, anything that's just one number a day.
A list of things you take each day. Tap the circle when you've taken one; tomorrow the list resets clean. Adherence is summed up automatically over time.
Good for supplement stacks, daily medications, morning rituals, evening wind-downs.
One row per item, each with its own cadence and cycle. The ring on the left tracks where you are in the cycle; the dots show this week's plan; the circle on the right is today's dose, waiting to be ticked.
Good for injection protocols, multi-medication routines, anything with mixed daily, weekly, or on-and-off cadences.
One card that pulls together numbers from other cards in your dashboard. The rings layout draws each donor as a concentric gauge against its goal, so an overnight read is one glance.
Good for overnight summaries, training-day dashboards, a recovery-at-a-glance card that draws on sleep, HRV, and resting heart rate.
There's more: checklists, timelines, adherence summaries, charts, plain-text notes; mix as many cards as you like. Drop a JSON file, a card appears.
Klebbius chat
Klebbius is the chat agent that lives in the bottom-right corner of every page. Ask about your numbers, add an entry, or describe a card you want to exist. It writes the JSON, you eyeball the diff, it lands in your dashboard.
Klebb is LLM-first. It runs without Klebbius, but every card and edit becomes hand-authored JSON; the chat is where the day-to-day happens.
Health Auto Export
Apple Health, on your dashboard
Klebb plugs into Health Auto Export, a third-party iOS app that reads from Apple Health and pushes the data wherever you tell it to. Point it at your Klebb instance and every workout, sleep night, step count and heart-rate reading flows in automatically: same JSON-on-disk model as the rest of your dashboard, no Apple cloud required.
"ingest": { "source": "hae", "metric": "..." } to a card and Klebb wires it up. Many cards can share one metric.Trends
Every numeric manifest gets a trend view for free. Pick a window (7 days, 30, 90, all-time), overlay a goal line, and see whether the curve is going where you want it to.
Reports
Klebb takes more than just numbers. Upload your DNA panel, your latest blood test, an MRI summary, a clinician's letter; Klebbius (the optional chat agent) reads them all as context, alongside your tracked manifests.
From the maker
Klebb is built by the author of makeitbreakitfixit.com: confessions of a backyard inventor, write-ups of side projects, and the occasional rant about why software gets in its own way. If you like Klebb, the blog is the same flavour, longer-form.
Read the blogGet started: free, forever
Klebb is free and open source under AGPL-3.0: no licence fee, no subscription, no paid tier. It's a single binary's worth of code and a directory of JSON files. The fastest way to try it is Docker; the most flexible is a systemd unit on whatever Linux box already runs your other things.
docker run -d \
--name klebb \
-p 10002:10002 \
-v $HOME/klebb-data:/app/data \
-e HEALTH_RP_ID=klebb.local \
ghcr.io/aristocles/klebb:latest
Multi-arch image (amd64 + arm64), published to GHCR on every release.
git clone https://github.com/Aristocles/klebb.git
cd klebb
npm install
HEALTH_HOME=./data node server.js
Open http://localhost:10002, register a passkey, drop manifests into ./data.