arcana-upload-api
Uploads and syncs your custom agent skills to the Anthropic API for team usage.
Install
mkdir -p .claude/skills/arcana-upload-api && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/14338" && unzip -o skill.zip -d .claude/skills/arcana-upload-api && rm skill.zipInstalls to .claude/skills/arcana-upload-api
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Upload a Claude Code skill to the Anthropic Skills API for workspace-wide availability. Analyzes the skill, bundles dependencies, transforms frontmatter, validates, and uploads. Tracks uploads for future updates. Trigger phrases: "upload to API", "publish skill", "sync to API", "upload skill".Key capabilities
- →Upload a Claude Code skill to the Anthropic Skills API
- →Analyze the skill to identify necessary files and dependencies
- →Transform frontmatter by stripping CC-only fields
- →Validate skills for API compatibility
- →Track uploaded skills for future updates
How it works
The skill analyzes a Claude Code skill, bundles its dependencies, transforms its frontmatter, validates it for API compatibility, creates a ZIP file, and then uploads it to the Anthropic Skills API. It also tracks the upload for future updates.
Inputs & outputs
When to use arcana-upload-api
- →Publishing new agent skills
- →Updating shared skill sets
- →Distributing custom tools across the team
About this skill
Arcana Upload API: Upload to Messages API
Upload a Claude Code skill to the Anthropic Skills API.
Path Convention
{PLUGIN_ROOT} = This plugin's root directory (where plugin.json lives)
Prerequisites
ANTHROPIC_API_KEYenvironment variable must be set- Python 3.8+ with
requestsandpyyamlpackages
What This Does
- Analyzes the skill to understand what it does
- Identifies all files the skill needs
- Transforms frontmatter (strips CC-only fields)
- Validates for API compatibility
- Creates a ZIP file
- Uploads to Anthropic Skills API
- Tracks the upload for future updates
Workflow
Step 1: Check Prerequisites
Verify API key is set:
if [ -z "$ANTHROPIC_API_KEY" ]; then
echo "ANTHROPIC_API_KEY not set"
fi
If not set, ask user to set it.
Step 2: Check State
Read {PLUGIN_ROOT}/lib/patterns/state-tracking.md for guidance.
Check if this skill has been uploaded before:
python3 "{PLUGIN_ROOT}/lib/tools/state.py" get {skill-name}
If found:
- Inform user: "Skill already uploaded (v2). Will create new version."
- Use stored skill_id for version creation
If not found:
- Inform user: "New skill. Will create."
Step 3: Analyze the Skill
Same as export-zip - read {PLUGIN_ROOT}/lib/patterns/skill-analysis.md.
- Read the SKILL.md
- Explore the skill directory
- Trace dependencies
- Build file manifest
Step 4: Transform Frontmatter
Same as export-zip - read {PLUGIN_ROOT}/lib/patterns/frontmatter-transform.md.
Strip CC-only fields, keep name/description/version.
Step 5: Validate
Same as export-zip - read {PLUGIN_ROOT}/lib/references/validation-rules.md.
Validate name and description.
Step 6: Create ZIP
Same as export-zip:
python3 "{PLUGIN_ROOT}/lib/tools/zip_skill.py" \
--name {skill-name} \
--output /tmp/{skill-name}.zip \
--base-path {temp-directory} \
{files...}
Step 7: Upload to API
Read {PLUGIN_ROOT}/lib/references/api-spec.md for API details.
For new skill:
python3 "{PLUGIN_ROOT}/lib/tools/api.py" upload /tmp/{skill-name}.zip \
--title "{Skill Title}"
For existing skill (new version):
python3 "{PLUGIN_ROOT}/lib/tools/api.py" version {skill_id} /tmp/{skill-name}.zip
Step 8: Update State
Record the upload:
python3 "{PLUGIN_ROOT}/lib/tools/state.py" set {skill-name} \
--skill-id {skill_id} \
--source-path {original-skill-path}
Step 9: Report Result
New skill:
Upload complete!
Skill: my-skill
ID: skill_01AbCdEfGhIjKlMnOpQrStUv
Version: 1
Status: Created
To use in Messages API:
{
"container": {
"skills": [
{
"type": "custom",
"skill_id": "skill_01AbCdEfGhIjKlMnOpQrStUv",
"version": "latest"
}
]
}
}
Updated skill:
Upload complete!
Skill: my-skill
ID: skill_01AbCdEfGhIjKlMnOpQrStUv
Version: 3 (updated from v2)
Status: New version created
The latest version is now active for "version": "latest"
Example Session
User: Upload the github-helper skill to the API
Claude:
- Checking ANTHROPIC_API_KEY... ✓ Set
- Checking state... Not found (new skill)
- Reading skill at
/path/to/github-helper/SKILL.md... - This skill helps with GitHub operations.
- Found dependencies: 2 files
- Transforming frontmatter (stripping: allowed-tools, hooks)...
- Validation passed
- Creating ZIP...
- Uploading to API...
python3 lib/tools/api.py upload /tmp/github-helper.zip --title "GitHub Helper"
{
"id": "skill_01AbCdEfGhIjKlMnOpQrStUv",
"title": "GitHub Helper",
"version": 1
}
- Recording state...
Upload complete!
Error Handling
| Error | Resolution |
|---|---|
| API key not set | Ask user to set ANTHROPIC_API_KEY |
| 401 Unauthorized | Check API key is valid |
| 422 Validation error | Check name/description, report specific issue |
| 429 Rate limited | Wait and retry |
| Network error | Retry with backoff |
Cleanup
After successful upload, optionally delete the temporary ZIP:
rm /tmp/{skill-name}.zip
Related Patterns
{PLUGIN_ROOT}/lib/patterns/skill-analysis.md- How to analyze skills{PLUGIN_ROOT}/lib/patterns/state-tracking.md- How to track uploads{PLUGIN_ROOT}/lib/references/api-spec.md- API specification
When not to use it
- →When `ANTHROPIC_API_KEY` environment variable is not set
- →When the skill is not intended for workspace-wide availability
Prerequisites
Limitations
- →Requires `ANTHROPIC_API_KEY` to be set
- →Requires Python 3.8+ with `requests` and `pyyaml`
- →Uploads only to the Anthropic Skills API
How it compares
This skill automates the entire process of preparing and publishing a Claude Code skill to the Anthropic API, including dependency bundling and validation, which is more efficient than manual packaging and uploading.
Compared to similar skills
arcana-upload-api side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| arcana-upload-api (this skill) | 0 | 7mo | Review | Beginner |
| prompt-optimize | 13 | 9mo | No flags | Advanced |
| ai-cost-optimizer | 9 | 5mo | Caution | Intermediate |
| self-improving-agent | 12 | 1mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
prompt-optimize
YYH211
Expert prompt engineering skill that transforms Claude into "Alpha-Prompt" - a master prompt engineer who collaboratively crafts high-quality prompts through flexible dialogue. Activates when user asks to "optimize prompt", "improve system instruction", "enhance AI instruction", or mentions prompt engineering tasks.
ai-cost-optimizer
ScientiaCapital
Save 40-70% on AI costs with intelligent multi-LLM routing. Automatically selects the optimal model based on task complexity across 40+ models from 8 providers.
self-improving-agent
alirezarezvani
Curate Claude Code's auto-memory into durable project knowledge. Analyze MEMORY.md for patterns, promote proven learnings to CLAUDE.md and .claude/rules/, extract recurring solutions into reusable skills. Use when: (1) reviewing what Claude has learned about your project, (2) graduating a pattern from notes to enforced rules, (3) turning a debugging solution into a skill, (4) checking memory health and capacity.
ccs-delegation
kaitranntt
Auto-activate CCS CLI delegation for deterministic tasks. Parses user input, auto-selects optimal profile (glm/kimi/custom) from ~/.ccs/config.json, enhances prompts with context, executes via `ccs {profile} -p "task"` or `ccs {profile}:continue`, and reports results. Triggers on "use ccs [task]" patterns, typo/test/refactor keywords. Excludes complex architecture, security-critical code, performance optimization, breaking changes.
skill-from-notebook
GBSOSS
Extract methodologies from documents or examples to create executable skills
prompt-factory
alirezarezvani
World-class prompt powerhouse that generates production-ready mega-prompts for any role, industry, and task through intelligent 7-question flow, 69 comprehensive presets across 15 professional domains (technical, business, creative, legal, finance, HR, design, customer, executive, manufacturing, R&D, regulatory, specialized-technical, research, creative-media), multiple output formats (XML/Claude/ChatGPT/Gemini), quality validation gates, and contextual best practices from OpenAI/Anthropic/Google. Supports both core and advanced modes with testing scenarios and prompt variations.