Fabric

GitHub
40.5k 4k 简单 1 次阅读 今天MIT图像Agent开发框架
AI 解读 由 AI 自动生成,仅供参考

Fabric 是一个开源框架,旨在通过人工智能增强人类能力。它的核心理念是:当前 AI 技术并不缺乏能力,而是难以无缝融入我们的日常工作流。为了解决这一“集成难题”,Fabric 将提示词(Prompts)作为基本单元进行模块化管理,让用户能够针对具体任务创建、收集和组织高质量的 AI 解决方案。

无论是需要快速总结文章、提取关键观点,还是处理复杂的数据分析,用户都可以在 Fabric 中调用由社区众包贡献的提示词模板。这些模板不仅可以在 Fabric 自带的命令行界面中直接使用,还能轻松集成到您喜欢的任何工具或应用中,真正实现 AI 能力的随处可用。

Fabric 特别适合开发者、研究人员以及热衷于效率提升的技术爱好者。对于习惯命令行操作的用户,它提供了极佳的交互体验;同时,其灵活的架构也支持自定义提示词和多种后端接入(如 OpenAI、Azure AI 等)。最新版本更引入了对 OpenAI Codex 及 Azure AI Gateway 的原生支持,进一步扩展了其在多模型环境下的适用性。通过将分散的 AI 功能整合为有序的工作流,Fabric 帮助用户更专注于创造性工作,让技术真正服务于人的成长。

使用场景

资深技术博主李明每周需处理大量英文技术文档和会议录音,以便为中文社区撰写深度解读文章。

没有 Fabric 时

  • 提示词管理混乱:每次针对不同任务(如总结、提取观点、润色)都要重新编写或查找提示词,效率低下且质量不稳定。
  • 工作流割裂:需要在浏览器、聊天机器人和本地编辑器之间反复切换,无法将 AI 能力无缝嵌入现有的命令行写作流程中。
  • 知识难以沉淀:优秀的提示词散落在各个聊天记录中,无法形成标准化的“模式库”供团队复用或迭代优化。
  • 上下文处理繁琐:面对长篇幅的英文原始素材,手动分段投喂给 AI 不仅耗时,还容易丢失整体逻辑连贯性。

使用 Fabric 后

  • 模块化调用:直接通过 fabric --pattern summarizeextract_wisdom 等预置模块,一键调用社区众包的高质量提示词,输出稳定可靠。
  • 无缝集成终端:利用管道命令(如 cat meeting.txt | fabric --pattern summarize),在终端内完成从输入到输出的全流程,无需离开当前工作环境。
  • 标准化资产积累:将验证有效的提示词保存为自定义 Pattern,构建个人或团队专属的 AI 解决方案库,实现知识资产的持续复用。
  • 高效长文处理:结合本地流式处理优势,轻松应对长篇技术文档,快速提炼核心洞察并自动转换为符合中文阅读习惯的深度稿件。

Fabric 通过将分散的 AI 提示词转化为可复用的标准化模块,彻底解决了 AI 技术与实际工作流之间的“集成鸿沟”。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

未说明

内存

未说明

依赖
notes该工具主要提供预编译的二进制文件(支持 Linux ARM 和 Windows ARM,如树莓派和 Surface),也可通过 Homebrew、AUR 或源码安装。它是一个用于组织和使用 AI 提示词(Prompts)的框架,本身不包含大型模型,需配置外部 AI 提供商(如 OpenAI、Anthropic、Ollama 等)的 API 密钥才能运行。
python未说明
Fabric hero image

快速开始

是什么与为什么

自2022年末现代AI兴起以来,我们见证了数量极其惊人的AI应用涌现,用于完成各种任务。如今有成千上万的网站、聊天机器人、移动应用以及其他界面,供人们使用各种不同的AI工具。

这一切确实令人兴奋且功能强大,但将这些功能真正融入我们的日常生活却并不容易。

换句话说,AI的问题不在于能力不足,而在于如何更好地**整合**到我们的生活中。

Fabric正是为了解决这一问题而诞生的——它通过创建并组织AI的核心单元——提示词本身!

Fabric按照实际任务对提示词进行分类,使用户能够在同一个地方创建、收集和整理自己最重要的AI解决方案,并将其无缝集成到他们最喜爱的工具中。如果你更倾向于命令行操作,也可以直接使用Fabric作为交互界面!

更新

想要深入了解Fabric及其内部机制,请阅读位于docs文件夹中的文档。此外,还有非常实用且定期更新的Fabric深度维基可供参考。

点击查看近期更新

亲爱的用户们,

我们在Fabric这边一直在推进许多激动人心的工作,所以想在这里简单总结一下,让大家感受一下我们的开发速度!

以下是按时间顺序排列的新增功能与特性(最新在前):

最近的主要功能

  • v1.4.437(2026年3月16日)— OpenAI Codex 插件:Fabric 现在支持将 OpenAI Codex(需您拥有 OpenAI 订阅)用作后端!
  • v1.4.417(2026年2月21日)— Azure AI Gateway 插件:新增 Azure AI Gateway 插件,可通过统一的 Azure APIM 网关和共享订阅密钥认证,支持多种后端(AWS Bedrock、Azure OpenAI、Google Vertex AI)。
  • v1.4.416(2026年2月21日)— Azure Entra ID 认证:新增 Azure Entra ID 认证插件,包含共享的 Azure 工具、Entra ID/MSAL 支持,并将通用的 Azure 逻辑提取到可重用的 azurecommon 包中。
  • v1.4.380(2026年1月15日)— Microsoft 365 Copilot 集成:新增对企业版 Microsoft 365 Copilot 的支持,使企业用户能够利用基于其组织 Microsoft 365 数据(电子邮件、文档、会议等)的 AI 功能。
  • v1.4.378(2026年1月14日)— Digital Ocean GenAI 支持:新增对 Digital Ocean GenAI 的支持,并附有使用指南
  • v1.4.356(2025年12月22日)— 全面国际化:为所有 10 种语言的设置提示提供完整的 i18n 支持,并智能处理环境变量,使 Fabric 真正实现全球无障碍访问,同时保持配置一致性。
  • v1.4.350(2025年12月18日)— 交互式 API 文档:在 /swagger/index.html 添加 Swagger/OpenAPI UI,提供全面的 REST API 文档、增强的开发者指南以及改进的端点发现功能,便于集成。
  • v1.4.338(2025年12月4日)— 增加 Abacus 供应商对 Chat-LLM 模型的支持(参见 RouteLLM APIs)。
  • v1.4.337(2025年12月4日)— 增加“Z AI”供应商支持。更多详情请参阅Z AI 概览页面。
  • v1.4.334(2025年11月26日)— Claude Opus 4.5:更新 Anthropic SDK 至最新版本,并将新的Claude Opus 4.5加入可用模型列表。
  • v1.4.331(2025年11月23日)— GitHub Models 支持:新增对 GitHub Models 的使用支持。
  • v1.4.322(2025年11月5日)— 交互式 HTML 概念图与 Claude Sonnet 4.5:新增 create_conceptmap 模式,用于借助 Vis.js 进行可视化知识表示;引入 WELLNESS 类别,包含心理分析模式;并升级至 Claude Sonnet 4.5。
  • v1.4.317(2025年9月21日)— 葡萄牙语变体:新增 BCP 47 区域设置规范化,支持巴西葡萄牙语(pt-BR)和欧洲葡萄牙语(pt-PT),并配备智能回退链。
  • v1.4.314(2025年9月17日)— Azure OpenAI 迁移:迁移到官方的 openai-go/azure SDK,改进了认证方式并支持默认的 API 版本。
  • v1.4.311(2025年9月13日)— 更多国际化支持:新增德语(de)、波斯语/法尔西语(fa)、法语(fr)、意大利语(it)、日语(ja)、葡萄牙语(pt)、中文(zh)。
  • v1.4.309(2025年9月9日)— 全面国际化支持:包含英语和西班牙语的区域设置文件。
  • v1.4.303(2025年8月29日)— 新二进制发行版:新增 Linux ARM 和 Windows ARM 目标平台。您现在可以在 Raspberry Pi 和 Windows Surface 上运行 Fabric!
  • v1.4.294(2025年8月20日)— Venice AI 支持:新增 Venice AI 提供商。Venice 是一家以隐私为先、开源的人工智能提供商。更多详情请参阅他们的“关于 Venice”页面。
  • v1.4.291(2025年8月18日)— 语音转文本:新增 OpenAI 语音转文本支持,提供 --transcribe-file--transcribe-model--split-media-file 标志。

