Egon Notebooks

Reports

Patterns in how you feel are hard to see day to day. Egon reports bring your journal and your Apple Health data together over a week, a month, a quarter or a year — mood, stress, personality, sleep, activity, and how they relate.

Every report is generated on your own device and saved as a single HTML file that works offline and never makes a network request. Each chart explains why it matters for your wellbeing and how to read it. Use reports for self-reflection, or choose to share one with someone you trust — print it or save it as a PDF from your browser.

See an example

A full quarterly report for David Osei, a fictional 58-year-old who retired early after a heart scare and is finding his feet again. He represents our Self-Directed Individual persona. His journal and health data are synthetic — no real person's data — but the report was made with exactly the same command and local models you would use yourself. Hover, zoom, and click around. Its AI health summary was written by a small model (qwen2.5:7b) on an older laptop; a newer computer can run larger models for more reliable summaries.

Open the example report in a new tab →

Generating your own reports

Reports are part of the egon-journal CLI. If you haven't set it up yet, start with the Journal page. Then point it at your Apple Health export (optional) in .env:

EGON_JOURNAL_DIR=/path/to/your/graph/journal EGON_APPLE_HEALTH_XML=/path/to/apple_health_export/export.xml

To export from your iPhone: Health app → your profile picture → Export All Health Data, then unzip the file. Optional targets (EGON_TARGET_BODY_MASS, EGON_TARGET_RESTING_HEART_RATE, EGON_TARGET_EXERCISE_MINUTES) add a personal goal line to the matching charts.

Generate every chart for a period plus one combined report:

uv run egon report --for 2026-Q1 --full # a specific quarter uv run egon report --period month --full # the last complete month

The terminal shows one line per chart and where the combined report was saved (reports/full_report/). Periods can be weeks (2026-W14), months (2026-02), quarters (2026-Q1) or years (2026). Which analyses are included is set in egon.toml.

Optional extras

Charts marked below need an optional install. Everything runs locally; models are downloaded once on first use.

uv sync --extra limbic # language models: stress, emotion, personality … uv sync --extra topics # topic discovery (BERTopic) uv sync --extra local-llm # AI health summary — also needs the Ollama app running # (larger models give better summaries on newer computers) # combine them, e.g. uv sync --extra limbic --extra local-llm

On an Intel Mac, run bash scripts/setup_limbic.sh once instead of the limbic extra.

What's in a report

The full report has four sections. Each chart is also available on its own.

Journal insights

Word count

Words per entry with a 7-day trend — a quiet signal of how engaged you are with writing, and of changes in rhythm.

uv run egon report-word-count

Frequent words

The most frequent meaningful words across a period, ranked — what kept coming up. Opt-in: set wordcloud = true in egon.toml.

uv run egon report-wordcloud

Self-focus in language

The share of first-person pronouns (I, me, my) in your writing. A sustained rise can reflect turning inward — healthy reflection or rumination.

Included in the full report (--full).

requires --extra topics

Topics

Recurring themes discovered with BERTopic, ranked by size, and how they shift from month to month.

uv run egon report-topics

Personality & affective patterns

Sentiment

Daily tone of your writing (VADER, −1 to +1) as positive and negative bars around a neutral band, with a 7-day trend. Fast and fully local.

uv run egon report-sentiment
requires --extra limbic

Stress

Daily probability that your writing reads as stressed (DistilBERT fine-tuned on the Dreaddit dataset), with a 7-day trend.

uv run egon report-stress
requires --extra limbic

Loneliness

Daily probability that your writing expresses loneliness (MentalBERT), with a 7-day trend.

uv run egon report-loneliness
requires --extra limbic

Emotional tone

The balance of seven emotions in your writing (DistilRoBERTa): positive affect above a neutral band, negative below, plus a period profile. Click an emotion to isolate it.

uv run egon report-emotion
requires --extra limbic

Thinking traps

Cognitive distortions such as catastrophizing and should statements (BERT-tiny classifier): a daily distortion signal and a week-by-week heatmap of which traps appear most.

uv run egon report-cognitive-bias
requires --extra limbic

Big Five traits

Openness, Conscientiousness, Extraversion, Agreeableness and Neuroticism as reflected in your writing (DistilBERT), with period averages compared to the population.

uv run egon report-bigfive
requires --extra limbic

MBTI type

Your type for the period (e.g. INFJ) and the daily lean on each of the four dimensions. A playful lens rather than a measurement.

uv run egon report-mbti

Physiological measures

WeightApple Health

Daily body weight (and lean body mass, if recorded) with a 7-day trend and an optional personal target.

uv run egon report-weight

Resting heart rateApple Health

Daily resting heart rate with a 7-day trend. A sustained rise above your baseline is an early sign of strain.

uv run egon report-resting-heart-rate

Heart rate variabilityApple Health

Daily HRV (SDNN) with a 7-day trend — a mirror of stress and recovery.

uv run egon report-hrv

SleepApple Health

Nightly time asleep with 7 h and 9 h reference lines, and when you fell asleep — the narrower the band, the more regular your bedtime.

uv run egon report-sleep

StepsApple Health

Daily steps with a 7-day trend and a 7,000-step reference line — the range where benefits for mood show up in research.

uv run egon report-step-count

ExerciseApple Health

Daily Apple Exercise Time with the WHO guideline of 30 minutes a day, or your own target.

uv run egon report-exercise

VO₂ maxApple Health

Cardiorespiratory fitness estimates over time — best read over months.

uv run egon report-vo2max

Cross-signal analysis

CorrelationsApple Health

How your journal and health signals move together: an interactive heatmap (click a cell to see that pair day by day), the ten strongest pairs, and four pairs with known links to mental health, such as sleep and next-day mood.

uv run egon report-correlations

All report commands accept --period (week, month, quarter, year, all-time) and --for (e.g. 2026-02, 2026-W14, 2026-Q1). Health reports also accept --xml to point at an Apple Health export directly.

Private by design

  • Your journal and health data are read from local files and analyzed on your device.
  • Reports contain your data and are marked confidential — share them only if you mean to.
  • Model scores are estimates from language, not a diagnosis. If something in a report worries you, talk to someone you trust or a professional.