Thingy

About Thingy

Thingy is an AI librarian for one writer’s public archive. Ask it anything about twenty-five years of Jamie Thingelstad’s writing and it answers with citations back to the original posts and issues — in chat here, or inside your own AI via MCP.

The short version

Jamie has published continuously since 2000: a blog, a weekly newsletter, and a podcast. Thingy has read all of it. Instead of scrolling archives or hoping a search engine indexed the right post, you ask a question — “when did Jamie first write about Ethereum?”, “show me photos from bike rides”, “what was he reading in 2019?” — and Thingy finds the sources, quotes them, and links you to the originals. It only knows the published archive; it holds no private data. Weekly Thing subscribers sign in with just their email.

What’s in the archive

25years of writing
350Weekly Thing issues
10,408blog posts
14,223indexed images
6,429newsletter links
177Currently entries
SourceContentsSpan
The Weekly Thing350 issues, 6,429 outbound links, 4,361 images2017 – today
thingelstad.com10,408 blog posts, 9,862 images2000 – today
Another ThingPodcast episodes with transcripts2026 – today

Beyond the text, the corpus carries structure: a link graph across every source, a photo index built from alt text and captions, the newsletter’s Currently entries (what Jamie was reading, playing, and watching, year by year), and cross-references between blog posts and the issues that featured them. New posts and issues flow in automatically as they publish.

How it works

Thingy is two open-source pieces:

librarian-thing — the brain. A corpus pipeline (Python) builds embedded, chunked indexes of every source; a serverless API (Node on AWS Lambda) answers from them. Retrieval is hybrid: TF-IDF lexical search and semantic embeddings fused with reciprocal-rank fusion, then reranked. An agentic loop (Claude on Amazon Bedrock) plans tool calls, gathers evidence, and writes cited answers. Filtering runs through a single canonical matcher with declared semantics — whole-token exact, contiguous phrase, opt-in stemming — enforced by an eval suite of 850+ invariants and known-answer fixtures that runs on every deploy and blocks it on failure.

thingy.thingelstad.com — this site. A static Preact app on GitHub Pages that streams answers from the Librarian over server-sent events, renders citations and inline photos, and handles the email sign-in flow.

question → preflight → agent loop → [ lexical ⊕ semantic → RRF → rerank ] × tools → cited answer

The same tool registry that powers this chat is published as an MCP server at librarian.thingelstad.com/mcp with OAuth 2.1 sign-in, so Claude, ChatGPT, Codex, or any MCP client can use the archive with the exact tools Thingy uses — searching, topic history, quote finding, photo search, claim checking, and more. Connection instructions →

Trust, tested adversarially

When the MCP server launched, an AI agent spent eight review rounds trying to break the tools — and its findings shaped the architecture. Matching semantics now live in one canonical component with a written spec: whole-token matching (so “ENS” can never match “sense”), contiguous phrases, opt-in stemming that can’t cross word boundaries. Every answer’s evidence carries the exact matched text at its actual offset, so claims are verifiable down to the span. A suite of 850+ fixtures and invariants runs on every deploy and blocks it on failure — including known answers pinned against the archive itself, like “the first Ethereum mention is issue 17, September 2017.”

The archive maintains itself

Thingy’s upkeep runs on a small team of AI objective owners — the AGENT-TEAM — each accountable for an outcome, not a task list:

Run the Librarian keeps the API, MCP surface, and deploys healthy, observable, and cheap.Saturdays

Keep the Archive True watches ingest, corpus builds, and the link graph as new writing lands.Sundays

Improve Thingy reads real conversations (privately, in aggregate) and turns evidence into fixes with regression fixtures.Every 3 days

Each run measures from live evidence, fixes at the source, pins the fix with a test, and a healthy no-op is a successful run. Human decisions — anything reader-visible, schema-changing, or irreversible — still go to Jamie.

Boundaries