skill
wwxd
What would X do? Turns a person's talks, podcasts and essays into a cited wiki your agent reasons from. Claude Code skill + CLI.
Set up
Skills are installed by placing their folder where your agent loads skills.
The download comes from github.com/MSliwa01/wwxd itself, not from our server, so what you get is exactly what its author published.
Install instructions come from the README
README
synced Oct 21, 2026wwxd
Build a source-linked knowledge base from expert talks, podcasts and essays, then use it as context in conversations with a language model. wwxd discovers and fetches sources, an agent organises them into a Markdown wiki, and the CLI checks quoted passages against the originals.
Compare how experts approach a problem, explore where they disagree and trace an answer back to what they actually said. "What would X do?" is one way to use the knowledge base.
Answers are inferred from public sources by a language model. They are not statements by these people, and none of them is affiliated with or endorses wwxd. See ETHICS.md.

Try it
You need uv, Claude Code, ffmpeg, and deno or node 22 or newer.
uv tool install "git+https://github.com/MSliwa01/wwxd" && wwxd install-skill && wwxd doctor
Compiling costs about $1 to $2 per video on Opus at list price, so run
wwxd estimate <slug> first. The Quick start has the next steps.
Why
Ask a chatbot whether to raise your prices and you get a generic answer that commits to nothing. That's fine for facts. It's weak for decisions in business, design, careers or learning, where the useful advice comes from people with strong opinions and a track record. Ask the model to answer "as Alex Hormozi" and you get a plausible impression, built from whatever it remembers, with the gaps filled by its own guesses. It can't know anything the person said after its training cutoff, and it mixes up who said what, crediting a podcast host's line to the guest.
wwxd gives the agent the person's own words instead. Here is a question from our benchmark, answered by Claude Opus 5.5 in Claude Code.
I have $50k saved. Should I pay off my car loan and credit cards or put it all into my business? What would Alex Hormozi say?
Told to answer decisively as Hormozi, Opus says to keep the car loan unless its rate is high. With a Hormozi vault, the answer starts like this:
He'd tell you to pay off the credit cards first and the car loan next. Then put what's left into the business, but only into spending that has already shown it pays back. Don't put all of it in.
Hormozi never talked about this exact choice, but his rules on it are clear. He says he leans "very close to the Ramsey side" on debt. His reason is that debt adds risk, and risk held for a long time tends to come due, because businesses have seasons and swings [1][2]. … His ideal car is "a paid-off clunker" [4]. So pay the car off, or if the payment is large, sell the car and buy something cheap with cash.
…
Sources
- "I'd say this is more of an emotional thing, but it's just this back of mind thing." / "I tend to skew like very close to the Ramsey side" (Hormozi, Building a $2,500,000 Business for a Stranger in 36 Minutes, 2026-05-08, 8:37)
- "Risk when multiplied over a long time horizon tends to come due." / "businesses have seasons, they have volatility" (same video, 9:10)
…
- "ideally a paid-off clunker is the best way to go." (Hormozi, If I Wanted to Make My First $100K in 2026, 2026-03-04, 2:08)
The full answer is question op-hz-06 in
bench/runs/2026-10-11/hormozi-web/op-prose-answers.jsonl.
Results
The October 19 three-model evaluation compares answers to the same question with and without the complete knowledge base. It includes 12 questions about documented positions and 12 new practical business decisions, with blind judging by two external model families for each answer family.
The knowledge base helped clearly with documented positions. On new practical decisions, the effect was smaller and depended on the model. This distinction matters: recalling an expert's position and giving useful advice are different tests.
Questions, prompts, A/B order and aggregation rules were frozen before answering. The published run includes saved answers, judgments, input-context checks and source audits. Its report preserves the strict result and separately labels a post-hoc analysis that normalises Markdown-wrapped judge output. Failed calls, invalid judgments and missing comparisons remain visible.
Read the method, results and limitations. The findings cover two vaults and this question set.
Earlier evaluations, October 2026
In an earlier test on 40 questions about the views documented in a Hormozi vault and a Y Combinator vault, a blind Gemini judge preferred the grounded answer on 34 of 40 questions. A script found 158 of 160 cited quotes verbatim in the transcripts; the other two were video titles. These are separate runs with a different evaluation design.
The earlier results and caveats and benchmark overview remain available. A held-out test of later opinions found no improvement over the model alone: a knowledge base of past statements does not establish how a person will think in the future.
How it works
discover ──▶ you approve ──▶ fetch ──▶ compile ──▶ lint ──▶ ask
(CLI) (CLI) (CLI) (agent) (CLI) (agent)
The wwxd CLI does the mechanical work. It finds sources (the person's YouTube
channels, podcast feeds, blog RSS, essay index pages), downloads existing captions
and podcast transcripts, falls back to local Whisper when there are none, and checks
the wiki.
Your agent does the reading. A Claude Code skill tells it how to work out who's speaking in each transcript, pull out verbatim quotes, and file them into a topic tree. You don't need an API key, because it runs on the agent you already use.
The design follows Andrej Karpathy's LLM wiki. Raw sources never change, the LLM maintains a wiki on top of them, and every new source updates what's already there. wwxd adds these parts for a wiki about one person.
- Discovery flags summaries, reactions and "lessons from" videos, so you only approve content by the person, not about them.
- Every statement records who said it and how sure the agent is. Low-confidence lines and second-hand claims ("my mentor told me...") never count as the person's view.
- Each quote carries a timestamp, and
wwxd lintchecks it against the transcript in code. A quote that isn't in the source fails, however plausible it sounds. - Topic pages keep what the person said apart from what they did.
tensions.mdtracks how their views changed over time. - Each person gets a thinking page: what they optimize for, the rules they decide by, how they reason, and their strong likes and dislikes, with quotes. When you ask about something they never mentioned, the agent reasons from it the way they would, names the rule, gives a confidence and says what would break the inference.
- The wiki is a tree (person, domain, topic, page), or flat with
layout: flat. A vault can hold a group, like the YC partners, and still credit every line to the right person. - The agent's own extrapolations go to
derived/, and lint stops them from being cited as evidence later.
Quick start
Before you start, install these and run wwxd doctor to check them.
- uv
- Claude Code
- ffmpeg
- deno, or node 22 or newer
uv tool install "git+https://github.com/MSliwa01/wwxd"
wwxd install-skill # into ~/.claude/skills/wwxd
wwxd doctor
Videos without captions and podcasts without published transcripts need local
Whisper. The whisper extra installs it, and voice adds the
voice check.
uv tool install --force "wwxd[whisper,voice] @ git+https://github.com/MSliwa01/wwxd"
Without whisper, wwxd fetch marks those sources as failed and fetches the rest.
After you install it, wwxd fetch <slug> --retry-failed picks them up.
Instead of wwxd install-skill, you can install the skill as a Claude Code plugin
with /plugin marketplace add MSliwa01/wwxd and /plugin install wwxd@wwxd. You
still need the CLI. Don't use both, or Claude Code loads the skill twice.
Then create a vault and find candidate sources. wwxd examples lists the bundled
recipes (yc, hormozi, naval, karpathy, rams). A recipe is a source config,
never content, and not an endorsement.
wwxd new hormozi --example hormozi
wwxd discover hormozi # nothing is downloaded yet
Then, in Claude Code:
Help me curate the hormozi vault, fetch what we approve, and compile it.
The agent goes through the candidates with you, runs wwxd fetch, compiles each
source and runs wwxd lint. Each source takes it a few minutes, and
wwxd compile hormozi --jobs 4 compiles several at once
(details).
After that:
My agency does $40k a month with three people. Should I add a second service line? What would Hormozi say?
For someone without a recipe, run wwxd new jane --name "Jane Doe" and ask the
agent to find her channels and feeds. To keep a vault up to date, see
docs/keeping-current.md.
What it costs
Fetching, lint and the voice check run on your machine and cost nothing. Compiling
and asking run on your agent, so they cost tokens: dollars on the API, usage limits
on a Claude subscription. wwxd estimate <slug> prices what you've approved, before
anything is fetched. Rough numbers from our runs on Opus 5.5:
| Tokens | Time | Opus 5.5 | Sonnet 5.5 | Haiku 5.5 | |
|---|---|---|---|---|---|
| Compile a 20-minute video (about 3,000 words) | about 1M | 4 min | $1.06 | $0.63 | $0.03 |
| Compile a 2-hour podcast (about 18,000 words) | about 2.1M | 8 min | $1.91 | $1.15 | $0.06 |
| One question to a vault | about 0.3M | 30 s | $0.41 | $0.23 | $0.01 |
A panel of three people costs roughly three questions. Effort, advisors and which model to use for each job are in docs/models-and-cost.md.
$ wwxd estimate hormozi
13 sources, about 87,336 words
tokens: 17.1M total (15.8M cache reads, 0.96M cache writes, 0.28M output)
time: about 65 min of agent work one source at a time; `wwxd compile hormozi --jobs N` runs N at once for the same cost
list price if billed per token (the real number can be about 50% lower or higher):
opus claude-opus-5-5 $ 16.50
sonnet claude-sonnet-5-5 $ 9.83
haiku claude-haiku-5-5 $ 0.49
Measured on Opus without an advisor, compiling cost 0.73x this at effort medium, 1.1x this at effort high, 1.75x this at effort xhigh.
Ask a panel
Ask several people at once ("what would Hormozi, Paul Graham and Garry Tan tell me?") and the agent answers for each one from their own vault, then maps where they agree and where they split. For each split it names the reason from their thinking pages, such as a value they rank differently or a rule only one of them holds. A debate round gives each person's reply to the other's strongest point, built only from their own words and labelled as inferred. Last comes a synthesis in the agent's own voice that says which advice fits which situation.
Asked by someone who loves building AI tools but fears AI will take their income,
the panel disagreed. Hormozi: sell one AI skill people already pay for, expensive
and one-on-one, before building any app ("The middle is where people die"). Graham:
follow your curiosity, because for someone young and good at technology "working on
what you're most interested in becomes a good idea again". Tan: own your tools,
because "if you don't, your job becomes a skill file". They agreed that fear is the
wrong response, each for a different reason, which the synthesis treats as the
strongest signal in the answer. wwxd vaults lists every vault, its members and
which ones have thinking pages.
Check who said it, by voice
Lint proves a quote exists. It can't prove who said it, and that's the mistake that
matters most. A real quote credited to the wrong person passes lint.
wwxd voice <slug> checks attribution by sound. It finds the second each quote is
spoken, embeds that audio with a speaker-verification model, and compares it with
each member's voiceprint. The voiceprints come from the vault itself, so there's
nothing to enroll. It runs on CPU with a small open model, needs no account or API
key, and comes with the voice extra.
On our test vaults it checked 1,423 statements from 26 videos in under 4 minutes on CPU and flagged 9 as spoken by someone else. We confirmed 6 of them (case studies). Lint shows its mismatches as warnings until someone fixes the attribution.
CLI
| Command | What it does |
|---|---|
wwxd new <slug> --example X or --name "Full Name" | Create a vault |
wwxd examples | List the bundled example recipes |
wwxd discover <slug>, wwxd update <slug> | Find new candidate sources |
wwxd update <slug> --approve-hint own --fetch | Also approve new candidates with that hint and fetch them |
wwxd sources <slug> --status candidate | List sources |
wwxd approve <slug> <ids>, wwxd reject <slug> <ids> | Curate |
wwxd add <slug> <url or file> | Add a source by hand |
wwxd estimate <slug> [--asks N] | Estimate tokens, list-price dollars and time to compile, per model |
wwxd fetch <slug> | Download captions, transcripts and articles into raw/ |
wwxd pending <slug>, wwxd mark-compiled <slug> <id> | List sources fetched but not compiled, record a compiled source in log.md |
wwxd compile <slug> --jobs N | Compile pending sources with N Claude Code sessions at once (details) |
wwxd lint <slug> [--only <path>] | Check quotes, citations, attribution and links, and flag drift such as near-duplicate leaves |
wwxd health <slug> | Report on the wiki: size, attribution, coverage, near-duplicates, oversize leaves |
wwxd timeline <slug> [query] | Statements by source date and member, to see how views changed |
wwxd digest <slug> --since YYYY-MM-DD | Markdown note on what's new since a date |
wwxd search <slug> "query" | Keyword search over the wiki (--raw adds transcripts) |
wwxd status <slug> | Summary |
wwxd vaults | List vaults with their members and thinking pages, for panels |
wwxd voice <slug> [ids] | Check who is speaking in each quote, by voice (needs wwxd[voice]) |
wwxd doctor | Check yt-dlp, the JS runtime, ffmpeg, Whisper and $WWXD_HOME |
wwxd install-skill [--project], wwxd version | Install the wwxd skill for Claude Code, print the version |
wwxd bench run, judge, rank, report | Benchmarks |
Vaults are plain markdown folders and open in Obsidian. $WWXD_HOME sets where they
live (default ./vaults).
Sources and copyright
wwxd ingests public captions, podcast transcripts and articles. It downloads audio
only to process it on your machine, with Whisper when a source has no transcript and
for the voice check. It doesn't fetch books, and this repo ships no content. You can
add books you own as text files (wwxd add <slug> book.txt) or write a
fetcher plugin.
Don't publish vaults built from material you don't have the right to share.
ETHICS.md has the rules for
using vaults and explains how a person can have their recipe removed.
Requirements
Run wwxd doctor to check your setup. It marks each item below OK, WARN or FAIL and
makes no network calls.
- Python 3.10 or newer.
- A JavaScript runtime for YouTube: deno, node 22 or newer, or bun. wwxd picks the first of these on your PATH for yt-dlp. Without one, some videos lose formats or fail.
- ffmpeg, which yt-dlp needs to convert some audio downloads.
- Whisper, for sources without captions. Most podcasts need it, unless the feed
publishes transcripts (
podcast:transcripttags), which wwxd uses instead. Whisper runs on CPU, and much faster on a GPU. wwxd picks the model for you, large-v3-turbo on a CUDA GPU and small on CPU.WWXD_WHISPER_MODELandWWXD_WHISPER_DEVICEset the defaults, andwwxd fetch --whisper-model large-v3changes the model for one run.
If YouTube asks you to sign in or rate limits a fetch, see docs/troubleshooting.md.
Credits
The raw-sources-plus-compiled-wiki loop is Andrej Karpathy's LLM wiki idea. wwxd adds sourcing, speaker attribution and quote checking for the one-person case. Design notes are in docs/design.md. MIT licensed.