An opinionated, agentic life-OS for Claude Code. A lived-in scaffold, not a starter kit — every file shape, skill, and review cadence comes from running it for real, not from speculation.
A "life-OS" is a personal operating system in markdown: a vault for journaling, decisions, projects, notes, and people — paired with daily, weekly, and quarterly review skills that keep it from rotting.
Built for solo knowledge workers, researchers, engineering leads, founders, and PIs juggling many threads — anyone who already lives in markdown and wants an AI to enforce review discipline.
This is an artifact, not a project. Fork freely (CC BY 4.0). Issues and PRs are handled best-effort -- open one if something's broken or you've got an idea you want to share, but no SLA. If something here is wrong for your life, don't wait on me and upstream.
A scripted /morning — 30-second loop:
Then read examples/ for filled-in samples of every file kind: a real-feeling now.md, a populated inbox.md, a substantive daily journal entry, a /weekly-review output, a prospective decision and the same decision revisited three months later, an atomic note, and a person record. Templates show you the shape; examples show you the standard.
Most public Claude Code vault templates are scaffolds. They look great at launch and rot within 2-3 months because they don't include the feedback layer — the periodic audit, the decision revisit, the quarterly forced rewrite. This one does.
Specifically:
- A vault audit skill (
/audit) that scores the vault, flags stale goals / broken wiki-links / orphan notes / decisions missing revisit dates, and writes the audit log toresearch/vault-audits/so trends are visible across runs. - Prospective decision capture (
/decide) in Patrick Collison / Farnam Street format: alternatives, prediction at 30/90/365 days, confidence, worst case, what would change my mind, revisit date. - Decision revisit (
/decide-revisit) — the periodic accounting of "what I predicted vs what actually happened." Most templates have decisions; almost none revisit them. - A real quarterly review (
/quarterly-review) that forces either a goals.md rewrite or formal legacy acceptance — the most common failure mode is a stale annual plan that never gets honestly re-evaluated. - A "critical partner not completer" philosophy wired into CLAUDE.md, with concrete push-back examples baked into every skill prompt.
Friday, 4:17 pm. /weekly-review fires from a scheduled routine. It reads the last seven daily journals, the inbox, now.md, and the GitHub state. Three minutes later it surfaces: you've mentioned the same blocked migration three times this week without progress, two inbox items have aged past 14 days, and a decision you captured in April has a revisit date that just passed. It drafts week-19.md, updates now.md, and forces one question: make the migration call now or formally park it past Q3? You pick. The week closes.
Tuesday, 9:00 am. /morning ran while you were still on coffee. It pulled today's calendar, scanned email for actionable bullets, read yesterday's journal, and proposes three priorities. One of them has been on the list for three days — it asks you directly: do it today or defer past this week? You decide. The journal file is written. You're done in five minutes.
After 90 days, you'll have ~12 weekly reviews, 3-8 decisions captured prospectively, 30+ atomic notes, and a now.md that a colleague could read to brief themselves in 60 seconds.
| Tool | What it gives you | What's missing (that LifeOS adds) |
|---|---|---|
| Obsidian + Daily Notes plugin | Markdown vault, wiki-links, graph view, daily template | No skills, no review cadence, no decision-revisit loop, no critical-partner AI |
| Notion + AI | Database + AI for one-shot Q&A | Not a file system, not git-friendly, no enforced rhythm, hard to run scheduled agents on |
| Mem / Reflect / similar | Daily journal + AI search | Closed format, no decision records, no audit loop, can't customize the skills |
| Bullet journal + a habit tracker | Discipline, no software | No knowledge graph, no AI partner, no automated weekly synthesis |
LifeOS is markdown + git + skills. Nothing proprietary. The discipline is enforced by the skills, not by your willpower.
# 1. Clone (use either)
gh repo clone seandavi/lifeos-template ~/Documents/lifeos
# or:
git clone https://github.com/seandavi/lifeos-template.git ~/Documents/lifeos
cd ~/Documents/lifeos
# 2. From within Claude Code (anywhere), run:
/init
# Answers a few questions (vault path, name, timezone, email tooling)
# and substitutes <VAULT_ROOT> throughout the skill files + CLAUDE.md.
# 3. Tour the system:
/orient
# 5-minute walkthrough of the layers and skills.
# 4. Start the daily rhythm:
/morning
# (the next morning)That's it. Everything else is on-demand or scheduled.
| Layer | What | Files / Skills |
|---|---|---|
| Foundation | Who you are, where you're going | plan.md, values.md, journal/{{YYYY}}/goals.md, now.md, CLAUDE.md |
| Knowledge | What you know | notes/, research/, decisions/, people/, projects/, wiki/, raw/, templates/ |
| Connections | External state coming in | calendar/export-calendar.sh, scripts/email-scan.sh, scripts/meeting-ingest.py |
| Execution | Rituals that run on a cadence | /morning, /end-of-day, /weekly-review, /meeting-prep, /decide |
| Feedback | The layer that prevents rot | /audit, /decide-revisit, /quarterly-review |
Plus two bootstrap skills (/init, /orient) for getting set up. Each skill self-documents in .claude/skills/<name>/SKILL.md — read those for the full step lists.
Minimum viable path: Claude Code + git. Everything else is optional and swappable.
This template was built on macOS, so the calendar and email integrations default to macOS tools. None of them are essential — each has a documented swap-out point. Plan to spend ~30 minutes adapting the Connections layer if you're on Linux or Windows.
| Dependency | What for | Required? | Cross-platform swap |
|---|---|---|---|
| Claude Code | Skill runtime | Yes | macOS, Linux, Windows (WSL) |
git |
Vault is a git repo | Strongly recommended | Universal |
icalBuddy (brew install ical-buddy) |
Calendar → markdown | No — calendar export is optional | Linux: gcalcli or khal. Windows: PowerShell + Outlook COM, or gcalcli under WSL. Rewrite calendar/export-calendar.sh to your tool's output. |
osascript + macOS Mail.app |
Email scan (AppleScript bridge) | No — email scan is optional | Linux: notmuch, mu, or mbsync + IMAP. Windows: PowerShell + Outlook COM, or Gmail/Outlook web APIs. Rewrite scripts/email-scan.sh to emit the same markdown shape. |
gemini CLI |
LLM that filters the raw email dump into actionable bullets | No — swap via EMAIL_LLM env var |
Any LLM CLI works: claude -p, ollama, llm (Simon Willison's), or any OpenAI-compatible tool. |
gh CLI |
GitHub state in /weekly-review |
No — skill skips if not authed | Universal, or remove the gh calls |
You can edit this vault in any markdown-aware tool. The two most common choices:
Obsidian renders [[wiki-links]] natively, shows the connection graph, and works directly on the file system — no import/export. Setup:
- Install Obsidian.
- Open Obsidian → "Open folder as vault" → select this vault's root.
- Recommended core plugin tweaks (Settings → Core plugins):
- Enable: Daily notes (point to
journal/{{year}}/{{month}}/with templatetemplates/daily-journal.md) - Enable: Templates (folder:
templates) - Enable: Graph view (the wiki-links pay off here)
- Enable: Backlinks
- Disable: File recovery (the git history serves this purpose better)
- Enable: Daily notes (point to
- Recommended community plugins (optional):
- Dataview — query the vault as a database (e.g., list all open decisions, all "Active" projects)
- Calendar — sidebar calendar that opens daily notes
- Periodic Notes — extends Daily Notes with weekly/monthly/quarterly variants matching this template's structure
.obsidian/workspace.jsonis gitignored (volatile UI state — changes every time you close Obsidian). The rest of.obsidian/(your config + graph settings) is tracked.
Markdown works fine; wiki-links won't auto-resolve in preview, but extensions like Markdown All in One, Foam, or Dendron add link support.
For visual graph: keep Obsidian open alongside as a graph-viewer-only.
Works perfectly. The wiki-links are just [[text]] patterns; grep + project-wide search gets you 90% of the connection navigation.
By default, the skills are user-invoked (/morning, /weekly-review, etc.). To run them automatically — for example, nightly /meeting-prep while your laptop is closed, or Friday /weekly-review at 4pm — use Claude Code Routines (cloud-scheduled agents) or /loop for in-session repetition.
Read: Claude Code Scheduled Tasks docs
Suggested baseline schedule (paste each into /schedule once /init is done):
/schedule nightly meeting prep — run /meeting-prep at 9:47pm local every day
/schedule weekly review nudge — run /weekly-review at 4:17pm local every Friday
/schedule monthly audit — run /audit at 9:13am local on the 1st of every month
/schedule decision revisit — run /decide-revisit at 9:23am local on the 15th of every month
/schedule quarterly review — run /quarterly-review at 9:33am local on the 1st of January, April, July, October
(Off-zero minute marks intentionally — avoids the global cron load spike on :00.)
Don't schedule /end-of-day or /decide. Those are user-driven: fire when you're wrapping up for the day, or when a decision actually surfaces in conversation.
The CLAUDE.md is the operating manifest — read it for the long version. The short version:
- Critical partner, not helpful completer. Skills push back. They name what's being avoided. They say "looks good" only when something is actually good.
- The constraint is the design discipline. Daily Franklin journal + weekly review + monthly audit + quarterly rewrite is enough scaffolding to prevent drift without becoming busywork.
- The feedback layer is non-negotiable. Anyone can build a vault; few build the audit/revisit/quarterly loop that keeps it from rotting.
- Real users, named, from day one. The skills assume the vault is in active use, not theoretical.
Everything is editable. A few specific levers:
- Skill names. Flat names (
/morning,/audit) by default. If you mix this vault with other skill collections and worry about collisions, rename them in.claude/skills/<name>/SKILL.md'sname:field —lifeos-morning, or anything you prefer. Plugin-stylelifeos:*namespacing is the right pattern if you eventually distribute this as a Claude Code plugin. - Cadence. The weekly review fires on Fridays in the default schedule. Move it to Sunday if that fits better. Some people prefer monthly over weekly; that works too — just delete
/weekly-reviewand rely on/audit+/quarterly-review. - Layers. If you don't need the
wiki/(structured domain knowledge) orraw/(source ingest), delete them. The other skills don't depend on them. (See "Extending LifeOS" below for what they're for.) - Diary.
personal/diary.mdis optional. If you don't want it, delete the file and remove Step 3 from the morning skill.
LifeOS ships with the daily/weekly/quarterly rhythm and the workhorse layers (notes/, decisions/, people/, projects/). Beyond that, the vault is a markdown directory tree — you can layer in any pattern that fits how you work. The empty wiki/ and raw/ directories are an invitation, not a requirement.
wiki/ and raw/ are present but unused by any shipped skill. The intended pattern, modeled on Andrej Karpathy's LLM Wiki gist:
- Drop source material (papers, transcripts, articles) into
raw/<domain>/. - Use Claude Code (or any LLM CLI) with a domain-specific prompt to extract structured entries into
wiki/<domain>/entities/,wiki/<domain>/concepts/,wiki/<domain>/sources/. - Cross-link entries via
[[wiki-links]]. Over time, the wiki becomes a queryable knowledge graph for that domain.
This isn't shipped as a skill because wiki ingest is fundamentally bespoke per domain — a generic prompt either does nothing useful or imposes a schema that doesn't fit your work. Write your own /wiki-ingest skill once you know what your domain's schema should be. If wiki/ and raw/ aren't useful to you, delete them — no other skill depends on them.
This is the canonical example of how LifeOS extends: pick a pattern from the field, decide what fits your work, add a directory and (optionally) a skill, leave the rest of the system alone.
- Zettelkasten (Niklas Luhmann; popularized by Sönke Ahrens) — atomic notes with strict ID conventions and dense linking. The
notes/directory already gestures at this; add anotes/MOC/(Maps of Content) sub-pattern if you want stricter Zettelkasten discipline. - PARA (Tiago Forte) — Projects / Areas / Resources / Archive. The template uses Projects and a lightweight Areas notion via
now.md. Full PARA addsareas/andarchive/directories and adapts/weekly-reviewto scan them. - Evergreen notes (Andy Matuschak) — concept-oriented notes that develop over time rather than dated journal entries. Complementary to (not a replacement for) the daily journal.
- Digital gardens (Maggie Appleton) — public, linked notes published as a website. Tools like Quartz or Obsidian Publish can publish a LifeOS vault directly with minimal config.
The pattern across all of these: pick what fits how you actually think; ignore the rest.
Built by Sean Davis on top of Anthropic's Claude Code. Influenced by:
- John Carmack's
.planfiles - Benjamin Franklin's morning/evening questions and virtues system
- Patrick Collison's decision-revisit principle ("good at re-deciding")
- Andrej Karpathy's LLM Wiki gist (raw → wiki → schema pattern)
- Nick Milo's Linking Your Thinking (atomic notes + connection-as-thinking)
- Tiago Forte's BASB (with the AI-second-brain caveat)
- Max Frenzel's daily AI review system
CC BY 4.0. See LICENSE. If you ship a meaningful adaptation publicly, link back as a courtesy.