id = "fabric-ai" name = "Fabric" homepage = "https://github.com/danielmiessler/Fabric" description = "An open-source framework for augmenting humans using AI." executables = ["fabric"] [dotfiles] # Fabric's official Docker documentation identifies ~/.config/fabric/.env as # its configuration and the repository README documents strategies and custom # patterns below the same directory. # https://github.com/danielmiessler/Fabric/blob/main/scripts/docker/README.md # https://github.com/danielmiessler/Fabric paths = [ "[configHome]/fabric/strategies/", "[configHome]/fabric/patterns/", ] secret = ["[configHome]/fabric/.env"] [commands] format = 1 label = "Run an AI pattern" description = "Run a Fabric prompt pattern over text piped in on standard input. YouTube/scraping inputs, the REST server, sessions and image or audio options are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "help" kind = "help" url = "https://github.com/danielmiessler/Fabric" revision = "main 2026-10-27" evidence = """ fabric --help (Application Options), from https://github.com/danielmiessler/Fabric README -S, --setup Run setup for all reconfigurable parts of fabric -p, --pattern= Choose a pattern from the available patterns -v, --variable= Values for pattern variables, e.g. -v=#role:expert -v=#points:30 -C, --context= Choose a context from the available contexts -a, --attachment= Attachment path or URL (e.g. for OpenAI image recognition messages) -s, --stream Stream -l, --listpatterns List all patterns -L, --listmodels List all available models -c, --copy Copy to clipboard -m, --model= Choose model -V, --vendor= Specify vendor for the selected model (e.g., -V "LM Studio" -m -o, --output= Output to file --print-prompt Print the rendered prompt without sending it to a model --dry-run Show what would be sent to the model without actually sending it --strategy= Choose a strategy from the available strategies --liststrategies List all strategies --search Enable web search tool for supported models (Anthropic, OpenAI, Gemini, Grok) --suppress-think Suppress text enclosed in thinking tags --thinking= Set reasoning/thinking level (e.g., off, low, medium, high, or numeric """ [[commands.field]] id = "pattern" label = "Pattern" description = "Pattern name; the text to process is read from standard input. Run fabric --listpatterns for the list." type = "string" option = ["--pattern", "-p"] suggestions = [{ value = "summarize", label = "Summarize" }, { value = "extract_wisdom", label = "Extract wisdom" }, { value = "improve_writing", label = "Improve writing" }] sources = ["help"] [[commands.field]] id = "model" label = "Model" type = "string" option = ["--model", "-m"] sources = ["help"] [[commands.field]] id = "vendor" label = "Vendor" description = "Vendor for the selected model." type = "string" option = ["--vendor", "-V"] sources = ["help"] [[commands.field]] id = "variable" label = "Pattern variables" description = "Values like #role:expert, repeatable." type = "string" option = ["--variable", "-v"] multiple = true sources = ["help"] [[commands.field]] id = "context" label = "Context" type = "string" option = ["--context", "-C"] sources = ["help"] [[commands.field]] id = "strategy" label = "Strategy" type = "string" option = ["--strategy"] sources = ["help"] [[commands.field]] id = "stream" label = "Stream output" type = "boolean" option = ["--stream", "-s"] sources = ["help"] [[commands.field]] id = "copy" label = "Copy to clipboard" type = "boolean" option = ["--copy", "-c"] sources = ["help"] [[commands.field]] id = "output" label = "Output file" type = "path" option = ["--output", "-o"] path = { kind = "file", role = "output", must_exist = false } effect = "overwrite" sources = ["help"] [[commands.field]] id = "dry_run" label = "Dry run" description = "Show what would be sent to the model without sending it." type = "boolean" option = ["--dry-run"] sources = ["help"] [[commands.field]] id = "search" label = "Web search tool" type = "boolean" option = ["--search"] sources = ["help"] [[commands.field]] id = "thinking" label = "Thinking level" type = "string" option = ["--thinking"] suggestions = [{ value = "off", label = "Off" }, { value = "low", label = "Low" }, { value = "medium", label = "Medium" }, { value = "high", label = "High" }] sources = ["help"] [[commands.field]] id = "suppress_think" label = "Suppress thinking text" type = "boolean" option = ["--suppress-think"] sources = ["help"] [[commands.field]] id = "attachment" label = "Attachment" description = "Attachment path or URL." type = "string" option = ["--attachment", "-a"] sources = ["help"] [[commands.field]] id = "list_patterns" label = "List patterns" type = "boolean" option = ["--listpatterns", "-l"] sources = ["help"] [[commands.field]] id = "list_models" label = "List models" type = "boolean" option = ["--listmodels", "-L"] sources = ["help"] [[commands.field]] id = "setup" label = "Run setup" type = "boolean" option = ["--setup", "-S"] sources = ["help"] [[commands.task]] id = "run" label = "Run a pattern on stdin" fields = ["pattern", "model", "stream", "copy"] required = ["pattern"] [[commands.task]] id = "patterns" label = "List patterns" fields = ["list_patterns"] set = { list_patterns = [true] } lock = ["list_patterns"] [[commands.task]] id = "models" label = "List models" fields = ["list_models"] set = { list_models = [true] } lock = ["list_models"] [[commands.group]] id = "basic" label = "Basic" fields = ["pattern", "model", "vendor", "stream", "copy", "output", "list_patterns", "list_models"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["variable", "context", "strategy", "dry_run", "search", "thinking", "suppress_think", "attachment", "setup"]