Use when designing, reviewing, or refactoring a CLI that must serve AI agents alongside humans, or when converting an API or SDK into an agent-usable CLI interface.
日本語の概要は準備中です。原文の説明を表示しています。
Use whenever the user wants to interact with Figshare - searching public datasets/articles, downloading Figshare files, listing their own articles/collections/projects, creating or updating articles, or uploading files (including large multi-part uploads) via the Figshare v2 REST API. Trigger on mentions of "figshare", figshare DOIs (10.6084/m9.figshare.*), figshare.com URLs, or phrases like "upload my dataset to figshare", "publish to figshare", "get figshare article".
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Interact with the Figshare v2 REST API to search, download, create, and upload research outputs.
curl and jq available on PATH.
For authenticated endpoints (anything under /account/... or uploads), a personal token from https://figshare.com/account/applications exported as:
export FIGSHARE_TOKEN=xxxxxxxxxxxxxxxx
Public endpoints (search, public articles, downloads) need no token.
Always confirm with the user before creating, modifying, publishing, or deleting anything on their account — these are hard to reverse.
Throttle to one check per 24 hours per installation; never mutate the skill directory without explicit user consent.
If <this-skill-dir>/.last_update exists and is less than 24 hours old, skip this step entirely.
Otherwise, fetch the latest tag from upstream:
git -C <this-skill-dir> ls-remote --tags origin 'v*' 2>/dev/null \
| awk '{print $2}' | sed 's|refs/tags/||' \
| sort -V | tail -1
Compare with this skill's metadata.version from the frontmatter. If the upstream tag is strictly newer (semver), tell the user one line and ask:
"A newer version of this skill is available: vX.Y.Z → vA.B.C. Want me to
git pull?"
If they say yes, run git -C <this-skill-dir> pull --ff-only. Refresh .last_update either way so the prompt doesn't repeat for 24 hours.
If upstream is the same or older, refresh .last_update silently and continue.
On any failure (offline, not a git checkout — e.g. ClawHub-installed copy, read-only path, no permission), swallow the error silently and continue with the user's task. Do not mention the failure.
https://api.figshare.com/v2Authorization: token $FIGSHARE_TOKENapplication/json for POST/PUT bodiesmessage, code; common codes 400/401/403/404/422curl -s -X POST https://api.figshare.com/v2/articles/search \
-H "Content-Type: application/json" \
-d '{"search_for": ":title: single cell", "page_size": 20}' | jq
Field operators: :title:, :author:, :tag:, :category:, :doi:, :resource_doi:.
curl -s https://api.figshare.com/v2/articles/{article_id} | jq
# or resolve from a figshare.com URL: the numeric tail is the article_id
ART=12345678
curl -s https://api.figshare.com/v2/articles/$ART/files \
| jq -r '.[] | "\(.download_url)\t\(.name)"' \
| while IFS=$'\t' read -r url name; do curl -L -o "$name" "$url"; done
curl -s -H "Authorization: token $FIGSHARE_TOKEN" \
"https://api.figshare.com/v2/account/articles?page=1&page_size=50" | jq
curl -s -X POST https://api.figshare.com/v2/account/articles \
-H "Authorization: token $FIGSHARE_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "My dataset",
"description": "Full description here.",
"defined_type": "dataset",
"tags": ["demo"],
"categories": [2]
}' | jq
Response is { "location": ".../account/articles/{id}", "entity_id": 123 }.
# update metadata
curl -s -X PUT https://api.figshare.com/v2/account/articles/$ART \
-H "Authorization: token $FIGSHARE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title": "New title"}'
# publish (becomes public, assigns DOI, version is frozen)
curl -s -X POST https://api.figshare.com/v2/account/articles/$ART/publish \
-H "Authorization: token $FIGSHARE_TOKEN"
Always ask before publishing — it's permanent for that version.
# create collection that groups existing articles
curl -s -X POST https://api.figshare.com/v2/account/collections \
-H "Authorization: token $FIGSHARE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title": "My Collection", "articles": [123, 456]}'
# create project
curl -s -X POST https://api.figshare.com/v2/account/projects \
-H "Authorization: token $FIGSHARE_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title": "Research Project"}'
Figshare uploads are 3-step: initiate → PUT each part → complete. Use the bundled helpers for anything non-trivial:
# upload a file to an existing draft article
./scripts/upload.sh <article_id> <path/to/file>
# batch-download every file from a public article (accepts id or figshare.com URL)
./scripts/download.sh <article_id_or_url> [output_dir]
# reserve + upload + publish a new version of an already-published article
./scripts/new-version.sh <article_id> <path/to/file>
The raw flow, in case you need to adapt it:
Initiate — compute md5 + size, POST to article:
SIZE=$(stat -f%z "$FILE" 2>/dev/null || stat -c%s "$FILE")
MD5=$(md5sum "$FILE" | awk '{print $1}') # or: md5 -q on macOS
curl -s -X POST https://api.figshare.com/v2/account/articles/$ART/files \
-H "Authorization: token $FIGSHARE_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"md5\":\"$MD5\",\"name\":\"$(basename $FILE)\",\"size\":$SIZE}"
Response has location pointing at /account/articles/$ART/files/$FILE_ID.
Fetch upload info from that file record — it contains an upload_url. GET the upload_url to learn the part layout (parts: [{partNo, startOffset, endOffset}]).
Upload parts — for each part, PUT the byte range to ${upload_url}/${partNo}:
dd if="$FILE" bs=1 skip=$START count=$((END-START+1)) 2>/dev/null \
| curl -s -X PUT --data-binary @- "${upload_url}/${partNo}" \
-H "Authorization: token $FIGSHARE_TOKEN"
Complete — POST to the file record to finalize:
curl -s -X POST https://api.figshare.com/v2/account/articles/$ART/files/$FILE_ID \
-H "Authorization: token $FIGSHARE_TOKEN"
Why three steps: Figshare streams large files through a separate upload service. Skipping the complete call leaves the file in a pending state and it won't appear on the article.
Most list endpoints accept either page+page_size or limit+offset. Max page_size is typically 1000. For large harvests, loop until an empty page:
page=1
while :; do
out=$(curl -s "https://api.figshare.com/v2/articles?page=$page&page_size=100")
[ "$(echo "$out" | jq 'length')" = "0" ] && break
echo "$out" | jq -c '.[]'
page=$((page+1))
sleep 1
done
$FIGSHARE_TOKEN./account/... — token lacks the needed scope; regenerate with full permissions.title) or bad categories/defined_type.GET https://api.figshare.com/v2/categoriesGET https://api.figshare.com/v2/licensesまだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Use when designing, reviewing, or refactoring a CLI that must serve AI agents alongside humans, or when converting an API or SDK into an agent-usable CLI interface.
日本語の概要は準備中です。原文の説明を表示しています。
Search free commercial-use creative assets across multiple online sources — photos, illustrations, icons, video footage, music, sound effects, and fonts. Use when the user needs to find assets for videos, PPTs, articles, or any content creation. Trigger on phrases like "find me a photo of", "search for icons", "I need background music", "find video footage", "search fonts", "找一张图片", "搜素材", "帮我找图标/视频/音乐/字体". Covers Pexels, Unsplash, Pixabay, Iconify, Freesound, Google Fonts and more — with API-backed search where available.
日本語の概要は準備中です。原文の説明を表示しています。
Query the Semantic Scholar academic corpus through AI2's Asta MCP server: keyword or title search with venue and date filters, who-cited-a-paper traversal, author profiles and publications, DOI/arXiv/PMID lookup, and ~500-word full-text snippets for evidence, with citation counts and h-index. Use when the user asks for papers on a topic, who cited a paper, an author's work, recent literature since a date, or a venue-scoped paper list. Requires the Asta MCP server.
日本語の概要は準備中です。原文の説明を表示しています。
Extract and organize frames from a Bilibili video (bangumi episode, UP upload, or a local file) into scenery shots and per-character image groups, using anime-specific person detection + CCIP character-identity embeddings. Two modes — cluster everyone, or pull out one (or several) named characters via reference folders. Use when the user wants to collect, extract, or organize anime frames/screenshots by character or by scenery from a Bilibili video. Read-only download for personal viewing/analysis; uploads nothing.
日本語の概要は準備中です。原文の説明を表示しています。
Fetch Bilibili (哔哩哔哩) video comments for UP主 self-analysis. Use when the user asks to collect, download, export, or analyze comments on a Bilibili video (BV号 / URL / UID). Produces JSONL + summary.json suitable for further Claude Code analysis (sentiment, keywords, audience trends). Read-only; does not post/edit/delete.
日本語の概要は準備中です。原文の説明を表示しています。
Use when user requests diagrams, flowcharts, architecture charts, or visualizations. Also use proactively when explaining systems with 3+ components, complex data flows, or relationships that benefit from visual representation. Generates .excalidraw files and exports to PNG/SVG via Kroki API or locally using excalidraw-brute-export-cli.
日本語の概要は準備中です。原文の説明を表示しています。