プロンプトは書いた瞬間から消耗品になりがちです。良い指示文を思いついても、別のプロジェクトやツールに移すとコピペで散逸し、どのバージョンが最新か分からなくなる。この問題に対して、Daniel Miessler氏が公開しているオープンソースCLI「Fabric」は、プロンプトを「pattern」という単位でファイル化し、バージョン管理・再利用できるようにするという解決策を提示しています。
この記事は、公式GitHubリポジトリ(danielmiessler/fabric)のREADMEを一次情報として整理したものです。先に明示しておくと、このクラウド環境では外部スクリプトやバイナリを新たにインストールして実行する操作が許可されず、実際にFabricをインストールしてコマンドを動かすところまでは確認できていません。本文中のコマンド例・オプション・出力に関する記述はすべてREADMEに書かれている内容の転記であり、「実際に動かして確認した」ものではない点をあらかじめお断りします。
Fabricとは何か
README冒頭には、著者の問題提起として次のように書かれています。
AI doesn't have a capabilities problem—it has an integration problem.
AI自体の能力が足りないのではなく、AIを日々の作業に「統合」する部分が課題だという考え方です。Fabricはその統合の基本単位としてプロンプトを位置づけ、プロンプトを集めて整理し、コマンドラインから呼び出せる形にするフレームワークとして作られています。ライセンスはMIT(READMEのバッジ表記)です。
インストール方法
READMEには複数のインストール経路が挙げられています。
# 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
# Homebrew(macOS)
brew install fabric-ai
# Arch Linux(AUR)
yay -S fabric-ai
# Windows(Winget)
winget install danielmiessler.Fabric
# Windows(Scoop)
scoop install fabric-ai
# Goのソースから
go install github.com/danielmiessler/fabric/cmd/fabric@latest
# Docker
docker run --rm -it kayvan/fabric:latest --version
手動でのバイナリ取得はGitHub Releasesページ(SHA256ハッシュも併記)からも可能と案内されています。Homebrew版・AUR版はコマンド名がfabric-aiになるため、alias fabric='fabric-ai'の設定が必要とREADMEに注記があります。
セットアップ:fabric --setup
READMEでは、インストール後にまずfabric --setup(短縮形-S)を実行して「ディレクトリとキーを設定する」よう案内されています。ここで使うAIベンダーの選択とAPIキーの登録を行います。カスタムpattern用ディレクトリの設定もこのセットアップのTools系メニューから行う仕組みで、バージョンアップ後は設定の見直しが必要になる場合があるとも書かれています。
基本的な使い方(READMEのコマンド例)
READMEに載っている使用例をそのまま挙げます(このクラウド環境では実行確認していません)。
# クリップボードの内容を要約する
pbpaste | fabric --pattern summarize
# ストリーミング出力で主張を分析する
pbpaste | fabric --stream --pattern analyze_claims
# YouTube動画から知見を抽出する
fabric -y "https://youtube.com/watch?v=uXs-zPc63kM" --stream --pattern extract_wisdom
# Webサイトを分析する(Jina AIでMarkdown化)
fabric -u https://github.com/danielmiessler/fabric/ -p analyze_claims
# 実際に送信せず、組み立てたプロンプトだけを確認する
echo "test input" | fabric --dry-run -p summarize
echo "test input" | fabric --print-prompt -p summarize
# ストラテジー(Chain-of-Thoughtなど)を指定する
echo "Analyze this code" | fabric --strategy cot -p analyze_code
一覧表示系のオプションも複数あり、-l/--listpatterns(pattern一覧)、-L/--listmodels(モデル一覧)、-x/--listcontexts(コンテキスト一覧)、-X/--listsessions(セッション一覧)、--liststrategies(ストラテジー一覧)、--listvendors(対応ベンダー一覧)が用意されています。
主なCLIオプション
READMEに列挙されている主なフラグです。
-p, --pattern:使用するpatternを選択-v, --variable:pattern内の変数に値を渡す-C, --context/--session:コンテキストやセッションを選択-a, --attachment:添付ファイルのパスやURLを指定-m, --model/-V, --vendor:モデルとベンダーを指定-t, --temperature/-T, --topp:temperatureとTop-Pの設定-s, --stream:ストリーミング出力、-r, --raw:モデル側のデフォルト設定をそのまま使う-c, --copy:結果をクリップボードへコピー、-o, --output:ファイルへ出力-y, --youtube/--transcript/--transcript-with-timestamps:YouTubeの文字起こし取得-u, --scrape_url:Jina AI経由でWebページをMarkdown化--strategy:ストラテジー(推論手法)を適用--dry-run/--print-prompt:実際には送信せず内容を確認--serve/--serveOllama:REST APIサーバー、Ollama互換サーバーとして起動--search:対応モデルでWeb検索ツールを有効化、--thinking:推論レベルの設定、--debug:デバッグレベル(0〜4)
patternという仕組み
Fabricの中核にあるのが「pattern」です。READMEによると、patternはMarkdownで書かれたプロンプトで、「ほぼ専らSystemセクションを使う」という方針で作られています(例:data/patterns/extract_wisdom/system.md)。独自のpatternを作る場合は~/.config/fabric/patterns/[パターン名]に保存する形が案内されています。カスタムpattern用ディレクトリを設定すると、同名の組み込みpatternより優先され、fabric --updatepatternsによる組み込みpatternの更新でも上書きされない、とREADMEに明記されています。
代表的な組み込みpattern
summarize:入力内容の要約analyze_claims:文章やWebサイトの主張を分析extract_wisdom:YouTubeやPodcastから重要な知見を抽出create_conceptmap:Vis.jsを使ったインタラクティブなコンセプトマップ生成write_latex:LaTeX文書の作成(to_pdfヘルパーと組み合わせ可能)create_coding_feature:code2contextと組み合わせたコード機能の作成analyze_code:コードの解説(READMEのストラテジー例で使用)
pattern自体の一覧はリポジトリのdata/patternsディレクトリにあるとREADMEに記載されています。
対応しているAIベンダー
READMEにはネイティブ対応とOpenAI互換の2系統が列挙されています。
- ネイティブ対応:OpenAI、OpenAI Codex、Anthropic(Claude)、Claude Code、Google Gemini、Ollama(ローカルモデル)、Azure OpenAI、Amazon Bedrock、Vertex AI、LM Studio、Perplexity
- OpenAI互換プロバイダー:Groq、Mistral、DeepSeek、OpenRouter、Together、Cerebras、Venice AI、Z AIなど、READMEには35以上の名前が列挙されています
正確な最新一覧は、インストール後にfabric --listvendorsで確認できるとされています。1つのCLIから多数のベンダーをpatternごとに切り替えて呼び出せる設計は、この手のプロンプトCLIの中でも対応範囲が広い部類に入ります。
Web UIとAPIサーバーモード
READMEには「Fabricには、コマンドラインの代わりとなるGUIを提供する組み込みのWebインターフェースが含まれている」と書かれており、CLIだけでなくブラウザから使うWeb UIも用意されています(導入手順はリポジトリ内/web/README.md)。加えてfabric --serveでREST APIサーバーを起動でき、ストリーミング対応のチャット補完、pattern・コンテキスト・セッションの管理、モデルやベンダーの一覧取得、YouTube文字起こしなどのエンドポイントを提供するとされています(詳細はリポジトリ内docs/rest-api.md、Swagger UIは/swagger/index.html)。fabric --serve --serveOllamaを使うと、GET /api/tagsやPOST /api/chatといったOllama互換のエンドポイントで起動し、各patternが1つの「モデル」(例:summarize:latest)として見える仕組みも用意されています。
バージョンの動き
README内の「Updates」セクションには直近の変更が記載されています。この記事の調査時点での最新記載は次のとおりでした。
- v1.4.447:Anthropic SDKの更新とClaude Opus対応(1Mトークンのコンテキストウィンドウ)
- v1.4.437:OpenAI Codexを、OpenAIのサブスクリプションをバックエンドにして利用可能に
- v1.4.417/v1.4.416:Azure AI GatewayプラグインとAzure Entra ID認証の追加
対応ベンダーや機能がかなり高い頻度で更新されているツールのようです。詳細な履歴はリポジトリ内のCHANGELOG.mdと各リリースページを参照するようREADMEで案内されています。バージョン番号や対応モデルは今後も変わる前提で、導入前に最新のREADMEを確認するのが安全です。
向いている場面・向いていない場面
- 向いている:手元で使っているプロンプトが増えてきて、ファイルとして整理・Git管理したい場合。ターミナル中心の作業フローに組み込みたい場合や、同じpatternを複数のLLMベンダーで使い分けたい場合にも合う設計です。
- 向いていない:チャットUIで1回限りのやり取りをするだけで十分な場合。Web UIは用意されているものの、Fabricの主眼はpatternというファイル単位の管理にあるため、使い捨てのプロンプトのためだけに導入するのは過剰かもしれません。
この記事で確認できなかったこと
繰り返しになりますが、このクラウド環境では外部インストーラーやビルド済みバイナリの実行が許可されず、fabric --setup以降の実際の対話や、patternを実行した際の出力、Web UI・APIサーバーの実際の起動は確認していません。本文のコマンド例やオプションの説明はすべて公式READMEの記述に基づくもので、実際の挙動(特にベンダーごとの応答品質や、頻繁に更新されているらしいバージョンごとの差異)はご自身の環境で確認することをおすすめします。
まとめ
Fabricは、プロンプトを「pattern」というMarkdownファイルの単位で管理し、ターミナルからOpenAI・Anthropic・Ollamaなど多数のAIベンダーに対して使い回せるオープンソースのCLIフレームワークです。インストール経路の豊富さ、カスタムpatternが更新で上書きされない設計、CLIだけでなくWeb UIやOllama互換APIまで用意されている点は、公式READMEから確認できました。一方でこの記事では実際にインストールして動かすところまでは検証できていないため、プロンプト管理の仕組みに関心がある方は、まず公式リポジトリのREADMEとpattern一覧を読んでから、小さく試してみるのがよさそうです。
