Skip to main content
skill CX Codex

fabric — Claude Code skill: named AI text transforms

A skill that routes Fabric CLI work: pick a pattern, run it over text, chain it in a shell pipeline. Useful when the same transform keeps coming back.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add akillness/jeo-skills --skill fabric -a claude-code
Open on GitHub

What fabric does

The skill stops the agent from inventing a fresh prompt every time. It sorts the request into one lane first — quick transform, pattern selection, custom pattern, shell pipeline, fabric --serve, or a boundary check against a plain LLM CLI. Then it asks where the text comes from and whether that text is clean enough to feed in.

Support docs cover mode selection, operator packets, provider setup and pattern recipes. For a one-shot job you get a single pattern and a single command, like cat transcript.txt | fabric -p summarize. When the work repeats, the skill sketches a custom pattern with IDENTITY AND PURPOSE, STEPS, OUTPUT INSTRUCTIONS and INPUT sections.

Messy input is called out, not papered over: raw HTML, bad OCR or a broken transcript means the upstream layer gets fixed first. Server mode expects fabric --serve already running and may need --api-key, so decide whether the machine is local or shared. Nothing runs without provider keys or a local model in place.

What it helps with

  • summarize a meeting transcript with one pattern
  • pull key ideas out of a long article
  • explain a commit diff through fabric -p explain_code
  • build a custom pattern for recurring work
  • expose Fabric to another script over HTTP

Example prompts for the agent

  • Run transcript.txt through the summarize pattern and show me the brief
  • Which Fabric pattern fits pulling claims out of this article?
  • Draft a custom pattern skeleton for a weekly log review

How to install fabric

1Skills CLI (Vercel)

npx skills add akillness/jeo-skills --skill fabric -a claude-code

2Manually: put the files in place

~/.claude/skills/fabric/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/fabric/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about fabric

How do I install fabric in Claude Code?

Run npx skills add akillness/jeo-skills --skill fabric -a claude-code, then check ~/.claude/skills/fabric/SKILL.md.

What does the fabric skill do?

It walks the agent through Fabric lanes: quick transform, pattern selection, custom pattern, shell pipeline and server mode. It also checks whether the input text and provider setup are ready.

Which tools can the skill use?

allowed-tools lists Read, Write, Bash, Grep and Glob. Fabric commands go through Bash.

Source text

SKILL.md · CC-BY-4.0
---
name: fabric
description: >
  Routing-first Fabric operator skill for reusable named AI transforms over stdin,
  files, transcripts, notes, logs, and cleaned web text. Use when the user wants
  Fabric patterns, custom pattern packs, shell-pipe composition, or `fabric --serve`
  workflows — not generic one-off chat prompting, repo-aware coding, or fully
  deterministic automation.
allowed-tools: Read Write Bash Grep Glob
compatibility: >
  Works on macOS, Linux, and Windows where the Fabric CLI can be installed and
  configured. Best for CLI-centric users who already have provider keys or local
  model access and want repeatable prompt transforms rather than ad hoc chat.
license: CC-BY-4.0
metadata:
  version: "2.1.0"
  author: supercent-io
  keyword: fabric
  platforms: All platforms
  tags: fabric, patterns, ai-prompts, prompt-orchestration, content-transforms, cli, piping, summarize, extract, custom-patterns, multi-provider
  source: Daniel Miessler Fabric README + REST API docs + GitHub issue survey (2026-04-18)
---

# Fabric

Use this skill when the real job is **running a reusable named AI transform over existing text/content with Fabric**.

Fabric is strongest when three things are true:
1. the input already exists or can be cleaned first,
2. the transform is repeatable enough to deserve a named pattern,
3. the output should be delivered through a CLI, shell pipeline, or lightweight HTTP surface.

Read these support docs before going deeper:
- [references/routing-and-mode-selection.md](references/routing-and-mode-selection.md)
- [references/operator-packets-and-route-outs.md](references/operator-packets-and-route-outs.md)
- [references/install-and-provider-setup.md](references/install-and-provider-setup.md)
- [references/pattern-workflow-recipes.md](references/pattern-workflow-recipes.md)

