Your best AI instruction shouldn't die in a chat window.
Fabric is a free command-line tool. It turns your favorite AI prompts into named, reusable files. It ships 256 of them, ready-made. So you never rebuild the same one from memory. And you can swap which AI runs it with one flag.
An independent explainer for Daniel Miessler 🛡️ (danielmiessler)'s Fabric — built to take you from "never seen it" to "ready to implement".
01
The prompt you perfected three weeks ago is already gone
Why does this exist?
Anyone who uses AI a lot hits the same wall.
You spend twenty minutes getting an instruction just right. It's the one that pulls real insight out of a long video, not a lazy summary. It works. You feel like a wizard. Then you close the tab.
Three weeks later you need it again. It isn't in your notes. It isn't in your downloads. It's buried in a chat window you can't search, under a dozen newer conversations. So you rebuild it from memory. It comes out a little worse.
Now multiply that by every good prompt you've ever written. Multiply it again by every AI tool you use. You end up pasting the same instructions into four different chat boxes. Each time, you edit them slightly wrong. There's no single real copy anywhere.
The real costIt was never the AI that was unreliable here — it's that your best instructions had nowhere permanent to live.
02
A cabinet of ready-made instructions, plus one command to run them
What does it actually do?
Fabric calls each saved instruction a Pattern, and it ships 256 of them, already written.
Open the project's patterns folder. You'll find a plain text file for almost anything you'd want AI to do. One pulls the best ideas out of a video (extract_wisdom). Another checks an argument for weak logic (analyze_claims). A third turns messy notes into a clean summary (summarize). There are hundreds more.
Every Pattern is just Markdown. That's the same plain-text format you'd use for a README. Open it and you can read exactly what it tells the AI to do. Change one line if you want a different result.
One command runs any of them, on anything. Pipe in an article, a YouTube link, or a file. Add the pattern's name. Fabric assembles the full request and sends it for you.
03
Your instruction and the AI that reads it are kept as two separate things
Why is it elegant?
The clever move is refusing to weld a prompt to any one AI.
Most people who write a great prompt paste it straight into one chat window. From that moment, the prompt is stuck to that one AI, in that one tool.
Fabric stores the Pattern once, as its own file. It treats the AI underneath as a replaceable part. Claude, OpenAI's models, Google's Gemini, a free local model through Ollama, and over twenty other backends can all run the identical Pattern. The words never change. Only the machine reading them does.
That is why a sharper model can ship next month. Your whole library of saved instructions keeps working. You change one flag, not two hundred files.
Swap one flag. -m gpt-4o becomes -m claude-opus, or a free model on your own laptop. The exact same Pattern runs, unchanged. It was never tied to the machine reading it.
04
How a request actually moves through Fabric
How is it built?
Underneath, Fabric is a small, well-organized program (written in the Go language) with one job: assemble a request, then hand it to whichever AI you chose.
The command-line layer reads your flags and whatever text you piped in. The core layer loads the Pattern file you named, drops your text into it, and attaches any saved background context you asked for.
A vendor plugin — one small adapter per AI provider — reshapes that assembled request into exactly what each provider's service expects, sends it, and streams the answer back to your terminal, or saves it to a file if you asked.
05
Could you actually use this?
Could I use this?
Three ways people run Fabric most days — the second one below is a real, unedited run, not a mock-up.
1 Turn a long video into notes worth rereading Learning
Point Fabric at a YouTube link and the extract_wisdom pattern, and get back organized ideas, quotes, habits and one clear takeaway — while everyone else is still watching the video.
fabric -y "https://youtube.com/watch?v=..." --stream -p extract_wisdom
2 Summarize anything without leaving the terminal Everyday — real output
This is the actual, unedited result of piping a short paragraph into Fabric's built-in summarize pattern — no cherry-picking, this is what came back.
pbpaste | fabric -p summarize
3 Keep a private pattern nobody else sees Custom work
Save your own instruction to a personal patterns folder and it shows up in fabric --listpatterns right alongside the built-in 256 — safe from being overwritten the next time you update.
fabric --pattern my-analyzer "analyze this text"
06
How to start
How do I start?
From zero to your first real result in about two minutes.
go install github.com/danielmiessler/fabric/cmd/fabric@latest- Install it. The command above builds Fabric straight from source if you have Go installed. No Go? The README also lists a one-line shell installer, a prebuilt binary, Homebrew, and Docker.
- Run the setup wizard.
fabric --setupwalks you through picking at least one AI backend and pasting in its key (or pointing at a free local Ollama model) — you'll see a short menu, not a wall of config. - Download the patterns.
fabric -Upulls all 256 ready-made patterns onto your machine. You'll see a confirmation once it's done. - Run your first pattern. Pipe any text in:
pbpaste | fabric -p summarize. Within a few seconds you'll see a structured, headed result print straight to your terminal — the earlier screenshot in "Could you actually use this?" shows exactly what that looks like. - What's next. Try
fabric --listpatternsto browse all 256 by name, or write your own — a Pattern is just a folder with one Markdown file inside.
07
Your AI gets this too
Does my AI get it too?
Alongside the page, this explainer ships a small downloadable knowledge pack: the same understanding of Fabric, indexed so an AI assistant can search it and answer questions about this exact repository — architecture, commands, and all — without re-reading the whole codebase.