这些功能体现了我们致力于将 Fabric 打造成为目前最强大、最灵活的人工智能增强框架!

入门视频

请注意,其中许多视频是在 Fabric 基于 Python 时录制的,因此请务必参考下方的最新安装说明

导航


变更日志

Fabric正在迅速发展。

请查看CHANGELOG,了解所有最新更改,以保持与最新功能同步。

理念

AI并不是一个独立的事物;它更像是对某件事物的“放大器”。而那件事物就是人类的创造力

我们认为,技术的目的是帮助人类更好地发展。因此,在讨论AI时,我们首先关注的是希望解决的人类问题。

将问题分解为组件

我们的方法是将问题拆解成一个个独立的部分(见下文),然后逐一应用AI来解决。以下是一些例子。

augmented_challenges

过多的提示

提示在这方面很有用,但我在2023年遇到的最大挑战——至今仍然存在——就是市面上AI提示的数量实在太多。每个人都有对自己有用的提示,然而要发现新的提示、判断它们是否有效,以及管理自己喜爱的提示的不同版本,却非常困难。

fabric的主要功能之一就是帮助用户收集和整合这些提示,我们称之为“模式”,并将它们融入到生活的各个方面。

Fabric提供了适用于各种生活和工作场景的模式,包括:

  • 提取YouTube视频和播客中最有趣的内容
  • 仅凭一个想法就能写出具有个人风格的文章
  • 概括晦涩难懂的学术论文
  • 根据一段文字生成完美匹配的AI艺术创作提示
  • 评估内容质量,判断是否值得完整阅读或观看
  • 对冗长乏味的内容进行摘要
  • 向你解释代码
  • 将糟糕的文档改写成可用的文档
  • 从任何内容中生成社交媒体帖子
  • 以及数百万种其他用途……

安装

推荐的一行式安装

Unix/Linux/macOS:

curl -fsSL https://raw.githubusercontent.com/danielmiessler/fabric/main/scripts/installer/install.sh | bash

Windows PowerShell:

iwr -useb https://raw.githubusercontent.com/danielmiessler/fabric/main/scripts/installer/install.ps1 | iex

有关自定义安装选项及故障排除,请参阅scripts/installer/README.md

手动下载二进制文件

最新发布的二进制文件存档及其预期的SHA256哈希值可在https://github.com/danielmiessler/fabric/releases/latest找到。

使用包管理器

注意: 使用Homebrew或Arch Linux的包管理器后,fabric会以fabric-ai的名称提供,因此请在您的shell启动文件中添加以下别名来解决这个问题:

alias fabric='fabric-ai'

macOS (Homebrew)

brew install fabric-ai

Arch Linux (AUR)

yay -S fabric-ai

Windows

使用微软官方支持的Winget工具:

winget install danielmiessler.Fabric

从源码安装

要安装Fabric,请先确保已安装Go语言(安装指南),然后运行以下命令。

# 直接从仓库安装Fabric
go install github.com/danielmiessler/fabric/cmd/fabric@latest

Docker

使用预先构建的Docker镜像运行Fabric:

# 使用Docker Hub上的最新镜像
docker run --rm -it kayvan/fabric:latest --version

# 使用GHCR上的特定版本
docker run --rm -it ghcr.io/ksylvan/fabric:v1.4.305 --version

# 首次运行设置
mkdir -p $HOME/.fabric-config
docker run --rm -it -v $HOME/.fabric-config:/root/.config/fabric kayvan/fabric:latest --setup

# 使用Fabric及其模式
docker run --rm -it -v $HOME/.fabric-config:/root/.config/fabric kayvan/fabric:latest -p summarize

# 运行REST API服务器(详见REST API服务器部分)
docker run --rm -it -p 8080:8080 -v $HOME/.fabric-config:/root/.config/fabric kayvan/fabric:latest --serve

镜像获取地址:

有关构建自定义镜像及高级配置的信息,请参阅scripts/docker/README.md

环境变量

您可能需要在Linux系统的~/.bashrc或macOS系统的~/.zshrc文件中设置一些环境变量,才能顺利运行fabric命令。以下是一个示例:

对于基于Intel的macOS或Linux系统:

