Fabric + Fable 5: Get Through Your Reading Pile
Pipe any article, video transcript, or document into a prebuilt Fabric pattern and have Fable 5 summarize, extract, or analyze it in one line.
Run this workflow
CI-verified, 4/4 fixtures passing.
Build this with your agent
One copy-paste hands Claude Code, Codex, or Cursor the full recipe, steps included, nothing to fetch.
Intended Use
Anyone drowning in a daily reading firehose: Fabric ships a library of prompt patterns (summarize, extract_wisdom, analyze_claims...) you pipe text into. CI verifies the deterministic spine: the chosen pattern exists and the setup names claude-fable-5 as the default model, no key. Fable actually reading and summarizing is fenced.
Not for
- Anyone allergic to the terminal (Fabric is a CLI, though the commands are short)
- Expecting CI to verify the summary quality; that's the fenced model step
The Stack
Tested Against
fabric-ai@latestclaude-fable-5Side effects & data flow
- Network
- none, local only
- Writes
- ./patterns/, ./fabric.env, ./checkfabric.mjs
- Credentials
- none required
Prerequisites
- Homebrew (brew install fabric-ai), then fabric --setup
- An Anthropic API key (Claude API) for claude-fable-5
Steps
- 1
Install Fabric and choose Fable as the default model
brew install fabric-ai, then fabric --setup (choose Anthropic, paste your key). Since Fable is new you may re-run fabric --setup so it picks up claude-fable-5. Then: cat article.txt | fabric --pattern summarize --model claude-fable-5.
- 2
What CI checks: the pattern exists and the setup names Fable
CI confirms the chosen pattern (summarize) exists as a pattern directory and the Fabric config names claude-fable-5 as the default model. That's the deterministic precondition, no key. The reading and summarizing are fenced.
mkdir -p patterns/summarize cat > patterns/summarize/system.md <<'EOF' # IDENTITY and PURPOSE You summarize the input content into a clear, structured set of bullet points. EOF cat > fabric.env <<'EOF' DEFAULT_VENDOR=Anthropic DEFAULT_MODEL=claude-fable-5 EOF cat > checkfabric.mjs <<'EOF' import { existsSync, readFileSync } from 'node:fs'; let ok = true; function check(label, cond){ console.log(label + ': ' + (cond ? 'yes' : 'NO')); if(!cond) ok=false; } check('summarize pattern exists', existsSync('patterns/summarize/system.md')); const env = existsSync('fabric.env') ? readFileSync('fabric.env', 'utf8') : ''; check('default model is claude-fable-5', env.includes('DEFAULT_MODEL=claude-fable-5')); if(!ok){ console.log('fabric config check FAILED'); process.exit(1); } console.log('fabric config check OK: summarize pattern + claude-fable-5'); EOF node checkfabric.mjs - 3
Pipe in your reading (the model step, not checked by CI)
Pipe any text into a pattern and Fable does the analysis. That runs the model, so CI never claims it. The badge covers the pattern and the model name, not the output.
Eval, 4 fixtures
Last passed: verified todaypattern-existscontainstimeout 30s · max $0Expected:
summarize pattern exists: yesnames-fablecontainstimeout 30s · max $0Expected:
default model is claude-fable-5: yescheck-okcontainstimeout 30s · max $0Expected:
fabric config check OK: summarize pattern + claude-fable-5clean-exitexit_codetimeout 30s · max $0Expected:
0
Results
~41,400 stars; turns 'I'll read this later' into a five-second command.
Did this work for you?
Our CI checks the setup runs. You tell us if the whole thing worked. Tell us straight.
Related workflows
- Arcmira + n8n: a bounded YouTube transcript source shortlist
- STEM source → reviewable LaTeX notes with a sandboxed compile gate
- Read your token receipts right: volume and cost are different leaderboards
- Pick a model with evidence: a GitHub Models bake-off that fits the free cap
- Track a tool's hype curve across any Substack (no API key)
- Obsidian × MCPVault: The Decision Journal
Liked this workflow?
Get new verified workflows in WebAfterAI, three issues a week (Tue, Thu, Sat).