personal-os-starter

An Obsidian vault that is its own agent harness — you and your AI agent document work as versioned markdown, kept honest by a tiny zero-dependency linter. Agent-agnostic (AGENTS.md + CLAUDE.md). MIT.

Personal OS

A personal knowledge vault that doubles as an agent harness. You — and your AI agent — document projects, incidents, and decisions here as versioned markdown. It opens in Obsidian and backs itself up to a private GitHub repo automatically.

The point: give an agent (Claude, Codex, anything) a repository it can read, extend, and reason about — so your knowledge survives the chat session it was created in. If it isn't written down in the repo, the agent can't act on it.

This is a starter template. Clone it, make it yours, point it at your own private remote. Nothing here is specific to anyone — it ships with the structure and the rules, and none of your data.

Set it up in minutes

See SETUP.md — it's written so you can either follow it yourself or hand the repo to your coding agent and say "set up my Personal OS."

The short version:

# 1. Get the files (use this as a template, or clone then re-point the remote)
git clone https://github.com/<you>/personal-os-starter.git my-personal-os
cd my-personal-os

# 2. Arm the verify hook and check it's healthy
sh harness/install.sh
npm run lint

# 3. Open the folder as an Obsidian vault, install the Git community plugin,
#    and point origin at your own PRIVATE repo. (Details in SETUP.md.)

How it works

  • Open it in Obsidian — Obsidian → Open folder as vault → pick this directory.

  • It backs itself up — the obsidian-git community plugin auto-commits on an interval and pushes to your origin remote. See docs/references/obsidian-git-setup.md.

  • It stays consistent — a zero-dependency linter validates every note's frontmatter, naming, and links:

    npm run lint      # verify — fails on schema errors (pre-commit runs it advisorily)
    npm run garden    # also surface stale notes to tidy up
    

What ships with it

Beyond the note structure, the vault includes the working pieces an agent needs to operate safely — all tested, all optional:

PieceWhy it's here
SOUL.md + hooks/soul-reminder.shThe operator reply contract: every answer opens with DONE/ACTION NEEDED/DECISION NEEDED/BLOCKED/FYI + the bottom line, and ends with a From you: block; facts beat agreement. Loaded every session via CLAUDE.md, re-anchored each turn by the hook, and the linter fails if it's ever unwired. Ships as the real, lived-in file from the source vault — distilled from mining 271 sessions for the moments the operator had to say "I didn't understand". Rewrite Who you are for your own operator.
.claude/skills/checkpoint/ + hooks/checkpoint-restore.shSave a session's state into a note before you /clear, then have the fresh session auto-reload just that section. Continuity lives in git, not in a giant transcript — this is the prime directive applied to the agent's own context.
tools/limit-anchor/Keep your session warm on your schedule: a five-hourly ping that anchors the subscription's rolling usage window to a grid you chose, so a reset never lands mid-afternoon. One command to install on systemd, launchd, or cron. 27 tests.
tools/pii-guard/Visibility-aware pre-commit hook: blocks your personal data and secret-shaped strings from entering a public repo, passes silently on private ones. Fill in its denylist — it ships blank.
.claude/hooks/secret-read-guard.shA PreToolUse hook that denies any agent command which would print a secret inline, and nudges it to the right wrapper. Autonomous (no prompt), fails open. 37 tests.
.claude/skills/secret-use/The wrappers that guard points at — call an API, run a program, send mail or a message with a secret, without the value ever reaching ps, logs, or the transcript. 26 tests.
tools/tg-export/ + telegram-export-miningTurn a Telegram Desktop export into JSONL and mine a 40k-message history inside a token budget, without a naive scraper silently losing a fifth of it. 22 tests.

Everything here is generic. The infrastructure-specific tooling that lives in the vault this was extracted from — ssh wrappers, deploy scripts, monitoring queries — is deliberately left out: those encode hostnames and accounts, and are exactly what pii-guard exists to keep out of a public repo.

Where to start reading

AGENTS.md is the map and SOUL.md is the voice (Claude Code loads both through the CLAUDE.md that imports them). Then docs/core-beliefs.md and docs/conventions.md. ARCHITECTURE.md explains how the vault is built, and docs/references/harness-engineering.md explains the idea behind it.

Credits & inspiration

License

MIT — see LICENSE. Adopt it, fork it, make it yours.

Related

How to Install

  1. Download the ZIP or clone the repository
  2. Open the folder as a vault in Obsidian (File → Open Vault)
  3. Obsidian will prompt you to install required plugins

Stats

Stars

1

Forks

1

License

MIT

Last updated 27d ago

Categories

Tags

aiai-codingai-governanceai-toolsclaude-codecodexharness