## When to use this skill
- The user explicitly wants **Fabric**.
- The user wants a **named pattern** instead of improvising a fresh prompt every time.
- The job is a repeatable transform over **stdin, files, transcripts, clipboard text, notes, logs, or cleaned article text**.
- The user wants a **custom pattern pack** for recurring work.
- Fabric should sit inside a **shell pipeline** or a small local toolchain.
- Another tool needs **Fabric server mode** via `fabric --serve`.
- The boundary between **Fabric vs general LLM CLI vs coding assistant** is unclear.

## When not to use this skill
- **One-off chat prompting in the current session** → use the current model directly.
- **Repo-aware coding, editing, or git implementation** → use a coding-assistant skill.
- **Scraping, OCR, transcript recovery, or file conversion is still the hard part** → fix the upstream input layer first.
- **Deterministic multi-step automation is the real job** → use scripts or workflow automation, with Fabric only as one step if needed.
- **Provider/platform setup is the whole question and not Fabric-specific** → use the more relevant platform/provider skill first.

## Core boundary
- **Fabric** = reusable pattern-driven transforms on external text/content.
- **General LLM CLI** = ad hoc prompting without strong pattern-library expectations.
- **Coding assistant** = repo-aware editing, implementation, and git workflows.
- **Workflow automation / scripts** = deterministic orchestration where Fabric may be one stage.

## Instructions

### Step 1: Classify the request into one primary lane
Choose exactly one lane:

```yaml
fabric_intake:
  primary_lane: quick-transform | pattern-selection | custom-pattern | shell-pipeline | serve-api | boundary-review
  input_shape: stdin-text | file | clipboard | transcript | url-derived-text | logs | code-snippet | mixed | unknown
  output_shape: summary | extraction | rewrite | explanation | classification | structured-markdown | custom
  repetition_level: one-off | recurring | team-shared | embedded-in-script
  provider_need: default | specific-provider | local-model | server-mode | unknown
  input_ready: yes | no | unclear
```

Lane chooser:
- `quick-transform` → the text is already available and one strong Fabric pass is enough.
- `pattern-selection` → the user needs the right built-in pattern or family.
- `custom-pattern` → the workflow repeats and needs a stable output shape.
- `shell-pipeline` → Fabric is one step inside a larger terminal workflow.
- `serve-api` → another local tool or script should call Fabric over HTTP.
- `boundary-review` → the user is deciding among Fabric, a general LLM CLI, or a coding assistant.

### Step 2: Verify the input layer before talking about patterns
Answer these first:
1. Where does the text come from?
2. Is the text already clean enough for Fabric?
3. Is this a one-shot transform or a reusable workflow?
4. Is provider/model setup already available?

If the text is still messy HTML, OCR noise, bad transcripts, or missing entirely, say so explicitly. Do not pretend Fabric owns the upstream cleanup problem.

### Step 3: Run the correct lane

#### A. Quick-transform
Return:
- one recommended pattern,
- one exact command,
- expected output shape,
- one optional follow-up chain only if it materially helps.

Examples:
```bash
cat transcript.txt | fabric -p summarize
pbpaste | fabric -p extract_wisdom
git diff HEAD~1 | fabric -p explain_code
```

#### B. Pattern-selection
Return the top **1-3** plausible patterns and why.

Use job shape, not novelty:
- **summarize** → compress source into a readable brief
- **extract / wisdom / questions / claims** → pull structured ideas out
- **explain / analyze** → interpret code, prose, logs, incidents, or decisions
- **rewrite / improve / repurpose** → convert one artifact into another tone or shape

Do not dump the whole catalog.

#### C. Custom-pattern
Use when the workflow will recur.

Minimum scaffold:
```text
IDENTITY AND PURPOSE
STEPS
OUTPUT INSTRUCTIONS
INPUT
```

Good custom-pattern output includes:
- pattern name,
- exact use case,
- `system.md` skeleton,
- example invocation,
- note on when to fork vs reuse a stock pattern.

#### D. Shell-pipeline
Treat Fabric as one stage in a pipeline:

