
figshare-skill
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".
- Installs
- 252
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/agents365-ai/365-skills --skill figshare-skill- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads figshare-skill automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Figshare Skill
Interact with the Figshare v2 REST API to search, download, create, and upload research outputs.
Prerequisites
-
curlandjqavailable 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.
Update check
Throttle to one check per 24 hours per installation; never mutate the skill directory without explicit user consent.
-
If
<this-skill-dir>/.last_updateexists 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.versionfrom 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_updateeither way so the prompt doesn't repeat for 24 hours. -
If upstream is the same or older, refresh
.last_updatesilently 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.
API Basics
- Base URL:
https://api.figshare.com/v2 - Auth header:
Authorization: token $FIGSHARE_TOKEN - Content-Type:
application/jsonfor POST/PUT bodies - Rate limit: keep it under ~1 request/second to avoid abuse throttling
- Errors: JSON body with
message,code; common codes 400/401/403/404/422
Common Recipes
Search public articles
curl -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:.
Get a public article (by ID or 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
Download all files from a public article
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
List your own articles
curl -s -H "Authorization: token $FIGSHARE_TOKEN" \
"https://api.figshare.com/v2/account/articles?page=1&page_size=50" | jq
Create an article (draft)
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 / publish an article
# 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.
Collections & projects
# 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"}'
Uploading Files (Multi-part Flow)
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
locationpointing 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.
Pagination
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
Troubleshooting
- 401 — token missing/expired; re-check
$FIGSHARE_TOKEN. - 403 on
/account/...— token lacks the needed scope; regenerate with full permissions. - 422 on article create — missing required field (usually
title) or badcategories/defined_type. - Upload parts mismatch — md5 or size in step 1 didn't match the bytes actually uploaded; recompute and restart.
- Published article won't update — publishing freezes a version; create a new version instead.
References
- API reference: https://docs.figshare.com/
- Token management: https://figshare.com/account/applications
- Category IDs:
GET https://api.figshare.com/v2/categories - License IDs:
GET https://api.figshare.com/v2/licenses
FAQ
What does the figshare-skill skill do?
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".
How do I install figshare-skill?
Run npx skills add https://github.com/agents365-ai/365-skills --skill figshare-skill in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/figshare-skill/ (personal) or .claude/skills/figshare-skill/ (project).
Which AI agents can use figshare-skill?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is figshare-skill safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains figshare-skill?
It is published by agents365-ai in agents365-ai/365-skills. It has 252 recorded installs.
More from agents365-ai/365-skills
drawio-skill
agents365-ai/365-skills
Create, edit, synchronize, inspect, test, and publish editable draw.io diagrams. Use when the user explicitly requests draw.io/diagrams.net, needs a polished architecture, ERD, UML, sequence, C4, SysML, BPMN, network, swimlane, ML, or infrastructure diagram, wants code/IaC/SQL/OpenAPI/AsyncAPI/Protobuf converted into a diagram, or wants an existing diagram queried, reviewed, diffed, restyled, kept in sync, or made interactive. Prefer Mermaid/PlantUML elsewhere when the requested artifact is diagrams-as-code rather than an editable draw.io file.
excalidraw
agents365-ai/365-skills
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.
creating-mermaid-diagrams
agents365-ai/365-skills
Generate Mermaid diagrams (.mmd) and export to PNG/SVG/PDF using mmdc CLI or Kroki API. USE THIS SKILL when user mentions diagram, flowchart, sequence diagram, class diagram, ER diagram, state machine, architecture, visualize, git graph, 画图, 架构图, 流程图, 时序图. PROACTIVELY USE when explaining ANY system with 3+ components, API flows, authentication sequences, class hierarchies, database schemas, or state machines. Supports 11+ diagram types with fully automatic layout.
plantuml-skill
agents365-ai/365-skills
Use when user requests diagrams, flowcharts, sequence diagrams, class diagrams, component diagrams, ER diagrams, architecture charts, or visualizations — including generating a diagram from existing source code, or rendering/extracting PlantUML embedded in a Markdown file to images (e.g. preparing docs for Confluence/Notion). Also use proactively when explaining systems with 3+ components, APIs, data flows, or class hierarchies. Generates .puml files and exports to PNG/SVG via Kroki API (no local install required).
tldraw-skill
agents365-ai/365-skills
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 .tldr JSON files and exports to PNG/SVG locally using @kitschpatrol/tldraw-cli.
paper-fetch
agents365-ai/365-skills
Use whenever the user wants to obtain, download, or fetch a paper's PDF — given a DOI, an arXiv id, a paper title, a citation, or a list of DOIs. Trigger on phrases like "download this paper", "find the PDF for [DOI]", "grab me the [Nature/bioRxiv/arXiv] paper on X", "get the open-access version", "I need this article", or any bulk/batch paper download request, even when the user doesn't explicitly say "PDF" or "DOI". Resolves via Unpaywall → Semantic Scholar → arXiv → PubMed Central → bioRxiv/medRxiv → publisher direct (institutional opt-in) → Sci-Hub mirrors as last-resort fallback.
Popular backend & apis skills
find-skills
vercel-labs/skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
entra-app-registration
microsoft/azure-skills
Guides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.
google-agents-cli-adk-code
google/agents-cli
This skill should be used when the user wants to "write agent code", "build an agent with ADK", "add a tool", "create a callback", "define an agent", "use state management" — in a project that needs ADK (Agent Development Kit) API patterns and code examples. It provides a quick reference for agent types, tool definitions, orchestration patterns, callbacks, state management, the graph Workflow API, and reference recipes to study. Do NOT use for scaffolding (use google-agents-cli-scaffold) or deployment (use google-agents-cli-deploy).
embedded-captions
heygen-com/hyperframes
Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet anchor rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.
entra-agent-id
microsoft/azure-skills
Provision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmipath, OBO, cross-tenant) including the Microsoft Entra SDK for AgentID sidecar. USE FOR: Agent Identity Blueprint, BlueprintPrincipal, agent OAuth, fmipath token exchange, agent OBO, Workload Identity Federation for agents, polyglot agent auth, Microsoft.Identity.Web.AgentIdentities. DO NOT USE FOR: standard Entra app registration (use entra-app-registration), Microsoft Foundry agent authoring (use microsoft-foundry).
neon
neondatabase/agent-skills
Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, the AI Gateway, and Realtime. Start here to choose Neon for undecided login, files, APIs, and LLM calls, set up the CLI or MCP server, and follow the branch-first workflow. Use when building an app or backend on Neon, or when "Neon" or "Lakebase Postgres" is mentioned. Child skill neon-postgres wins for an existing DATABASEURL, SQL, schema, inspect, or search. Child skill neon-auth wins for login, users, sessions, identity routing, and Managed Better Auth setup. Child skill neon-realtime wins for live queries in reactive apps and agents. Also use for object storage, S3, buckets, serverless functions, function triggers, cron, AI gateway, LLM calls, realtime, logs, Loki, Grafana, observability, postgres, database, backend, Claimable Neon, neon.new, or a no-signup database.