export PATH=$PATH:~/.local/bin
export FABRIC_CONFIG_DIR=~/.fabric-config
export FABRIC_MODELS_PATH=/path/to/models
export FABRIC_PROMPTS_PATH=/path/to/prompts
export FABRIC_LOG_LEVEL=info
export FABRIC_DEBUG=0
export FABRIC_API_KEY=your_api_key
export FABRIC_MODEL=gpt-4
export FABRIC_PATTERN=summarize
export FABRIC_LANGUAGE=en
export FABRIC_TIMEZONE=UTC
export FABRIC_CURRENCY=USD
export FABRIC_UNIT_SYSTEM=metric
export FABRIC_UNITS_LENGTH=meters
export FABRIC_UNITS_WEIGHT=kilograms
export FABRIC_UNITS_VOLUME=liters
export FABRIC_UNITS_TEMPERATURE=celsius
export FABRIC_UNITS_PRESSURE=pascals
export FABRIC_UNITS_ENERGY=joules
export FABRIC_UNITS_POWER=watts
export FABRIC_UNITS_FREQUENCY=hertz
export FABRIC_UNITS_LIGHT=intensity
export FABRIC_UNITS_SOUND=intensity
export FABRIC_UNITS_RADIATION=dose
export FABRIC_UNITS_POLLUTION=concentration
export FABRIC_UNITS_HEALTH=risk
export FABRIC_UNITS_SOCIAL=impact
export FABRIC_UNITS_ECONOMIC=value
export FABRIC_UNITS_POLITICAL=power
export FABRIC_UNITS_MILITARY=strength
export FABRIC_UNITS_SPACE=distance
export FABRIC_UNITS_TIME=seconds
export FABRIC_UNITS_AGE=years
export FABRIC_UNITS_HUMAN=quality
export FABRIC_UNITS_NATURE=balance
export FABRIC_UNITS_UNIVERSE=symmetry
export FABRIC_UNITS_DIVINE=harmony
export FABRIC_UNITS永恒=无尽
export FABRIC_UNITS无限=无界
export FABRIC_UNITS绝对=最高
export FABRIC_UNITS终极=最终
export FABRIC_UNITS神秘=未知
export FABRIC_UNITS奇迹=非凡
export FABRIC_UNITS启示=光明
export FABRIC_UNITS觉醒=意识
export FABRIC_UNITS进化=进步
export FABRIC_UNITS变革=更新
export FABRIC_UNITS团结=力量
export FABRIC_UNITS和谐=平衡
export FABRIC_UNITS爱=连接
export FABRIC_UNITS希望=未来
export FABRIC_UNITS勇气=挑战
export FABRIC_UNITS智慧=洞察
export FABRIC_UNITS直觉=灵感
export FABRIC_UNITS创意=表达
export FABRIC_UNITS艺术=美
export FABRIC_UNITS音乐=节奏
export FABRIC_UNITS舞蹈=运动
export FABRIC_UNITS戏剧=故事
export FABRIC_UNITS电影=影像
export FABRICUNITSSPORTS=竞技
export FABRICUNITSSCIENCE=探索
export FABRICUNITSEDUCATION=学习
export FABRICUNITSBUSINESS=交易
export FABRICUNITSGOVERNMENT=治理
export FABRICUNITSMILITARY=defense
export FABRICUNITSSPACE=exploration
export FABRICUNITSTIME=measurement
export FABRICUNITSAGE=calculation
export FABRICUNITSHUMAN=evaluation
export FABRICUNITSNATURE=protection
export FABRICUNITSDIVINE=worship
export FABRICUNITSENTERPRISE=operation
export FABRICUNITSCOMMUNITY=interaction
export FABRICUNITSFAMILY=relation
export FABRICUNITSWORK=task
export FABRICUNITSLIFE=experience
export FABRICUNITSPASSION=feeling
export FABRICUNITSHAPPINESS=emotion
export FABRICUNITSDISAPPOINTMENT=frustration
export FABRICUNITSSADNESS=grief
export FABRICUNITSRAGE=anger
export FABRICUNITSTERROR=fear
export FABRICUNITSCONFIDENCE=self-assurance
export FABRICUNITSCURIOSITY=inquiry
export FABRICUNITSCREATIVITY=innovation
export FABRICUNITSEVOLUTION=progress
export FABRICUNITSCONTINUITY=stability
export FABRICUNITSVARIETY=diversity
export FABRICUNITSLONGITUD=duration
export FABRICUNITSWIDTH=extent
export FABRICUNITSTHICKNESS=thickness
export FABRICUNITSLIGHTNESS=weight
export FABRICUNITSHARDNESS=durability
export FABRICUNITSSMOOTHNESS=finish
export FABRICUNITSCLEANLINESS=hygiene
export FABRICUNITSPURITY=quality
export FABRICUNITSCONSISTENCY=standardization
export FABRICUNITSSAFETY=security
export FABRICUNITSECURITY=protection
export FABRICUNITSSUSTAINABILITY=eco-friendly
export FABRICUNITSECOLOGY=environmental
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNANCE=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNATURE=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATIVITY=creative
export FABRICUNITSEVOLUTION=evolved
export FABRICUNITSCONTINUITY=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHARDNESS=durable
export FABRICUNITSSMOOTHNESS=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSISTENCY=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTAINABILITY=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNANCE=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNATURE=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATIVITY=creative
export FABRICUNITSEVOLUTION=evolved
export FABRICUNITSCONTINUITY=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHARDNESS=durable
export FABRICUNITSSMOOTHNESS=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSISTENCY=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTAINABILITY=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNANCE=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNATURE=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATIVITY=creative
export FABRICUNITSEVOLUTION=evolved
export FABRICUNITSCONTINUITY=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHARDNESS=durable
export FABRICUNITSSMOOTHNESS=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSISTENCY=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTAINABILITY=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNANCE=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNATURE=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATIVITY=creative
export FABRICUNITSEVOLUTION=evolved
export FABRICUNITSCONTINUITY=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHARDNESS=durable
export FABRICUNITSSMOOTHNESS=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSISTENCY=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTAINABILITY=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNANCE=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNATURE=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATIVITY=creative
export FABRICUNITSEVOLUTION=evolved
export FABRICUNITSCONTINUITY=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHARDNESS=durable
export FABRICUNITSSMOOTHNESS=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSISTENCY=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTAINABILITY=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNANCE=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNATURE=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATIVITY=creative
export FABRICUNITSEVOLUTION=evolved
export FABRICUNITSCONTINUITY=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHARDNESS=durable
export FABRICUNITSSMOOTHNESS=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSISTENCY=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTAINABILITY=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNANCE=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNATURE=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATIVITY=creative
export FABRICUNITSEVOLUTION=evolved
export FABRICUNITSCONTINUITY=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHARDNESS=durable
export FABRICUNITSSMOOTHNESS=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSISTENCY=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTAINABILITY=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNANCE=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNATURE=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATIVITY=creative
export FABRICUNITSEVOLUTION=evolved
export FABRICUNITSCONTINUITY=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHARDNESS=durable
export FABRICUNITSSMOOTHNESS=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSISTENCY=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTAINABILITY=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNANCE=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNATURE=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATIVITY=creative
export FABRICUNITSEVOLUTION=evolved
export FABRICUNITSCONTINUITY=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHARDNESS=durable
export FABRICUNITSSMOOTHNESS=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSISTENCY=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTainability=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNANCE=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNATURE=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATIVITY=creative
export FABRICUNITSEVOLUTION=evolved
export FABRICUNITSCONTINUITY=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHARDNESS=durable
export FABRICUNITSSMOOTHNESS=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSISTENCY=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTainability=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNANCE=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNATURE=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATIVITY=creative
export FABRICUNITSEVOLUTION=evolved
export FABRICUNITSCONTINUITY=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHARDNESS=durable
export FABRICUNITSSMOOTHNESS=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSISTENCY=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTainability=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNANCE=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNATURE=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATIVITY=creative
export FABRICUNITSEVOLUTION=evolved
export FABRICUNITSCONTINUity=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHARDNESS=durable
export FABRICUNITSSMOOTHNESS=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSISTENCY=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTainability=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNANCE=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNATURE=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATIVITY=creative
export FABRICUNITSEVOLUTION=evolved
export FABRICUNITSCONTINUity=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHARDNESS=durable
export FABRICUNITSSMOOTHness=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSISTENCY=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTainability=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNANCE=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNATURE=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATIVITY=creative
export FABRICUNITSEVOLUTION=evolved
export FABRICUNITSCONTINUity=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHARDNESS=durable
export FABRICUNITSSMOOTHness=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSISTENCY=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTainability=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNANCE=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNATURE=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATIVITY=creative
export FABRICUNITSEVOLUTION=evolved
export FABRICUNITSCONTINUity=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHARDNESS=durable
export FABRICUNITSSMOOTHness=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSISTENCY=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTainability=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNANCE=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNature=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATivity=creative
export FABRICUNITSEvolved
export FABRICUNITSCONTINUity=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHardness=durable
export FABRICUNITSSmoothness=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSistency=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTainability=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNance=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNature=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATivity=creative
export FABRICUNITSEvolved
export FABRICUNITSCONTINUity=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHardness=durable
export FABRICUNITSSmoothness=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSistency=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTainability=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNance=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNature=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATivity=creative
export FABRICUNITSEvolved
export FABRICUNITSCONTINUity=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHardness=durable
export FABRICUNITSSmoothness=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSistency=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTainability=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNance=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNature=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATivity=creative
export FABRICUNITSEvolved
export FABRICUNITSCONTINUity=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHardness=durable
export FABRICUNITSSmoothness=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSistency=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTainability=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNance=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNature=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATivity=creative
export FABRICUNITSEvolved
export FABRICUNITSCONTINUity=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHardness=durable
export FABRICUNITSSmoothness=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSistency=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTainability=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNance=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNature=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATivity=creative
export FABRICUNITSEvolved
export FABRICUNITSCONTINUity=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHardness=durable
export FABRICUNITSSmoothness=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSistency=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTainability=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNance=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNature=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATivity=creative
export FABRICUNITSEvolved
export FABRICUNITSCONTINUity=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHardness=durable
export FABRICUNITSSmoothness=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSistency=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTainability=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNance=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNature=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPPINESS=experienced
export FABRICUNITSDISAPPOINTMENT=frustrated
export FABRICUNITSSADNESS=grieved
export FABRICUNITSRAGE=angered
export FABRICUNITSTERROR=afraid
export FABRICUNITSCONFIDENCE=assured
export FABRICUNITSCURIOSITY=curious
export FABRICUNITSCREATivity=creative
export FABRICUNITSEvolved
export FABRICUNITSCONTINUity=continued
export FABRICUNITSVARIETY=varied
export FABRICUNITSLONGITUD=long
export FABRICUNITSWIDTH=wide
export FABRICUNITSTHICKNESS=thick
export FABRICUNITSLIGHTNESS=light
export FABRICUNITSHardness=durable
export FABRICUNITSSmoothness=smooth
export FABRICUNITSCLEANLINESS=clean
export FABRICUNITSPURITY=pure
export FABRICUNITSCONSistency=consistent
export FABRICUNITSSAFETY=safe
export FABRICUNITSECURITY=protected
export FABRICUNITSSUSTainability=sustainable
export FABRICUNITSECOLOGY=ecological
export FABRICUNITSECONOMY=economic
export FABRICUNITSGOVERNance=political
export FABRICUNITSMILITARY=defensive
export FABRICUNITSSPACE=exploratory
export FABRICUNITSTIME=measurable
export FABRICUNITSAGE=calculable
export FABRICUNITSHUMAN=evaluable
export FABRICUNITSNature=protectable
export FABRICUNITSDIVINE=worshipable
export FABRICUNITSENTERPRISE=operatable
export FABRICUNITSCOMMUNITY=interactable
export FABRICUNITSFAMILY=relatable
export FABRICUNITSWORK=performable
export FABRICUNITSLIFE=experienced
export FABRICUNITSPASSION=felt
export FABRICUNITSHAPP...

# Golang 环境变量
export GOROOT=/usr/local/go
export GOPATH=$HOME/go

# 更新 PATH 以包含 GOPATH 和 GOROOT 的二进制文件
export PATH=$GOPATH/bin:$GOROOT/bin:$HOME/.local/bin:$PATH

适用于基于 Apple Silicon 的 Mac 设备:

# Golang 环境变量
export GOROOT=$(brew --prefix go)/libexec
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$GOROOT/bin:$HOME/.local/bin:$PATH

设置

现在运行以下命令:

# 运行设置脚本以配置目录和密钥
fabric --setup

如果一切正常,您就可以开始使用了。

支持的 AI 提供商

Fabric 支持广泛的 AI 提供商:

原生集成:

  • OpenAI
  • OpenAI Codex(通过私有后端 OAuth 订阅 ChatGPT/Codex)
  • Anthropic(Claude)
  • Google Gemini
  • Ollama(本地模型)
  • Azure OpenAI
  • Amazon Bedrock
  • Vertex AI
  • LM Studio
  • Perplexity

兼容 OpenAI 的提供商:

  • Abacus
  • AIML
  • Cerebras
  • DeepSeek
  • DigitalOcean
  • GitHub Models
  • GrokAI
  • Groq
  • Langdock
  • LiteLLM
  • MiniMax
  • Mistral
  • Novita AI
  • OpenRouter
  • SiliconCloud
  • Together
  • Venice AI
  • Z AI

运行 fabric --setup 来配置您首选的提供商,或者使用 fabric --listvendors 查看所有可用的提供商。

按模式映射模型

您可以使用环境变量为各个模式配置特定的模型,例如 FABRIC_MODEL_PATTERN_NAME=vendor|model

这样可以方便地将这些按模式的模型映射保存在您的 shell 启动文件中。

为所有模式添加别名

为了为所有模式添加别名,并直接将其作为命令使用,例如用 summarize 代替 fabric --pattern summarize,您可以将以下内容添加到 .zshrc.bashrc 文件中。您也可以选择在之前设置 FABRIC_ALIAS_PREFIX 环境变量,如果您希望所有的 Fabric 别名都以相同的前缀开头。

# 遍历 ~/.config/fabric/patterns 目录下的所有文件
for pattern_file in $HOME/.config/fabric/patterns/*; do
    # 获取文件的基本名称(即去掉目录路径)
    pattern_name="$(basename "$pattern_file")"
    alias_name="${FABRIC_ALIAS_PREFIX:-}${pattern_name}"

    # 创建别名,格式为:alias pattern_name="fabric --pattern pattern_name"
    alias_command="alias $alias_name='fabric --pattern $pattern_name'"

    # 执行别名命令以将其添加到当前 shell 中
    eval "$alias_command"
done

yt() {
    if [ "$#" -eq 0 ] || [ "$#" -gt 2 ]; then
        echo "用法: yt [-t | --timestamps] youtube-link"
        echo "使用 '-t' 标志可获取带时间戳的字幕。"
        return 1
    fi

    transcript_flag="--transcript"
    if [ "$1" = "-t" ] || [ "$1" = "--timestamps" ]; then
        transcript_flag="--transcript-with-timestamps"
        shift
    fi
    local video_link="$1"
    fabric -y "$video_link" $transcript_flag
}

您可以在 PowerShell 窗口中运行 notepad $PROFILE,然后将以下代码添加到 PowerShell 中以创建等效的别名:

# 模式目录的路径
$patternsPath = Join-Path $HOME ".config/fabric/patterns"
foreach ($patternDir in Get-ChildItem -Path $patternsPath -Directory) {
    # 如果设置了 FABRIC_ALIAS_PREFIX,则在其前面加上;否则使用空字符串
    $prefix = $env:FABRIC_ALIAS_PREFIX ?? ''
    $patternName = "$($patternDir.Name)"
    $aliasName = "$prefix$patternName"
    # 动态定义每个模式的函数
    $functionDefinition = @"
function $aliasName {
    [CmdletBinding()]
    param(
        [Parameter(ValueFromPipeline = `$true)]
        [string] `$InputObject,

        [Parameter(ValueFromRemainingArguments = `$true)]
        [String[]] `$patternArgs
    )

    begin {
        # 初始化一个数组来收集管道输入
        `$collector = @()
    }

    process {
        # 收集管道输入对象
        if (`$InputObject) {
            `$collector += `$InputObject
        }
    }

    end {
        # 将所有管道输入连接成一个字符串,用换行符分隔
        `$pipelineContent = `$collector -join "`n"

        # 如果有管道输入,将其包含在调用 fabric 的命令中
        if (`$pipelineContent) {
            `$pipelineContent | fabric --pattern $patternName `$patternArgs
        } else {
            # 没有管道输入;直接调用 fabric 并传递额外参数
            fabric --pattern $patternName `$patternArgs
        }
    }
}
"@
    # 将函数添加到当前会话
    Invoke-Expression $functionDefinition
}

# 定义 'yt' 函数
function yt {
    [CmdletBinding()]
    param(
        [Parameter()]
        [Alias("timestamps")]
        [switch]$t,

        [Parameter(Position = 0, ValueFromPipeline = $true)]
        [string]$videoLink
    )

    begin {
        $transcriptFlag = "--transcript"
        if ($t) {
            $transcriptFlag = "--transcript-with-timestamps"
        }
    }

    process {
        if (-not $videoLink) {
            Write-Error "用法: yt [-t | --timestamps] youtube-link"
            return
        }
    }

    end {
        if ($videoLink) {
            # 执行并允许输出通过管道流动
            fabric -y $videoLink $transcriptFlag
        }
    }
}

这还会创建一个 yt 别名,使您可以使用 yt https://www.youtube.com/watch?v=4b0iet22VIk 来获取字幕、评论和元数据。

使用别名将文件保存为 Markdown 格式

如果您除了上述别名之外,还希望可以选择将输出保存到您最喜欢的 Markdown 笔记库中,例如 Obsidian,那么请将以下内容添加到您的 .zshrc.bashrc 文件中,而不是上面的内容:

# 定义 Obsidian 笔记的基目录
obsidian_base="/path/to/obsidian"

# 遍历 ~/.config/fabric/patterns 目录中的所有文件
for pattern_file in ~/.config/fabric/patterns/*; do
    # 获取文件的基本名称(即去掉目录路径)
    pattern_name=$(basename "$pattern_file")

    # 移除任何已存在的同名别名
    unalias "$pattern_name" 2>/dev/null

    # 为每个模式动态定义一个函数
    eval "
    $pattern_name() {
        local title=\$1
        local date_stamp=\$(date +'%Y-%m-%d')
        local output_path=\"\$obsidian_base/\${date_stamp}-\${title}.md\"

        # 检查是否提供了标题
        if [ -n \"\$title\" ]; then
            # 如果提供了标题,则使用指定的输出路径
            fabric --pattern \"$pattern_name\" -o \"\$output_path\"
        else
            # 如果未提供标题,则使用 --stream 模式
            fabric --pattern \"$pattern_name\" --stream
        fi
    }
    "
done

这样,你就可以像前面示例中那样,将这些模式作为别名来使用,例如直接输入 summarize 而不必键入完整的 fabric --pattern summarize --stream 命令。不过,如果你传递额外的参数,比如 summarize "my_article_title",生成的文件将会保存到你在 obsidian_base="/path/to/obsidian" 中设置的目标路径下,文件名格式为 YYYY-MM-DD-my_article_title.md,其中日期会自动生成。

你可以通过调整 date_stamp 的格式来修改日期的显示方式。

迁移

如果你已经安装了旧版(Python)的 Fabric,并希望迁移到 Go 版本,可以按照以下步骤操作:首先卸载 Python 版本,然后安装 Go 版本。

# 卸载旧版 Fabric
pipx uninstall fabric

# 清除任何旧的 Fabric 别名
(检查你的 .bashrc、.zshrc 等配置文件)
# 安装 Go 版本
go install github.com/danielmiessler/fabric/cmd/fabric@latest
# 运行新版本的初始化脚本。这很重要,因为一些设置已经发生了变化
fabric --setup

之后,请按照上述说明设置环境变量

升级

Go 版本的一个优点是升级非常简单。只需运行与首次安装相同的命令,即可始终获得最新版本。

go install github.com/danielmiessler/fabric/cmd/fabric@latest

Shell 补全

Fabric 提供了针对 Zsh、Bash 和 Fish shell 的补全脚本,通过为命令和选项提供 Tab 自动补全功能,使 CLI 的使用更加便捷。

快速安装(无需克隆)

你可以通过一条命令直接安装补全功能:

curl -fsSL https://raw.githubusercontent.com/danielmiessler/Fabric/refs/heads/main/completions/setup-completions.sh | sh

可选变体:

# 干运行(查看操作而不更改系统)
curl -fsSL https://raw.githubusercontent.com/danielmiessler/Fabric/refs/heads/main/completions/setup-completions.sh | sh -s -- --dry-run

# 覆盖下载源(高级用法)
FABRIC_COMPLETIONS_BASE_URL="https://raw.githubusercontent.com/danielmiessler/Fabric/refs/heads/main/completions" \
    sh -c "$(curl -fsSL https://raw.githubusercontent.com/danielmiessler/Fabric/refs/heads/main/completions/setup-completions.sh)"

Zsh 补全

要启用 Zsh 补全:

# 将补全文件复制到 $fpath 中的某个目录
mkdir -p ~/.zsh/completions
cp completions/_fabric ~/.zsh/completions/

# 在 .zshrc 文件中,在 compinit 之前将该目录添加到 fpath
echo 'fpath=(~/.zsh/completions $fpath)' >> ~/.zshrc
echo 'autoload -Uz compinit && compinit' >> ~/.zshrc

Bash 补全

要启用 Bash 补全:

# 在你的 .bashrc 文件中加载补全脚本
echo 'source /path/to/fabric/completions/fabric.bash' >> ~/.bashrc

# 或者将其复制到系统范围的 Bash 补全目录
sudo cp completions/fabric.bash /etc/bash_completion.d/

Fish 补全

要启用 Fish 补全:

# 将补全文件复制到 Fish 的补全目录
mkdir -p ~/.config/fish/completions
cp completions/fabric.fish ~/.config/fish/completions/

使用方法

设置完成后,以下是使用方法。

fabric -h
用法:
  fabric [选项]

应用选项:
  -p, --pattern=                    从可用模式中选择一个模式
  -v, --variable=                   模式变量的值,例如 -v=#role:expert -v=#points:30
  -C, --context=                    从可用上下文中选择一个上下文
      --session=                    从可用会话中选择一个会话
  -a, --attachment=                 附件路径或 URL(例如用于 OpenAI 图像识别的消息)
  -S, --setup                       运行 Fabric 中所有可配置部分的设置
  -t, --temperature=                设置温度(默认:0.7)
  -T, --topp=                       设置 top P(默认:0.9)
  -s, --stream                      流式输出
  -P, --presencepenalty=            设置存在惩罚(默认:0.0)
  -r, --raw                         使用模型的默认设置,不发送聊天选项
                                    (温度、top_p 等)。仅影响与 OpenAI 兼容的提供商。
                                    Anthropic 模型始终使用智能参数选择,以符合
                                    模型特定的要求。
  -F, --frequencypenalty=           设置频率惩罚(默认:0.0)
  -l, --listpatterns                列出所有模式
  -L, --listmodels                  列出所有可用模型
  -x, --listcontexts                列出所有上下文
  -X, --listsessions                列出所有会话
  -U, --updatepatterns              更新模式
  -c, --copy                        复制到剪贴板
  -m, --model=                      选择模型
  -V, --vendor=                     指定所选模型的供应商(例如,-V "LM Studio" -m openai/gpt-oss-20b)
      --modelContextLength=         模型上下文长度(仅影响 ollama)
  -o, --output=                     输出到文件
      --output-session              将整个会话(包括临时会话)输出到指定文件
  -n, --latest=                     列出最新模式的数量(默认:0)
  -d, --changeDefaultModel          更改默认模型
  -y, --youtube=                    YouTube 视频或播放列表的“URL”,用于抓取其字幕、评论,
                                    并将其发送到聊天或打印到控制台,同时存储到
                                    输出文件中
      --playlist                    如果 URL 中同时包含视频和播放列表 ID,则优先选择播放列表
      --transcript                  抓取 YouTube 视频的字幕并发送到聊天(默认行为)。
      --transcript-with-timestamps  抓取带时间戳的 YouTube 视频字幕并发送到聊天
      --comments                    抓取 YouTube 视频的评论并发送到聊天
      --metadata                    输出视频元数据
  -g, --language=                   指定聊天的语言代码,例如 -g=en -g=zh
  -u, --scrape_url=                 使用 Jina AI 将网站 URL 抓取为 Markdown 格式
  -q, --scrape_question=            使用 Jina AI 搜索问题
  -e, --seed=                       用于 LMM 生成的随机种子
  -w, --wipecontext=                清除上下文
  -W, --wipesession=                清除会话
      --printcontext=               打印上下文
      --printsession=               打印会话
      --readability                 将 HTML 输入转换为干净、易读的视图
      --input-has-vars              将变量应用于用户输入
      --no-variable-replacement     禁用模式变量替换
      --dry-run                     显示将要发送给模型的内容,但不实际发送
      --serve                       提供 Fabric Rest API 服务
      --serveOllama                 提供带有 ollama 端点的 Fabric Rest API 服务
      --address=                    绑定 REST API 的地址(默认::8080)
      --api-key=                    用于保护服务器路由的 API 密钥
      --config=                     YAML 配置文件路径
      --version                     打印当前版本
      --listextensions              列出所有已注册的扩展
      --addextension=               从配置文件路径注册新扩展
      --rmextension=                按名称移除已注册的扩展
      --strategy=                   从可用策略中选择一个策略
      --liststrategies              列出所有策略
      --listvendors                 列出所有供应商
      --shell-complete-list         输出原始列表,不含标题和格式(用于 shell 补全)
      --search                      为支持的模型启用网络搜索工具(Anthropic、OpenAI、Gemini)
      --search-location=            设置网络搜索结果的位置(例如 'America/Los_Angeles')
      --image-file=                 将生成的图像保存到指定文件路径(例如 'output.png')
      --image-size=                 图像尺寸:1024x1024、1536x1024、1024x1536、自动(默认:自动)
      --image-quality=              图像质量:低、中、高、自动(默认:自动)
      --image-compression=          JPEG/WebP 格式的压缩级别 0-100(默认:未设置)
      --image-background=           背景类型:不透明、透明(默认:不透明,仅适用于 PNG/WebP)
      --suppress-think              抑制包含思考标签的文本
      --think-start-tag=            思考部分的开始标签(默认:<think>)
      --think-end-tag=              思考部分的结束标签(默认:</think>)
      --disable-responses-api       禁用 OpenAI Responses API(默认:未禁用)
      --voice=                      支持的模型的 TTS 音色名称(例如 Kore、Charon、Puck)
                                    (默认:Kore)
      --list-gemini-voices          列出所有可用的 Gemini TTS 音色
      --notification                在命令完成时发送桌面通知
      --notification-command=       用于通知的自定义命令(覆盖内置通知)
      --yt-dlp-args=                传递给 yt-dlp 的附加参数(例如 '--cookies-from-browser brave')
      --thinking=                   设置推理/思考级别(例如,关闭、低、中、高,或针对 Anthropic 或 Google Gemini 的数值标记)
      --show-metadata               打印元数据(输入/输出标记)到 stderr
      --debug=                     设置调试级别(0:关闭,1:基本,2:详细,3:跟踪)
帮助选项:
  -h, --help                        显示此帮助信息

调试级别

使用 --debug 标志来控制运行时日志记录:

  • 0:关闭(默认)
  • 1:基本调试信息
  • 2:详细调试
  • 3:跟踪级别

模拟运行模式

使用 --dry-run 可以预览在不进行 API 调用的情况下会发送给 AI 模型的内容:

echo "test input" | fabric --dry-run -p summarize

这在调试模式、检查提示构造以及在消耗 API 资源之前验证输入格式时非常有用。

扩展功能

Fabric 支持可在模式中调用的扩展功能。完整文档请参阅扩展指南

重要提示: 扩展功能仅在模式文件中有效,不能通过直接从标准输入传递数据来使用。详情和示例请参阅该指南。

REST API 服务器

Fabric 内置了一个 REST API 服务器,可通过 HTTP 暴露所有核心功能。启动服务器的命令如下:

fabric --serve

该服务器提供了以下端点:

  • 带流式响应的聊天完成
  • 模式管理(创建、读取、更新、删除)
  • 上下文和会话管理
  • 模型和供应商列表
  • YouTube 字幕提取
  • 配置管理

有关完整的端点文档、身份验证设置及使用示例,请参阅REST API 文档

Ollama 兼容模式

Fabric 可以作为 Ollama 的直接替代品,通过暴露与 Ollama 兼容的 API 端点来实现。启动服务器的命令如下:

fabric --serve --serveOllama

这将启用以下与 Ollama 兼容的端点:

  • GET /api/tags - 列出可用的模式作为模型
  • POST /api/chat - 聊天完成
  • GET /api/version - 服务器版本

配置为使用 Ollama API 的应用程序可以指向您的 Fabric 服务器,从而允许您通过 Ollama 接口使用 Fabric 支持的任何 AI 提供商。模式会显示为模型(例如 summarize:latest)。

我们的提示设计方法

Fabric 的“模式”与您通常看到的大多数提示有所不同。

  • 首先,我们使用 Markdown 来确保最大的可读性和可编辑性。这不仅有助于创建者编写高质量的提示,也方便任何希望深入理解其作用的人。更重要的是,这也包括您发送提示的 AI!

以下是一个 Fabric 模式的示例:

https://github.com/danielmiessler/Fabric/blob/main/data/patterns/extract_wisdom/system.md
pattern-example
  • 其次,我们的指令非常清晰,并利用 Markdown 结构来强调我们希望 AI 完成的任务及其顺序。

  • 最后,我们倾向于几乎只使用提示中的系统部分。在过去一年多的时间里,我们发现采用这种方式效果更好。如果情况发生变化,或者有数据表明其他方式更优,我们会相应调整。

示例

以下示例使用 macOS 的 pbpaste 从剪贴板粘贴内容。Windows 和 Linux 的替代方案请参阅下方的 pbpaste 部分。

现在让我们看看使用 Fabric 可以做些什么。

  1. 根据标准输入运行 summarize 模式。在此示例中,输入是一篇文章的内容。

    pbpaste | fabric --pattern summarize
    
  2. 使用 --stream 选项运行 analyze_claims 模式,以获得即时且流式的输出。

    pbpaste | fabric --stream --pattern analyze_claims
    
  3. 使用 --stream 选项运行 extract_wisdom 模式,从任意 YouTube 视频中获取即时且流式的智慧摘要(类似于最初的介绍视频)。

    fabric -y "https://youtube.com/watch?v=uXs-zPc63kM" --stream --pattern extract_wisdom
    
  4. 创建模式——您需要创建一个包含模式的 .md 文件,并将其保存到 ~/.config/fabric/patterns/[yourpatternname] 目录中。

  5. 对网站运行 analyze_claims 模式。Fabric 使用 Jina AI 将 URL 抓取为 Markdown 格式,然后再发送给模型。

    fabric -u https://github.com/danielmiessler/fabric/ -p analyze_claims
    

直接使用模式

fabric-patterns-screenshot

如果您不想进行复杂操作,只想使用大量优秀的提示,可以直接前往 /patterns 目录开始探索!

我们希望即使您只使用 Fabric 中的模式,这个项目也能为您带来价值。

您可以将其中看到的任何模式用于您拥有的任何 AI 应用程序,无论是 ChatGPT 还是其他应用或网站。我们的计划和预测是,人们很快会分享比我们发布的更多的模式,而且这些模式的质量将远远超过我们的水平。

众包智慧终将胜出。

提示策略

Fabric 还实现了诸如“思维链”或“草稿链”之类的提示策略,这些策略可以与基础模式结合使用。

有关提示策略的示例,请参阅论文《通过减少写作更快思考》(arxiv.org/pdf/2502.18600)以及Learn Prompting 的“思维生成”章节

每种策略都以小型 JSON 文件的形式存储在 /strategies 目录中。

策略对提示的修改会应用于系统提示,并在聊天会话中传递给 LLM。

使用 fabric -S 并选择将策略安装到您的 ~/.config/fabric 目录中。

可用策略

Fabric 包含多种提示策略:

  • cot - 思维链:逐步推理
  • cod - 草稿链:迭代草稿,每步最多 5 个词
  • tot - 思维树:生成多条推理路径并选择最佳路径
  • aot - 思维原子:将问题分解为最小的独立子问题
  • ltm - 由简入繁:按难度从小到大解决子问题
  • self-consistent - 自洽:多条推理路径达成共识
  • self-refine - 自我精炼:回答、批判并改进
  • reflexion - 反思:回答、简要批判并提供改进后的答案
  • standard - 标准:直接给出答案,不作解释

使用 --strategy 标志应用策略:

echo "分析这段代码" | fabric --strategy cot -p analyze_code

列出所有可用策略的命令如下:

fabric --liststrategies

策略以 JSON 文件的形式存储在 ~/.config/fabric/strategies/ 目录中。请参阅默认策略以了解格式规范。

自定义模式

你可能希望使用 Fabric 创建自己的自定义模式,但又不想与他人共享。这完全没问题!

Fabric 现在支持一个专用的自定义模式目录,可以将你的个人模式与内置模式分开存储。这意味着当你更新 Fabric 的内置模式时,你的自定义模式不会被覆盖。

设置自定义模式

  1. 运行 Fabric 的设置命令:

    fabric --setup
    
  2. 在“工具”菜单中选择“自定义模式”选项,并输入你想要的目录路径(例如 ~/my-custom-patterns)。

  3. 如果该目录不存在,Fabric 会自动创建它。

使用自定义模式

  1. 创建你的自定义模式目录结构:

    mkdir -p ~/my-custom-patterns/my-analyzer
    
  2. 创建你的模式文件:

    echo "You are an expert analyzer of ..." > ~/my-custom-patterns/my-analyzer/system.md
    
  3. 使用你的自定义模式:

    fabric --pattern my-analyzer "analyze this text"
    

工作原理

  • 优先级系统:自定义模式会优先于同名的内置模式。
  • 无缝集成:自定义模式会与内置模式一起出现在 fabric --listpatterns 中。
  • 更新安全:你的自定义模式永远不会受到 fabric --updatepatterns 的影响。
  • 默认私有:自定义模式默认是私有的,除非你明确分享它们。

你的自定义模式完全私密,不会受到 Fabric 更新的影响!

辅助应用

Fabric 还使用了一些核心辅助应用(工具),以帮助你更轻松地将其集成到各种工作流中。以下是一些示例:

to_pdf

to_pdf 是一个辅助命令,用于将 LaTeX 文件转换为 PDF 格式。你可以这样使用它:

to_pdf input.tex

这将在同一目录下生成一个基于输入 LaTeX 文件的 PDF 文件。

你也可以将其与标准输入结合使用,这与 write_latex 模式完美配合:

echo "ai security primer" | fabric --pattern write_latex | to_pdf

这将在当前目录下生成一个名为 output.pdf 的 PDF 文件。

安装 to_pdf

要安装 to_pdf,你可以像安装 Fabric 一样进行安装,只需使用不同的仓库名称即可。

go install github.com/danielmiessler/fabric/cmd/to_pdf@latest

请确保你的系统上已安装 LaTeX 发行版(如 TeX Live 或 MiKTeX),因为 to_pdf 需要系统 PATH 中存在 pdflatex

code2context

code2contextcreate_coding_feature 模式配合使用。它可以生成代码目录的 JSON 表示,然后将其输入到 AI 模型中,以按照指定方式创建新功能或编辑代码。

详细信息请参阅 Create Coding Feature Pattern README

首先使用以下命令安装它:

go install github.com/danielmiessler/fabric/cmd/code2context@latest

generate_changelog

generate_changelog 可以根据 Git 提交历史和 GitHub 拉取请求生成变更日志。它会遍历你的仓库的 Git 历史,提取 PR 信息,并生成格式良好的 Markdown 变更日志。

generate_changelog --help

其功能包括 SQLite 缓存以实现快速增量更新、GitHub GraphQL API 集成以高效获取 PR,以及可选的使用 Fabric 的 AI 增强摘要。

使用以下命令安装它:

go install github.com/danielmiessler/fabric/cmd/generate_changelog@latest

有关详细的用法和选项,请参阅 generate_changelog README

pbpaste

示例中,使用了 macOS 系统中的 pbpaste 程序,将剪贴板内容粘贴并作为管道输入传递给 fabricpbpaste 在 Windows 和 Linux 系统上不可用,但有替代方案。

在 Windows 上,你可以从 PowerShell 命令提示符中使用 Get-Clipboard 命令。如果你愿意,还可以将其别名为 pbpaste。如果使用的是经典 PowerShell,编辑 ~\Documents\WindowsPowerShell\.profile.ps1 文件;如果是 PowerShell Core,则编辑 ~\Documents\PowerShell\.profile.ps1 文件,并添加如下别名:

Set-Alias pbpaste Get-Clipboard

在 Linux 系统上,你可以使用 xclip -selection clipboard -o 来粘贴剪贴板内容。你可能需要通过包管理器安装 xclip。对于基于 Debian 的系统(包括 Ubuntu):

sudo apt update
sudo apt install xclip -y

你还可以通过编辑 ~/.bashrc~/.zshrc 文件来创建别名:

alias pbpaste='xclip -selection clipboard -o'

Web 界面(Fabric Web 应用)

Fabric 现在包含一个内置的 Web 界面,提供了图形用户界面作为命令行界面的替代方案。有关安装说明和功能概述,请参阅 Web App README

元数据

[!NOTE] 特别感谢以下人员的启发与贡献!

  • Jonathan Dunn 是该项目当之无愧的核心开发者,不仅主导了新的 Go 版本开发,还负责 GUI 的设计!而他同时还是全职医生!
  • Caleb Sima 推动我最终决定是否将此项目开源。
  • Eugen EislerFrederick Ros 对 Go 版本做出了宝贵贡献。
  • David Peters 负责 Web 界面的工作。
  • Joel Parish 对项目的 Github 目录结构提出了非常有用的建议。
  • Joseph Thacker 提出了 -c 上下文标志的想法,该标志会将预先创建的上下文添加到 ./config/fabric/ 目录中,供所有模式查询使用。
  • Jason Haddix 提出了“串联模式”的想法,即在将内容发送到云端模型之前,先使用本地模型进行过滤——例如,在将客户数据发送到 gpt-4 进行分析之前,先使用 llama2 进行清洗。
  • Andre Guerra 协助处理了多个组件,使整个项目更加简单易维护。

主要贡献者

Daniel Miessler Jonathan Dunn Scott Behrens Andre Guerra

贡献者

contrib.rocks

contrib.rocks 制作。

fabricDaniel Miessler 于 2024 年 1 月创建。

X(原 Twitter)关注

💜 支持本项目

赞助

我每年会投入数百小时在开源项目上。如果您想支持这个项目,可以在这里 赞助我。🙏🏼

版本历史

v1.4.4422026/03/26
v1.4.4412026/03/22
v1.4.4402026/03/19
v1.4.4392026/03/18
v1.4.4382026/03/18
v1.4.4372026/03/16
v1.4.4362026/03/15
v1.4.4352026/03/15
v1.4.4342026/03/09
v1.4.4332026/03/07
v1.4.4322026/03/06
v1.4.4312026/03/06
v1.4.4302026/03/06
v1.4.4292026/03/05
v1.4.4282026/03/02
v1.4.4272026/03/01
v1.4.4262026/02/28
v1.4.4252026/02/28
v1.4.4242026/02/27
v1.4.4232026/02/26

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|昨天
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|2天前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

143.9k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.9k|★★☆☆☆|昨天
开发框架图像Agent

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|昨天
插件开发框架

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|昨天
语言模型图像Agent