```text
fetch or prepare input → optional cleanup → fabric pattern → save / chain / post-edit
```

Return:
- what creates the input,
- where Fabric sits,
- where output goes,
- what still needs human review or another tool.

#### E. Serve-api
Use when another app/script needs HTTP access.

Baseline commands:
```bash
fabric --serve
curl http://localhost:8080/patterns/names
```

Also call out:
- whether `--api-key` is needed,
- local-only vs shared-machine assumptions,
- whether the caller needs pattern CRUD, listing, apply endpoints, or plain chat completion.

#### F. Boundary-review
Compare by workflow shape:
- **Fabric** → repeatable named transforms over external text/content
- **general LLM CLI** → flexible ad hoc prompting
- **coding assistant** → repo-aware code work
- **workflow automation** → deterministic multi-step logic

If the user is mixing use cases, keep Fabric only for the transform layer.

### Step 4: Return a short operator packet
Default output should contain:
- chosen lane,
- input source and cleanup assumptions,
- recommended pattern(s) or custom-pattern path,
- exact command(s) or artifact layout,
- realistic friction note,
- route-out if Fabric is not the whole answer.

Use this structure:

```text
# Fabric Workflow Packet

## Lane
- quick-transform | pattern-selection | custom-pattern | shell-pipeline | serve-api | boundary-review

## Input
- source: ...
- cleanup needed: ...
- assumptions: ...

## Recommended Fabric move
- pattern / custom pattern / server mode: ...
- why this fits: ...

## Command or artifact
- exact command(s) or `system.md` scaffold

## Output shape
- summary / extraction / rewrite / explanation / structured markdown / custom

## Friction
- provider setup / token limits / noisy input / post-editing / custom-pattern drift

## Route-outs
- next tool or workflow layer if Fabric is not the whole answer
```

### Step 5: Keep the advice reusable
Prefer:
- one primary lane,
- one top recommendation over a laundry list,
- a reusable custom-pattern scaffold over a clever one-off prompt,
- honest route-outs when Fabric is not the whole answer.

## Examples

### Example 1: Transcript summary
**Input**
> I already have transcript.txt. Show me how to use Fabric to summarize it and keep the workflow reusable.

**Output sketch**
- Lane: `quick-transform`
- Command: `cat transcript.txt | fabric -p summarize`
- Output: markdown summary
- Route-out: only add another extraction pass if action items matter

### Example 2: Weekly custom pattern
**Input**
> We summarize competitor articles every week. Help me make a reusable Fabric pattern pack.

**Output sketch**
- Lane: `custom-pattern`
- Deliver `system.md` scaffold plus invocation
- Explain why a custom pattern beats repeating a one-off prompt

### Example 3: Fabric or something else?
**Input**
> Should I use Fabric, a general LLM CLI, or a coding assistant for this workflow?

**Output sketch**
- Lane: `boundary-review`
- Keep repeatable text transforms in Fabric
- Route repo-aware editing to a coding assistant

## Best practices
1. Treat Fabric as a **pattern-first transform layer**, not a generic terminal chatbot.
2. Solve messy input acquisition before blaming the pattern.
3. Return the top 1-3 pattern choices instead of the full catalog.
4. Fork a custom pattern when the workflow repeats or the output shape must stay stable.
5. Only recommend `fabric --serve` when another tool genuinely needs HTTP access.
6. Keep provider/setup friction explicit instead of hiding it behind pattern talk.
7. If the task is really coding-assistant work or deterministic automation, route out early.

## References
- [Fabric upstream README](https://github.com/danielmiessler/Fabric/blob/main/README.md)
- [Fabric REST API docs](https://raw.githubusercontent.com/danielmiessler/Fabric/main/docs/rest-api.md)
- [references/routing-and-mode-selection.md](references/routing-and-mode-selection.md)
- [references/operator-packets-and-route-outs.md](references/operator-packets-and-route-outs.md)
- [references/install-and-provider-setup.md](references/install-and-provider-setup.md)
- [references/pattern-workflow-recipes.md](references/pattern-workflow-recipes.md)

© supercent-io · CC-BY-4.0 · akillness/jeo-skills

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set46

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor