← 返回 Skills 市场
tristanmanchester

Fabric.co API skill

作者 Tristan Manchester · GitHub ↗ · v1.0.1
cross-platform ✓ 安全检测通过
2177
总下载
1
收藏
2
当前安装
2
版本数
在 OpenClaw 中安装
/install fabric-api
功能描述
Create, search, and manage Fabric resources via the Fabric HTTP API (notepads/notes, folders, bookmarks, files, tags).
使用说明 (SKILL.md)

Fabric API (HTTP via Node/Python)

Use this skill when you need to read or write content in a user's Fabric workspace using the Fabric HTTP API (https://api.fabric.so).

This version avoids bash-only wrapper scripts. It ships cross-platform helpers:

  • Node: {baseDir}/scripts/fabric.mjs (recommended)
  • Python: {baseDir}/scripts/fabric.py

Critical gotchas (read first)

  • There is no POST /v2/notes endpoint in the bundled OpenAPI spec. To create a “note”, use POST /v2/notepads.
  • Most create endpoints require parentId:
    • A folder UUID or one of: @alias::inbox, @alias::bin
  • Notepad creation requires:
    • parentId
    • and either text (markdown string) or ydoc (advanced/structured)
  • tags must be an array of objects, each item either:
    • { "name": "tag name" } or { "id": "\x3Cuuid>" }
    • Never strings, never nested arrays.
  • Field name gotcha: the API schema uses name (not title). If the user says “title”, map it to name in requests.

When the user doesn’t specify a destination folder, default to:

  • parentId: "@alias::inbox"

Setup (OpenClaw / Clawdbot)

This skill expects the Fabric API key in:

  • FABRIC_API_KEY

OpenClaw config example (~/.openclaw/openclaw.json):

{
  skills: {
    entries: {
      "fabric-api": {
        enabled: true,
        apiKey: "YOUR_FABRIC_API_KEY"
      }
    }
  }
}

Notes:

  • apiKey is a convenience for skills that declare primaryEnv; it injects FABRIC_API_KEY for the duration of an agent run.
  • Don’t paste the API key into prompts, client-side code, or logs.

HTTP basics

  • Base URL: https://api.fabric.so (override with FABRIC_BASE if needed)
  • Auth header: X-Api-Key: $FABRIC_API_KEY
  • JSON header (for JSON bodies): Content-Type: application/json

Convenience scripts (cross-platform)

Node helper (recommended)

node {baseDir}/scripts/fabric.mjs GET /v2/user/me

node {baseDir}/scripts/fabric.mjs POST /v2/notepads --json '{"name":"Test note","text":"Hello","parentId":"@alias::inbox"}'

Python helper

python3 {baseDir}/scripts/fabric.py GET /v2/user/me

python3 {baseDir}/scripts/fabric.py POST /v2/notepads --json '{"name":"Test note","text":"Hello","parentId":"@alias::inbox"}'

Notes:

  • Both helpers print the response body on success.
  • On HTTP errors (4xx/5xx), they print HTTP \x3Ccode> \x3Creason> to stderr and still print the response body, then exit non‑zero (similar to curl --fail-with-body).
  • If you pass an absolute URL (https://...), the helpers do not attach X-Api-Key unless you explicitly pass --with-key.

Core workflows

1) Create a notepad (note)

Endpoint: POST /v2/notepads

Rules:

  • Map user “title” → name
  • Use text for markdown content
  • Always include parentId
  • If you’re debugging 400s, start minimal (required fields only), then add name, then tags.

Minimal create:

node {baseDir}/scripts/fabric.mjs POST /v2/notepads --json '{"parentId":"@alias::inbox","text":"Hello"}'

Create with a name:

node {baseDir}/scripts/fabric.mjs POST /v2/notepads --json '{"name":"Calendar Test Note","text":"Created via OpenClaw","parentId":"@alias::inbox"}'

Create with tags (correct shape):

node {baseDir}/scripts/fabric.mjs POST /v2/notepads --json '{"name":"Ideas","text":"# Ideas\\
\\
- First\\
- Second\\
","parentId":"@alias::inbox","tags":[{"name":"ideas"},{"name":"draft"}]}'

If you keep seeing tag validation errors, temporarily omit tags and create the notepad first.

2) Create a folder

Endpoint: POST /v2/folders

node {baseDir}/scripts/fabric.mjs POST /v2/folders --json '{"name":"My new folder","parentId":"@alias::inbox","description":null}'

3) Create a bookmark

Endpoint: POST /v2/bookmarks

node {baseDir}/scripts/fabric.mjs POST /v2/bookmarks --json '{"url":"https://example.com","parentId":"@alias::inbox","name":"Example","tags":[{"name":"reading"}]}'

4) Browse resources (list children of a folder)

Endpoint: POST /v2/resources/filter

Important:

  • This endpoint’s parentId expects a UUID (not an alias).
  • If you only have an alias, resolve it by listing resource roots and picking the inbox/bin folder ID.
node {baseDir}/scripts/fabric.mjs POST /v2/resources/filter --json '{"parentId":"PARENT_UUID_HERE","limit":50,"order":{"property":"modifiedAt","direction":"DESC"}}'

