Ahmadreza Azimi Kohnabi112 downloadsExamined Human dashboards and guarded native EQH data import on desktop and mobile.
Examined Human is a local-first Obsidian plugin for planning, recording, and reviewing a life through one connected body of information.
You write ordinary Markdown forms. Examined Human validates them, asks for confirmation before importing them, and turns the resulting history into a calendar and a set of dashboards for time, commitments, money, food, exercise, and milestones.
The connecting idea is an engagement: anything you meaningfully engage with, such as a person, relationship, course, project, practice, responsibility, hobby, or long-term goal. Sessions, transactions, milestones, and plans can all point to the same engagement.
Examined Human runs on desktop and mobile. Your notes and database remain in your vault. It does not require an account, server, Python installation, or cloud service.
Current release: 0.9.6 Requires Obsidian 1.8.7 or newer
The usual rhythm is:
Daily history acts like a receipt: after a Daily Form for today or a past date has been finalized, it cannot be silently rewritten. Future Daily Forms can be reviewed but cannot be imported. Weekly plans and budgets can be updated by importing the same period again.
If you are new, the shortest useful path is: create and test an empty database, copy the explained Daily Form into your journal workflow, seed one engagement through its Admin Events section, and import that form. You can add foods, accounts, exercises, Weekly plans, and budgets only when you need them.
When Examined Human is available in the Obsidian Community plugins directory:
main.js, manifest.json, and styles.css from the same Examined Human release..obsidian/plugins/examined-human/.Do not copy data.json from another vault. It contains settings that belong to that vault.
Complete these steps in order. The first six establish a real, usable installation. Step 7 is an optional disposable practice run.
Open Settings → Community plugins → Examined Human.
In Database path, enter the location of the database relative to the root of your vault. For example:
EH.db puts it at the vault root.data/EH.db puts it inside a data folder.Do not enter a Windows drive path, an absolute path, or a path outside the vault.
Then choose one route:
.db file.Select Test connection. Continue only after Obsidian reports that the Examined Human database is OK.
If you are connecting an older pre-1.0 database and Settings offers an upgrade, make an independent copy first, preview the upgrade, read the confirmation carefully, and then decide whether to proceed.
In the same settings page, set Journal folder to the vault-relative folder that contains your Daily Notes. Examined Human searches its subfolders too, so a value such as Journal can cover folders like Journal/2026/daily.
Leave the field blank only if you intentionally want the vault root to be the Journal folder. The recommended Daily Note filename is YYYY-MM-DD.md.
The recommended Form discovery option is Only unimported EH Form notes. It lets you explicitly tell Examined Human which notes to inspect and avoids scanning unrelated Markdown.
The alternative, Every note in Journal folder, also considers unmarked notes in the Journal folder. It can be useful during migration, but it is broader and may be slower in a large vault.
EH form to note metadataFor the recommended discovery mode, put this YAML frontmatter at the very top of every note that contains a form:
---
EH form: unimported
---
EH form: true is also accepted. Matching is case-insensitive.
The marker tells the plugin that the note is ready to be discovered:
unimported or true: inspect this note.imported: its importable Daily and Weekly Forms are complete.false: deliberately ignore this note.After all eligible Daily Forms (past or today) and Weekly Forms in a note have been imported, Examined Human normally changes the marker to imported. Budget imports and mutable planning updates do not change it because those plans remain editable.
The repository includes both explained and minimal versions:
Start with the explained forms. Use the minimal forms after the entry formats feel familiar.
Copy the forms into your Obsidian template system or paste them into notes manually. If you do not use the Templater community plugin, replace expressions such as <% tp.file.title %> with the real ISO date yourself.
Keep these structural elements unchanged:
#### EH Daily Form, #### EH Weekly Form, or #### EH Budget Form heading;ENTRIES: markers;#### END marker.A note may contain one form of each kind. The form's internal dates determine what it represents; the filename alone does not.
The current Daily templates intentionally omit sleep_hours, calories, protein_g, studied, worked, and exercised. Those values are calculated during assessment and import, displayed in the report, and stored in the database without requiring duplicate manual entries.
An empty database knows the allowed general types, but it does not know the names from your life. Before logging sessions, create at least one engagement. Add the other kinds of records only when you intend to use their sections:
The quickest first seed is a Daily Form dated yesterday or earlier. Leave its ordinary sections blank and put your creation commands under Admin Events → ENTRIES:. For example, replacing these names and values with real ones:
ENGAGEMENT_CREATE | Learning Examined Human | practice | active |
ACCOUNT_CREATE | Cash | cash | USD |
EXERCISE_CREATE | Walking | cardio
FOOD_CREATE | Oats | grain | 389 | 16.9 | 66.3 | 6.9 | 0.01 | 10.6 | 0 | plain oats | [oatmeal]
If you only want to begin tracking time, the engagement row is enough. Do not invent nutrition figures for real foods; use values you trust.
Open the seed note, run Examined Human: Import Daily Form from Active File, review the validation preview, and confirm the import. Creation rows are staged evidence until this import succeeds.
The full Daily validator stages Admin Events in a disposable copy before resolving the rest of the form. This means the same form may create an engagement, food, account, exercise, type, or alias and then use it in its sessions, meals, transactions, or exercise details. The real database is still changed only after confirmation.
You can later use the Command Center to prepare new records and aliases through forms instead of typing commands manually.
After your minimum seed import succeeds, you may want to explore immediately without filling your real history with experiments.
sandbox/EH-demo.db.Demo Project, Demo Cash, Demo Meal, and Demo Exercise.The demo database is independent. Nothing seeded in your real database is automatically copied into it. You may keep the demo for later practice or delete it after switching back to the real database and verifying the connection.
Before regular use, review these settings:
0 keeps every Examined Human backup; a positive whole number keeps that many newest backups.On Obsidian 1.13 and later, Examined Human preferences are organized into searchable General, Nutrition, Financial, Styling, and Exercise pages. Older supported Obsidian versions render the same preferences as a single categorized page.
Examined Human deliberately separates preparation from import:
EH form marker or the broader Journal-folder mode.Dashboard buttons that say Stage do not finish an import. They add reviewable text to a chosen current or future Daily Form. The database changes only when the appropriate form import later succeeds.
A Daily Form can contain observed metrics, a general daily note, sessions, meals, transactions, valuation rates, exercise details, milestones, Stoicism notes, and Admin Events.
Session rows use either interval | engagement | notes for a typeless session or interval | type | engagement | notes when an explicit session type is needed. The four-field form may also leave the type field blank. Typeless sessions inherit their engagement type for calendar color. If the form contains Exercise Details, exactly one session must use type exercise; all of that form's exercises and sets attach to that session.
Calories and protein are calculated from every structured food row, including snacks, and are displayed to two decimal places. The plugin also derives studied, worked, and exercised from session/engagement types: study or course counts as study, work counts as work, and exercise or fitness plus structured exercise rows count as exercise. Sleep is calculated from matching sleep sessions during a configurable 24-hour assessment window, defaulting to 21:00 on the previous date through 21:00 on the assessed date; a session type, engagement type, or canonical engagement name of sleep qualifies. Split an overnight sleep into one session ending at 23:59 and another beginning at 00:00 on the next date.
If a same-form Admin Event creates a food or food alias used by Meals, use the full Daily import. The separate Meals-only action cannot persist the new food definition by itself and will instead tell you to import the Daily Form first.
Use Examined Human: Import Daily Form from Active File while the note is open, or work from Daily Assessment.
A Weekly Form covers exactly seven days. It holds a direction, commitments, and a planning grid. Import it with Examined Human: Import Weekly Form from Active File or from Weekly Assessment.
Importing records the weekly plan, and its current or future sessions appear directly in the Calendar dashboard even when no Daily Notes have been created yet. The latest imported version of that week is the one the calendar uses.
Sync week is a separate, optional action that can copy current and future planned sessions into empty Daily Form Sessions sections. Use it only when you want those rows materialized in the notes; existing occupied sections are not silently overwritten.
Importing the same starting date again updates that week. Planned sessions remain intentions; completed time comes from historical Daily Forms.
A Budget Form describes targets and expected movements for a non-overlapping period of at least four days. Import it with Examined Human: Import Budget Form from Active File or from the Financial Dashboard.
Negative targets represent expected spending or liabilities; positive targets represent expected income or assets. Expected movements are plans only. They do not create transactions, reminders, or notifications.
Importing the same start and end dates again updates that budget.
The Command Center manages your canonical foods, engagements, exercises, accounts, aliases, and valuation rates. Its actions are intentionally staged into a selected unimported Daily Form so you can read the exact change before importing it.
The Financial Dashboard uses the same pattern for opening balances and reconciliations: it stages a normal, clearly marked transaction in a Daily Form. The Daily Form import is the step that applies it.
After an import succeeds, you have three valid choices:
Remove source material only after confirming that the import succeeded and the information appears correctly. Deleting an unimported form also discards staged changes that have not yet been applied. If automatic cleanup notices that the form changed after validation or cannot identify one exact block, it safely leaves the note untouched; the completed database import is not falsely reported as failed.
Open dashboards from the Obsidian command palette. Obsidian prefixes their commands with Examined Human:.
The calendar shows sessions on a horizontally scrollable sequence of days and a vertical 24-hour timeline. Past days use canonical imported sessions. Future days use only sessions stored from the latest imported Weekly Form, so future Daily Notes cannot accidentally change the plan. Today combines the eligible Daily Form (or today's canonical import) with the Weekly Form: Daily intervals win conflicts, while non-overlapping Weekly sessions remain visible. Click a session for its exact time, duration, type, notes, exercise details, milestones, and any data-quality warning.
Use it to answer: When did I spend time, and what did I spend it on?
Daily Assessment lists discovered forms and imported days, newest first. It previews and validates Daily Forms, imports past dates or today, refuses future dates, and displays the same report used by the active-file import command. That report includes manual and inferred metrics, the session calendar, foods with nutrient totals, transactions with unit totals and valued net flow, exercise sets, and notes. Hard validation errors hide the report and expose the available resolution actions first.
When a form refers to an unknown engagement, food, exercise, or account, Daily Assessment can help stage the missing canonical record or alias into that unimported note. Revalidate after staging.
Use it to answer: Is this day ready to import, and what exactly happened that day?
Weekly Assessment shows the week's direction, commitments, planned sessions, actual time by engagement, and planned-versus-actual differences. For current and future weeks, it can preview and sync the planning grid into empty Daily Form Sessions sections.
Use it to answer: What did I intend to do this week, and where did the week actually go?
The Engagement Dashboard brings everything about one engagement together. Search by its canonical name or an alias, choose a date range, and review its status, dates, session time, activity trend, session types, recent sessions, lifetime milestones, linked financial totals, and transaction ledger.
Use it to answer: What is the complete story of this project, relationship, practice, course, or goal?
The Financial Dashboard shows balances as of a selected date, account and net-worth history, period inflow and outflow, financial activity by engagement, recent transactions, active budget targets, and expected movements. You can inspect one account or all accounts and use native units or your configured valuation view when rates are available.
It can also stage an opening balance or reconciliation into a Daily Form. A period's net flow is activity during that period; it is not the same thing as an account balance.
Use it to answer: What do my accounts show, how did money move, and how does that compare with the plan?
The Nutrition Dashboard shows calorie and protein trends, meal and food breakdowns, diet adherence, data coverage, and leisure-meal debt for assessed days. Snacks contribute to daily calories but do not count directly as one of the three main meal opportunities.
Use it to answer: What did I eat, how complete is the evidence, and am I following the rules I configured?
The Exercise Dashboard shows training days, workout time, detail coverage, exercise volume, performance maxima, distance, measured duration, muscle exposure, and recent workouts. Ordinary exercise sessions still appear even when you did not record structured sets.
Use it to answer: How consistently am I training, and what does the recorded performance show?
The Command Center is the maintenance workspace for engagements, foods, exercises, accounts, aliases, valuation rates, and batches of Admin Events. Search existing records, prepare changes, choose an unimported Daily Form, review the proposed rows, and stage them. Raw Admin Events can also maintain the type vocabularies with SESSION_TYPE_ADD, SESSION_TYPE_REMOVE, ENGAGEMENT_TYPE_ADD, and ENGAGEMENT_TYPE_REMOVE; removal deactivates a type for new input without deleting historical references.
Use it to answer: What canonical names does my system know, and what correction should I stage next?
EH form: unimported in its frontmatter.Use Examined Human: Reload EH.db and refresh all dashboards whenever you want every open view to reread the selected database immediately.
For a manual installation, confirm that .obsidian/plugins/examined-human/ contains main.js, manifest.json, and styles.css directly—not inside another nested folder. Reload Obsidian and check that the plugin is enabled under Community plugins.
Confirm that the Database path ends in .db, is relative to the vault root, and points to the database you intended. For a new installation, create the database before testing it. For an existing database, make sure the file is actually inside this vault.
Check all four boundaries:
EH form: unimported or EH form: true at the top;#### END.If you chose Journal-folder discovery, also verify the configured Journal folder. If you chose the recommended marker-based mode, the form can be anywhere in the vault.
Sessions and plans need a known engagement; transactions also need a known account; meals need a known food; structured exercise rows need a known exercise. Correct a misspelling, use an existing alias, or stage the missing canonical record through Daily Assessment or Command Center, then revalidate.
A full Daily Form may create the missing record or alias under Admin Events and use it elsewhere in that same form. If the Daily report accepts it but the separate Meals panel says Import Daily first, use the main Daily import so the canonical food and meal are committed together.
Use three fields for an ordinary session: interval | engagement | notes. Use four fields only when you need an explicit session type: interval | type | engagement | notes. Typeless sessions inherit the engagement type for calendar color. The older blank-type form, interval | | engagement | notes, is also accepted. Weekly planning-grid cells use semicolons and still reserve their first position for an optional type: ; engagement ; notes.
That is expected. A Daily Form can be finalized only for today or a past date. Future Calendar sessions must come from an imported Weekly Form; wait until the Daily Form's date before importing it as canonical fact.
Close or finish the write in the other SQLite application, then use Examined Human: Reload EH.db and refresh all dashboards. Do not replace the database file while another application still has unfinished changes.
Keep independent vault backups, especially before connecting or upgrading an existing database.
Examined Human does not provide reminders, notifications, automatic exchange rates, market-price fetching, recurring transactions, medical records, recurrence rules, calendar synchronization, or automatic repair of ambiguous old data. Sessions that cross midnight must be split across two dates.
These limits keep the system focused on deliberate recording, reviewable plans, and evidence you control.
Build instructions, validation commands, repository structure, database and import architecture, safety invariants, and release guidance are in DEVELOPMENT.md. User-visible release history is in CHANGELOG.md.
This project began as a fork of seonggoos/obsidian-schedule-calendar. Its Obsidian view scaffolding and overlap-layout foundation were adapted for a different data source and interaction model.
MIT — Copyright (c) 2026 seonggoos and Copyright (c) 2026 OssAhmad.