Adds 14 per-feature docs pages under docs/ covering install, quickstart, people, notes, timeline, search, avatars, imports, vCard export, git sync, markdown storage, doctor, and config. Replaces the placeholder landing page with a single-page Rolodex/index-card site that fetches and renders the docs client-side via marked + highlight.js, with code syntax highlighting and dark-mode support. .nojekyll keeps GitHub Pages serving the markdown files raw to the SPA.
3.7 KiB
Markdown Storage
Clawdex stores everything as files on disk. There is no database, no opaque binary format, no migration step that locks you out. If clawdex disappeared tomorrow, you would still have your data, in plaintext, in a Git repo.
Layout
<repo>/
clawdex.toml # repo-local settings
people/
sally-o-malley/
person.md
avatars/
avatar.jpg
notes/
2026-05-08T09-15-00Z-whatsapp.md
2026-05-09T18-02-00Z-imessage.md
attachments/
... # opt-in; not yet wired into the CLI
index/
emails.json
phones.json
handles.json
.clawdex/
repairs/ # backups written by `doctor --repair`
Slugs are derived from the person's name and are stable: renaming a person
in person.md updates the display name but keeps the folder path. To
rename the slug itself, move the folder by hand and re-run
clawdex doctor.
person.md
---
id: sally-o-malley
name: Sally O'Malley
emails:
- value: sally@example.com
kind: work
phones:
- value: "+15550100"
kind: mobile
tags: [friend, dinner-club]
accounts:
x: { handle: sally }
discord: { id: "234234234234234234", username: "sally" }
created_at: 2026-05-08T09:15:00Z
updated_at: 2026-05-08T09:15:00Z
avatar:
path: avatars/avatar.jpg
mime: image/jpeg
sha256: "..."
source: manual
---
# Sally O'Malley
Met at the dinner club in 2024. Loves Negronis.
YAML frontmatter is parsed strictly first; if that fails, clawdex falls
back to a best-effort scalar salvage and copies the original file under
.clawdex/repairs/ before writing anything new. See
Doctor.
The Markdown body is preserved verbatim across reads, edits, and repair. Your hand-written prose is safe.
Note files
Notes are timestamped markdown files under notes/:
---
id: 2026-05-08T09-15-00Z-whatsapp
kind: dm
source: whatsapp
occurred_at: 2026-05-08T09:15:00Z
created_at: 2026-05-08T09:15:00Z
topics: [dinner, logistics]
---
Follow up about dinner next Thursday.
The filename encodes occurred_at as 2006-01-02T15-04-05Z plus the
source. Sorting by filename and sorting by occurred_at produce the same
order, which is intentional — ls notes/ is a serviceable timeline.
Index files
index/*.json are derived caches:
emails.json— email → person IDphones.json— normalized phone → person IDhandles.json— service handle (X, Discord, …) → person ID
Clawdex rebuilds these on read whenever they're stale. They are safe to delete — the next command will regenerate them. They are not the source of truth: markdown is.
clawdex.toml
A small repo-local config file written by clawdex init:
[git]
remote = "https://github.com/you/backup-clawdex.git"
branch = "main"
[repair]
backup_before_repair = true
auto_repair = false
This is separate from the user-level config at ~/.clawdex/config.toml,
which holds your default repo path, default Google account, and editor
preferences. See Config.
Why markdown
- Diffable. A person rename, a tag change, a note edit — they show up
as readable diffs in
git log. - Editable anywhere. Your editor, GitHub's web UI, mobile markdown
editors, plain
vimover SSH. - Greppable.
rg,awk, andsedwork on the data repo without needing clawdex on the host. - Future-proof. Plain text outlives every CLI built on top of it.