5) Search

Endpoint: POST /v2/search

Use search when the user gives a fuzzy description (“the note about…”).

node {baseDir}/scripts/fabric.mjs POST /v2/search --json '{"queries":[{"mode":"text","text":"meeting notes","filters":{"kinds":["notepad"]}}],"pagination":{"page":1,"pageSize":20},"sort":{"field":"modifiedAt","order":"desc"}}'

Error handling + retries (practical guidance)

  • 400 Bad Request: schema validation. Re-check required fields, and that tags is [{name}|{id}] not nested.
  • 401/403: auth/subscription/permission. Stop and report the error details; don’t brute-force.
  • 404: wrong endpoint, wrong ID, or no access.
  • 429: rate limiting. Back off (sleep + jitter) and retry reads. Avoid blind retries on create (you may create duplicates).
  • 5xx: transient; retry with backoff.

Reference files

  • OpenAPI spec (source of truth): {baseDir}/fabric-api.yaml
  • Extra schema notes: {baseDir}/references/REFERENCE.md
  • Debug playbook: {baseDir}/references/TROUBLESHOOTING.md
安全使用建议
This skill appears to do exactly what it claims: a simple, documented HTTP client for the Fabric API that needs only your Fabric API key. Before installing, confirm you trust the skill source (owner ID is opaque here) and only provide a FABRIC_API_KEY you expect the agent to use. Be cautious when invoking absolute URLs with the --with-key flag (or equivalent) because that forces the API key to be sent to arbitrary hosts; prefer relative API paths or omit --with-key. If you need extra assurance, review the bundled scripts (fabric.mjs / fabric.py) yourself — they are short and only perform HTTP calls and basic I/O.
功能分析
Type: OpenClaw Skill Name: fabric-api Version: 1.0.1 The skill bundle is benign. All files, including the `SKILL.md` instructions, helper scripts (`fabric.mjs`, `fabric.py`), and API specification (`fabric-api.yaml`), align with the stated purpose of interacting with the Fabric HTTP API. The helper scripts are standard HTTP clients that read the API key from the `FABRIC_API_KEY` environment variable and include a security measure to prevent accidental API key leakage to arbitrary absolute URLs. There is no evidence of prompt injection, data exfiltration, malicious execution, persistence mechanisms, or obfuscation.
能力评估
Purpose & Capability
Name/description promise HTTP access to Fabric; required env var is FABRIC_API_KEY and helpers target https://api.fabric.so. Declared required binaries (node/python3/python/curl) match the cross-platform helpers and the README's curl examples.
Instruction Scope
SKILL.md instructs only Fabric-related actions (create/search/manage resources), documents endpoints, and provides helper usage. It does not instruct reading unrelated local files or secrets beyond FABRIC_API_KEY; optional FABRIC_BASE is referenced but appropriate. The docs caution about not pasting the API key into prompts.
Install Mechanism
Instruction-only skill with no install spec; included Node/Python scripts are plain, use standard libraries/fetch, and do not download or execute remote code. No high-risk download URLs or archive extraction are present.
Credentials
Only FABRIC_API_KEY is required (declared as primaryEnv). The scripts optionally read FABRIC_BASE (non-sensitive). No unrelated credentials or system config paths are requested.
Persistence & Privilege
Skill is not always-enabled and does not request system-wide persistence or modify other skills. It runs helpers locally and uses the provided API key for requests.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install fabric-api
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /fabric-api 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.1
- Added cross-platform helper scripts for Node (fabric.mjs) and Python (fabric.py) to replace bash-only curl wrappers. - Updated documentation to show usage examples with Node and Python helpers. - Added in-repo references: REFERENCE.md (schema quirks) and TROUBLESHOOTING.md (debugging tips). - Improved setup/config instructions and clarified required skill environment variables. - Expanded and clarified API gotchas, workflows, and error handling sections. - Metadata updated to support both OpenClaw and Clawdbot runtimes.
v1.0.0
Initial release: Adds Fabric API integration for creating, searching, and managing resources via HTTP. - Supports creating notepads, folders, bookmarks, and listing/searching resources using Fabric HTTP API. - Provides clear guidance on required parameters, especially handling of parentId and tags. - Includes canonical curl templates for all core API actions. - Documents setup instructions using FABRIC_API_KEY. - Covers troubleshooting common API errors and rate limiting best practices.
元数据
Slug fabric-api
版本 1.0.1
许可证
累计安装 2
当前安装数 2
历史版本数 2
常见问题

Fabric.co API skill 是什么?

Create, search, and manage Fabric resources via the Fabric HTTP API (notepads/notes, folders, bookmarks, files, tags). 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 2177 次。

如何安装 Fabric.co API skill?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install fabric-api」即可一键安装,无需额外配置。

Fabric.co API skill 是免费的吗?

是的,Fabric.co API skill 完全免费(开源免费),可自由下载、安装和使用。

Fabric.co API skill 支持哪些平台?

Fabric.co API skill 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Fabric.co API skill?

由 Tristan Manchester(@tristanmanchester)开发并维护,当前版本 v1.0.1。

💬 留言讨论