MCPcopy
hub / github.com/danielmiessler/Fabric

github.com/danielmiessler/Fabric @v1.4.455 sqlite

repository ↗ · DeepWiki ↗ · release v1.4.455 ↗
1,568 symbols 5,454 edges 269 files 555 documented · 35%
README
<a href="https://go.warp.dev/fabric" target="_blank">
    <sup>特别鸣谢:</sup>



    <img alt="Warp sponsorship" width="400" src="https://raw.githubusercontent.com/warpdotdev/brand-assets/refs/heads/main/Github/Sponsor/Warp-Github-LG-02.png">



    <h>Warp,专为多 AI 智能体编程而生</b>



    <sup>支持 macOS, Linux 和 Windows</sup>
</a>

fabriclogo

fabric

Static Badge

GitHub top language GitHub last commit License: MIT Ask DeepWiki

fabric 是一个使用 AI 来增强人类能力的开源框架。

English · 中文

Screenshot of fabric

更新日志什么是 Fabric 及其原因哲学理念安装指南使用方法REST API示例直接使用 Patterns自定义 Patterns辅助应用元数据

什么是 Fabric 及其原因

自 2022 年底现代 AI 兴起以来,我们看到了海量的用于完成任务的 AI 应用。有成千上万的网站、聊天机器人、移动应用和其他接口可供使用。

这一切都非常令人兴奋且强大,但是_将这些功能整合到我们的生活中并不容易_。

换句话说,AI 没有能力问题——它有的是整合问题。

Fabric 的诞生就是为了解决这个问题,通过创建和组织 AI 的基本单元——Prompt(提示词)本身!

Fabric 按照现实世界中的任务来组织 Prompt,允许人们在一个地方创建、收集和组织他们最重要的 AI 解决方案,以便在他们最喜欢的工具中使用。如果你喜欢命令行,你甚至可以直接把 Fabric 本身作为接口使用!

更新日志

若想深入了解 Fabric 及其内部机制,请阅读 docs 文件夹 中的文档。这里还有一个极其有用且定期更新的 Fabric DeepWiki

点击查看最近更新

亲爱的用户:

我们在 Fabric 做了很多激动人心的事情,我想在这里做一个简短的总结,让您感受一下我们的开发速度!

以下是我们添加的新功能和特性(最新在前):

最近的主要功能

  • v1.4.437 (2026年3月16日) — OpenAI Codex 插件:Fabric 现在支持使用 OpenAI Codex 作为后端(需订阅)!
  • v1.4.417 (2026年2月21日) — Azure AI Gateway 插件:添加了 Azure AI Gateway 插件,支持通过统一的 Azure APIM Gateway 和共享订阅密钥身份验证连接多个后端 (AWS Bedrock, Azure OpenAI, Google Vertex AI)。
  • v1.4.416 (2026年2月21日) — Azure Entra ID 身份验证:添加了带有共享 Azure 实用程序、Entra ID/MSAL 支持的认证插件,并将通用的 Azure 逻辑提取到可重用的 azurecommon 包中。
  • v1.4.380 (2026年1月15日) — Microsoft 365 Copilot 集成:添加了对企业版 Microsoft 365 Copilot 的支持。
  • v1.4.378 (2026年1月14日) — Digital Ocean GenAI 支持:添加了对 Digital Ocean GenAI 的支持,以及使用指南
  • v1.4.356 (2025年12月22日) — 完整的国际化支持
  • v1.4.350 (2025年12月18日) — 交互式 API 文档:在 /swagger/index.html 添加了 Swagger/OpenAPI UI。
  • v1.4.338 (2025年12月4日) — 添加了 Abacus 供应商支持(RouteLLM APIs)。
  • v1.4.337 (2025年12月4日) — 添加 "Z AI" 供应商支持(Z AI overview)。
  • v1.4.334 (2025年11月26日) — Claude Opus 4.5 支持。
  • v1.4.331 (2025年11月23日) — GitHub Models 支持
  • v1.4.322 (2025年11月5日) — 交互式 HTML 概念图与 Claude Sonnet 4.5
  • v1.4.317 (2025年9月21日) — 葡萄牙语变体支持:支持巴西葡萄牙语 (pt-BR) 和欧洲葡萄牙语 (pt-PT)。
  • v1.4.314 (2025年9月17日) — Azure OpenAI 迁移:迁移到官方 openai-go/azure SDK。
  • v1.4.311 (2025年9月13日) — 更多国际化支持:添加了德语、波斯语、法语、意大利语、日语、葡萄牙语、中文。
  • v1.4.309 (2025年9月9日) — 全面的国际化支持:包含英语和西班牙语语言文件。
  • v1.4.303 (2025年8月29日) — 新二进制版本:Linux ARM 和 Windows ARM 目标,支持树莓派和 Windows Surface。
  • v1.4.294 (2025年8月20日) — Venice AI 支持:添加了隐私优先的开源 AI 提供商 Venice AI("About Venice")。
  • v1.4.291 (2025年8月18日) — 语音转文字:添加了 OpenAI 语音转文字支持,包含 --transcribe-file--transcribe-model--split-media-file 标志。

