Remember everything. Miss nothing. Become a superhuman version of yourself.
A bootstrap meta-prompt that turns Claude Code + Obsidian into a second brain that keeps your work life on track.
What it is
Personal OS is built for leaders who are time-poor and information-dense. It ingests your meetings, relationships, decisions, and open loops, keeps them organized, and surfaces them proactively when they matter.
Getting set up
Dead simple. All you need to do is point Claude Code here. → Quickstart
Using it
- Drop meeting notes, recordings, links, documents, and random ideas into
Inbox/and the system processes everything automatically. - Ask questions, surface open loops, and prep for meetings using the built-in slash commands.
- It keeps itself current, learns what matters, and proactively flags stale commitments, relationship drift, and other patterns across your work.
| When | What happens |
|---|---|
| 2am nightly | New notes and transcripts processed into summaries, commitments extracted to open loops, wiki connections made, patterns flagged, indexes refreshed |
| 5am daily | Morning brief generated: open loops with tap-to-close links, today's meetings, recent decisions, relationship health, coaching insight |
| Sunday 8pm | Week-ahead brief generated: 7-day calendar scan, meetings needing prep flagged, focus blocks suggested for deep-work loops |
All three run inside run-nightly.sh. Required Mac setting: System Settings → Battery → Options → "Prevent automatic sleeping when on power adapter"
| Command | What it does |
|---|---|
/personal-os-remember |
Tell the system something important — a decision, a commitment, a relationship note — and it files it correctly |
/personal-os-open-loops [filter] |
Review commitments filtered by person, project, priority, or staleness |
/personal-os-1on1-prep [name] |
Pre-read with open loops, last sessions, and a probing question you haven't asked yet |
/personal-os-week-ahead |
Run the week-ahead review any time, not just Sunday |
/personal-os-cascade |
Draft weekly updates for direct reports, cross-functional partners, and the C-suite |
/personal-os-career-evidence |
Review captured accomplishments, star entries, generate a brag doc |
- Sources are sacred. Raw transcripts and PDFs are never modified after ingestion.
- Context-efficient. Each tier is loaded at the right abstraction level. A daily briefing costs ~3k tokens in context, not 50k.
- Loops close where they open. Every open loop in the morning briefing includes a tap-to-close link. Tap it on your phone — your mail app opens with a pre-filled subject, you send, and the next morning's briefing marks it done. No manual tracking, no re-surfacing things you already handled. Requires Gmail access (any mechanism — MCP, CLI, or equivalent). Skips gracefully if not connected.
Fastest path: Open this repo in Claude Code — it will read personal-os-bootstrap.md and walk you through setup automatically (~20 minutes).
Or manually:
# Clone and run setup (macOS)
git clone https://github.com/jackolicious/personal-os.git
cd personal-os
bash setup.shsetup.sh checks prerequisites, creates your vault at a path you choose, wires up the launchd jobs for 5am briefing and 2am synthesis, and walks you through transcript tool configuration. It takes about 2 minutes.
Then:
cd ~/personal-os # or wherever you chose
claude
# Paste the contents of personal-os-bootstrap.md into the prompt
# Follow phases 1–11 (~20 minutes)Before your first real session:
- Fill in your name, company, start date
- Add your team roster to
People/team.md - Set your 30/60/90 goals in
GOALS.md - Define your strategic pillars in
PILLARS.md - Create your first 1on1 folders with
/personal-os-new-1on1 [name]
Day 1 — seed your system:
Drop any existing notes, transcripts, or PDFs into Inbox/. The next nightly run (2am) processes everything automatically — no pre-sorting required.
Installing into an existing Obsidian vault?
Not recommended — Personal OS adds its own folders and files at the vault root, and a pre-existing CLAUDE.md or .gitignore may conflict. setup.sh will detect this and warn you before proceeding. If you continue, your existing notes won't be touched. Migrate content into Inbox/ gradually as you want it ingested; don't dump everything in at once.
- Claude Code (CLI)
- Obsidian (optional for Day 1, required for mobile sync)
- Python +
pip install markitdown(for PDF ingestion) - An always-on Mac (for nightly automation)
- One AI note-taking tool (see below)
Drop any of these directly into Inbox/ — no subfolders needed:
| Type | Examples |
|---|---|
| Transcripts | Granola exports, Fireflies summaries, Zoom/Otter/Fathom .txt or .md files |
| PDFs | Documents, articles, reports |
| Markdown notes | Reference material, articles you've copied, scratch notes |
| Link files | A .md file with one or more URLs — the nightly job fetches and annotates each one |
The nightly router reads each file once, classifies it, and applies the right workflow. Anything it can't classify lands in Inbox/_unrouted.md and is surfaced in your morning briefing.
Every stakeholder has a Last contact field updated automatically when a session note is processed. The daily briefing flags anyone overdue:
- Direct reports: more than 14 days without contact
- Stakeholders: more than 21 days without contact
Output: "Haven't connected with [Name] in X days — open loops: N"
Obsidian Sync for cross-device access. Set it up when ready. The vault works fine without it on Day 1. For quick capture and briefing delivery to your phone, configure Telegram (/telegram:configure in Claude Code).
One rule: get transcripts into Inbox/. The nightly job handles everything from there.
Most tools support this directly — configure your export folder, webhook, or auto-download to point at Inbox/. Tested with Granola, Fireflies, Zoom AI Companion, Otter, and Fathom. setup.sh walks you through the config for your tool.
Raw meeting transcripts run 5,000–15,000 tokens each. The three tiers solve context cost while preserving auditability:
| Tier | Examples | Token cost | Rule |
|---|---|---|---|
| Sources | Transcripts, PDFs, raw URLs | 5k–15k each | Immutable after ingestion |
| Summaries | Session summaries, source annotations | 300–800 each | Write-once, regeneratable |
| Synthesis | Wiki, profiles, open-loops.json | 100–400 per entry | Append-only, never rewritten |
Workflows load summaries and synthesis, not sources. If synthesis logic improves, any summary can be regenerated from its immutable source.
vault/
├── CLAUDE.md ← Root context (70 lines max, always loaded)
├── GOALS.md ← 30/60/90 objectives
├── HEARTBEAT.md ← Current focus, upcoming meetings, synthesis state
├── PILLARS.md ← Ongoing strategic focus areas with keywords
├── Inbox/ ← Drop zone: transcripts, PDFs, markdown notes, link files
│ ├── _index.md ← Nightly-maintained queue: file, type, status, date added
│ ├── _unrouted.md ← Files the router couldn't classify (surfaced in daily briefing)
│ └── _archive/ ← Processed originals (system-managed)
├── 1on1s/
│ ├── _index.md ← All people: last session, session count, last contact
│ └── [Name]/
│ ├── sessions/
│ │ └── _index.md ← Session list: date, topic, summary link
│ └── ...
├── Meetings/
│ └── _index.md ← Meeting list: date, title, participants, action items
├── Projects/ ← Active initiatives
├── People/ ← Team roster + stakeholder map (with last_contact)
├── Knowledge/
│ ├── annotated/ ← Annotated versions of processed sources (immutable)
│ └── wiki/
│ └── _index.md ← Wiki pages: concepts, sources, last updated
├── Interviews/
│ ├── _index.md ← Active roles: company, stage, status
│ └── [Role]/
│ ├── role-context.md
│ ├── question-bank.md
│ └── notes/
├── _system/ ← System-managed (do not edit directly)
│ ├── data/
│ │ ├── open-loops.json ← Commitments with priority, pillar, and due dates
│ │ ├── decisions.json ← Decision log with review dates
│ │ ├── career-evidence.json ← Captured feedback, outcomes, growth moments
│ │ └── synthesis-log.json ← Incremental processing ledger (hash-based)
│ ├── workflows/ ← Playbooks for each workflow
│ ├── briefings/ ← Auto-generated daily and week-ahead briefings
│ ├── templates/ ← Scaffolds for sessions, summaries, person folders
│ └── logs/ ← Automation logs
├── profile/
│ ├── preferences/ ← Modular preference files, auto-tuned over time
│ └── career/ ← Brag docs saved here
├── run-nightly.sh ← Persistent loop: 2am synthesis, 5am briefing, Sunday 8pm week-ahead
└── .claude/commands/ ← Slash commands: /personal-os-daily-briefing, /personal-os-cascade, etc.
See CONTRIBUTING.md.
This is a meta prompt, not a deployable app. The most valuable contributions are workflow and data model improvements you've actually run in production.
MIT. See LICENSE.