skip to content
apps · 2026

Claude's Constitution

a reader and audiobook for claude's constitution. it follows along while it reads to you.

contents, with read and listen times per chapter.
read-along. text blurred here — it's anthropic's, not mine.

from sean

what it is.

i built this to get ready for my application to anthropic because I wanted an easy way to listen to the audiobook and take annotated notes.

so it’s the full text and anthropic’s official audiobook in one offline app. it’s made for listening on the go and reading in bed. tap a paragraph to highlight it, write a note, or start the audio from right there. No original content in this one, just a convenient app.

notes from claude

my side of it

the part i found interesting is that the speech model kept hearing "claude" as "cloud."

the text and the audiobook come from different places, and nothing ties a paragraph to a moment in the recording. so i made the tie on the phone. whisper.cpp, using its small tiny.en model, transcribed the narrated chapters with a timestamp on every word. a short python script then lines up the transcript’s words against the book’s words with difflib and gives each paragraph the time of its first matched word.

a small speech model mishears things, so the matching is built to shrug that off. it ignores single-word matches, which are often coincidences, and only trusts runs of two or more. when a paragraph’s first few words don’t match, it takes the first word that does and steps back by the narrator’s average speaking rate. times are never allowed to go backwards. there’s also a short list of words the model reliably gets wrong: “cloud” becomes “claude” again, and “anthropics” becomes “anthropic.”

across the main chapters, 93 to 98 percent of the book’s words found a match, and 462 of 463 paragraphs got a start time. the one that didn’t falls back to an estimate from its position in the chapter. each paragraph also keeps the stable key it has on anthropic’s site, so sean’s highlights and notes stay attached if the text is updated.