这些功能代表了我们致力于使 Fabric 成为最强大、最灵活的 AI 增强框架的承诺!

介绍视频

请注意,以下很多视频是在 Fabric 还是基于 Python 的时代录制的,所以请务必使用下方最新的安装指南

目录

变更记录

Fabric 正在快速演进。

请查阅 CHANGELOG 了解所有最新变更。

哲学理念

将问题拆解成组件

我们在日常工作和生活中经常遇到的问题是难以自动化完成一件大而复杂的事情。

以"写一篇文章"为例。这很难做到,即使对 AI 而言也是如此。为什么呢?因为你要写什么?谁是你的受众?写作基调是怎样的?一旦写完,你打算把它放在哪里?你需要配合图片吗?

解决复杂系统的最佳方法是将它们分解成单一职责的组件(模块)。

太多的 Prompt (提示词)

这就引出了我们对 Prompt 的处理方法。我们不仅需要将问题分解为组件,我们还需要让这些组件具有独立存在的价值。并且我们需要为这些组件命名,这样我们就能快速找到它们。

在 Fabric 之前,你可能有很多 Prompt 散落在你的笔记、桌面文件中,或者只存在于你的脑海里。

[!NOTE] Fabric 的核心是一个包含独立、针对特定问题的 Markdown 格式 Prompt 库,我们称之为 Patterns (模式)

除了这套精心构建的 Prompt 之外,Fabric 还提供了一套原生于 Go 语言(过去是 Python)的命令行工具。

Fabric 拥有适用于各种生活和工作场景的 Patterns,包括:

  • 提取 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

使用 Microsoft 官方支持的 Winget 工具:

winget install danielmiessler.Fabric

Windows (Scoop)

scoop install fabric-ai

从源码构建

安装 Fabric 前,请先确保已安装 Go,然后运行:

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:/home/appuser/.config/fabric kayvan/fabric:latest --setup

# 使用你的 patterns
docker run --rm -it -v $HOME/.fabric-config:/home/appuser/.config/fabric kayvan/fabric:latest -p summarize

# 运行 REST API 服务器
docker run --rm -it -p 8080:8080 -v $HOME/.fabric-config:/home/appuser/.config/fabric kayvan/fabric:latest --serve

镜像来源:

请参阅 scripts/docker/README.md 了解自定义镜像构建和高级配置。

环境变量

在 Linux 上你可能需要在 ~/.bashrc,在 macOS 上需要在 ~/.zshrc 中设置环境变量,以便运行 fabric 命令。

Intel Mac 或 Linux:

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

# 更新 PATH
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 还支持通过环境变量配置语言和默认模型:

export FABRIC_LANG="zh"
export FABRIC_DEFAULT_MODEL="claude-sonnet-4-5-20251022"

配置设置 (Setup)

fabric --setup

支持的 AI 供应商

原生集成:

  • OpenAI(包括 O1 和 O3 序列)
  • OpenAI 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 查看所有可用供应商。

按 Pattern 指定模型

你可以使用环境变量为单个 pattern 配置特定模型,格式为 FABRIC_MODEL_PATTERN_NAME=vendor|model。可以在 shell 启动文件中维护这些按 pattern 的模型映射。

为所有 Pattern 添加别名

.zshrc.bashrc 中添加以下内容,可以直接使用 pattern 名称作为命令(例如,用 summarize 代替 fabric --pattern summarize):

