用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/duclm1x1/Dive-Ai --skill fabric-api命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Persistent memory system for AI agents following Model Context Protocol (MCP). Use for storing long-term memories across sessions, semantic search of past knowledge, building knowledge graphs, auto-injecting context, deduplicating memories, syncing to cloud storage. Essential for agents that need to remember decisions, solutions, preferences, and learned patterns over time.
Persistent memory system for AI agents following Model Context Protocol (MCP). Use for storing long-term memories across sessions, semantic search of past knowledge, building knowledge graphs, auto-injecting context, deduplicating memories, syncing to cloud storage. Essential for agents that need to remember decisions, solutions, preferences, and learned patterns over time.
Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.
正在显示 SKILL.md
基于 SOC 职业分类
| name | fabric-api |
| description | Create/search Fabric resources via HTTP API (notepads, folders, bookmarks, files). |
| homepage | https://fabric.so |
| metadata | {"clawdbot":{"emoji":"🧵","requires":{"env":["FABRIC_API_KEY"],"bins":["curl"]},"primaryEnv":"FABRIC_API_KEY"}} |
Use this skill to read/write content in a user's Fabric workspace using the Fabric HTTP API (https://api.fabric.so).
/v2/notepads (not /v2/notes).parentId:
@alias::inbox, @alias::bin.parentIdtext (markdown string) or ydoc (advanced/structured).tags must be an array of objects, each either:
{ "name": "tag name" } or { "id": "<uuid>" }When the user doesn't specify a destination folder: default to parentId: "@alias::inbox".
This skill expects the API key in:
FABRIC_API_KEYRecommended config (use apiKey; Clawdbot will inject FABRIC_API_KEY because primaryEnv is set):
{
skills: {
entries: {
"fabric-api": {
enabled: true,
apiKey: "YOUR_FABRIC_API_KEY"
}
}
}
}
https://api.fabric.soX-Api-Key: $FABRIC_API_KEYContent-Type: application/jsonFor debugging: prefer --fail-with-body so 4xx bodies are shown.
curl -sS --fail-with-body "https://api.fabric.so/v2/user/me" \
-H "X-Api-Key: $FABRIC_API_KEY"
curl -sS --fail-with-body -X POST "https://api.fabric.so/v2/ENDPOINT" \
-H "X-Api-Key: $FABRIC_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{ "replace": "me" }
JSON
Endpoint: POST /v2/notepads
name in the API payload.parentId.text for markdown content.curl -sS --fail-with-body -X POST "https://api.fabric.so/v2/notepads" \
-H "X-Api-Key: $FABRIC_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"name": "Calendar Test Note",
"text": "Created via Clawdbot",
"parentId": "@alias::inbox",
"tags": [{"name":"calendar"},{"name":"draft"}]
}
JSON
If tags cause validation trouble, omit them and create/assign later via /v2/tags.
Endpoint: POST /v2/folders
curl -sS --fail-with-body -X POST "https://api.fabric.so/v2/folders" \
-H "X-Api-Key: $FABRIC_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"name": "My new folder",
"parentId": "@alias::inbox",
"description": null
}
JSON
Endpoint: POST /v2/bookmarks
curl -sS --fail-with-body -X POST "https://api.fabric.so/v2/bookmarks" \
-H "X-Api-Key: $FABRIC_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"url": "https://example.com",
"parentId": "@alias::inbox",
"name": "Example",
"tags": [{"name":"reading"}]
}
JSON
Endpoint: POST /v2/resources/filter
Use this to list what's inside a folder (use a folder UUID as parentId).
curl -sS --fail-with-body -X POST "https://api.fabric.so/v2/resources/filter" \
-H "X-Api-Key: $FABRIC_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"parentId": "PARENT_UUID_HERE",
"limit": 50,
"order": { "property": "modifiedAt", "direction": "DESC" }
}
JSON
Endpoint: POST /v2/search
Use search when the user gives a fuzzy description (“the note about…”).
curl -sS --fail-with-body -X POST "https://api.fabric.so/v2/search" \
-H "X-Api-Key: $FABRIC_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"queries": [
{
"mode": "text",
"text": "meeting notes",
"filters": { "kinds": ["notepad"] }
}
],
"pagination": { "page": 1, "pageSize": 20 },
"sort": { "field": "modifiedAt", "order": "desc" }
}
JSON
GET /v2/tags?limit=100
POST /v2/tags with { "name": "tag name", "description": null, "resourceId": null }
Use tags: [{"name":"x"}] or tags: [{"id":"<uuid>"}] only.
If you get 429 Too Many Requests:
Do not blindly retry create requests without idempotency (you may create duplicates).
404 Not Found: almost always wrong endpoint, wrong resourceId/parentId, or permissions.400 Bad Request: schema validation; check required fields and tag shape.403 Forbidden: subscription/permission limits.429 Too Many Requests: back off + retry.The OpenAPI schema lives here:
{baseDir}/fabric-api.yamlWhen in doubt, consult it before guessing endpoint names or payload shapes.