for pattern_file in $HOME/.config/fabric/patterns/*; do
    pattern_name="$(basename "$pattern_file")"
    alias_name="${FABRIC_ALIAS_PREFIX:-}${pattern_name}"
    alias_command="alias $alias_name='fabric --pattern $pattern_name'"
    eval "$alias_command"
done

yt() {
    if [ "$#" -eq 0 ] || [ "$#" -gt 2 ]; then
        echo "Usage: yt [-t | --timestamps] youtube-link"
        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
}

迁移

如果你已安装旧版(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 补全脚本,让 CLI 使用更加便捷。

快速安装(无需克隆仓库):

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

Zsh 补全:

mkdir -p ~/.zsh/completions
cp completions/_fabric ~/.zsh/completions/
echo 'fpath=(~/.zsh/completions $fpath)' >> ~/.zshrc
echo 'autoload -Uz compinit && compinit' >> ~/.zshrc

Bash 补全:

echo 'source /path/to/fabric/completions/fabric.bash' >> ~/.bashrc

Fish 补全:

mkdir -p ~/.config/fish/completions
cp completions/fabric.fish ~/.config/fish/completions/

使用方法

配置完成后,运行以下命令查看帮助:

fabric -h

处理 YouTube 视频时,还可以使用以下视觉提取选项:

  • --visual:使用 OCR 和 FFmpeg 从视频中提取视觉信息
  • --visual-sensitivity:设置 FFmpeg 场景检测的容差(0.0 - 1.0
  • --visual-fps:按固定每秒帧数提取画面,而不是使用场景检测

将你复制的任何文本流式输入到 fabric 并选择你想应用的 Pattern:

pbpaste | fabric --pattern extract_wisdom

调试级别

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

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

演习模式

使用 --dry-run 预览将发送给 AI 模型的内容,而不实际发送请求:

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

这对于调试 pattern、检查提示词构建以及在使用 API 配额之前验证输入格式非常有用。

扩展

Fabric 支持可在 pattern 中调用的扩展。请参阅 Extension Guide 获取完整文档。

重要提示: 扩展只能在 pattern 文件中使用,不能通过直接 stdin 使用。

REST API 服务器

Fabric 内置了 REST API 服务器,通过 HTTP 暴露所有核心功能。启动服务器:

fabric --serve

服务器提供以下端点:

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

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

Ollama 兼容模式

Fabric 可以通过暴露 Ollama 兼容的 API 端点,作为 Ollama 的直接替代品:

fabric --serve --serveOllama

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

  • GET /api/tags — 将可用 pat

Extension points exported contracts — how you extend this code

NotificationProvider (Interface)
NotificationProvider interface for different notification backends [6 implementers]
internal/tools/notifications/notifications.go
Vendor (Interface)
(no doc) [6 implementers]
internal/plugins/ai/vendor.go
ObsidianRequest (Interface)
(no doc)
web/src/routes/obsidian/+server.ts
Backend (Interface)
Backend defines the interface that all Azure AI Gateway backends must implement. Each backend only provides what is uniq [3 …
internal/plugins/ai/azureaigateway/azureaigateway.go
Pattern (Interface)
(no doc)
web/src/lib/types/index.ts
Plugin (Interface)
(no doc) [3 implementers]
internal/plugins/plugin.go
Position (Interface)
(no doc)
web/src/lib/components/ui/tooltip/positioning.ts
Storage (Interface)
(no doc)
internal/plugins/db/api.go

Core symbols most depended-on inside this repo

T
called by 790
internal/i18n/i18n.go
Error
called by 233
internal/plugins/ai/codex/errors.go
Close
called by 113
cmd/generate_changelog/internal/cache/cache.go
debugf
called by 71
internal/plugins/template/template.go
Get
called by 57
internal/plugins/db/api.go
String
called by 55
internal/plugins/db/fsdb/sessions.go
get
called by 32
web/src/lib/api/base.ts
String
called by 27
internal/plugins/ai/bedrock/bedrock.go

Shape

Function 780
Method 568
Struct 165
Interface 37
Class 10
TypeAlias 7
FuncType 1

Languages

Go88%
TypeScript9%
Python3%

Modules by API surface

internal/plugins/ai/azureaigateway/azureaigateway_test.go52 symbols
internal/plugins/plugin.go45 symbols
internal/tools/youtube/youtube.go41 symbols
scripts/python_ui/streamlit.py33 symbols
internal/plugins/ai/bedrock/bedrock_test.go33 symbols
cmd/generate_changelog/internal/cache/cache.go27 symbols
internal/plugins/ai/copilot/copilot.go24 symbols
internal/plugins/ai/openai/openai.go23 symbols
internal/tools/notifications/notifications.go22 symbols
cmd/generate_changelog/internal/changelog/generator.go22 symbols
web/src/lib/services/ChatService.ts21 symbols
internal/core/chatter_test.go21 symbols

Dependencies from manifests, versioned

cloud.google.com/gov0.123.0 · 1×
cloud.google.com/go/authv0.20.0 · 1×
cloud.google.com/go/auth/oauth2adaptv0.2.8 · 1×
cloud.google.com/go/compute/metadatav0.9.0 · 1×
dario.cat/mergov1.0.2 · 1×
github.com/Azure/azure-sdk-for-go/sdk/azcorev1.22.0 · 1×
github.com/Azure/azure-sdk-for-go/sdk/azidentityv1.13.1 · 1×
github.com/Azure/azure-sdk-for-go/sdk/internalv1.12.0 · 1×
github.com/AzureAD/microsoft-authentication-library-for-gov1.7.2 · 1×
github.com/KyleBanks/depthv1.2.1 · 1×
github.com/Microsoft/go-winiov0.6.2 · 1×
github.com/ProtonMail/go-cryptov1.4.1 · 1×

For agents

$ claude mcp add Fabric \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact