Skip to content

Skills ​

Reusable instruction sets that agents load on demand — based on the AgentSkills.io standard.

What are Skills? ​

A skill is a SKILL.md file with YAML frontmatter metadata and markdown instructions. Instead of hardcoding long prompts into your agent, you publish skills to the registry and agents load them at runtime via Skill.from_url().

Key benefits:

  • 📦 Reusable — one skill can be shared across many agents
  • 🔄 Progressive disclosure — only metadata is in the system prompt; full instructions load on demand (saves tokens)
  • 🌐 Standard — compatible with any AgentSkills.io client (Claude Code, Cursor, etc.)
  • 🔍 Discoverable — skills are searchable in the UAPI catalog

SKILL.md Format ​

markdown
---
name: concise-answers
description: Keep responses short, cite tools used, prefer bullet points
---

## Instructions

Keep every response under 150 words. Always name the tool you used, if any.
Prefer bullet points over prose.

Frontmatter Rules (per AgentSkills.io spec) ​

  • name — required, 1-64 chars, lowercase alphanumeric + hyphens, no leading/trailing/consecutive hyphens
  • description — required, human-readable summary
  • allowed-tools — (optional) list of tool names the skill may use

Using Skills in Your Agent ​

python
from strands import Agent
from strands.models import BedrockModel
from strands.vended_plugins.skills import AgentSkills

model = BedrockModel(model_id="us.amazon.nova-pro-v1:0")

agent = Agent(
    model=model,
    session_manager=session_manager,
    plugins=[AgentSkills(skills=[
        "https://api.universalapi.co/skills/s/snowtimber/concise-answers/SKILL.md",
        "https://api.universalapi.co/skills/s/snowtimber/mcp-tool-design/SKILL.md",
    ])],
)
return agent, []

The AgentSkills plugin:

  1. Injects <available_skills> metadata into the system prompt
  2. Registers a skills tool the agent can call to activate a skill
  3. When activated, the full instructions are loaded and injected

Creating Skills ​

Via the API ​

bash
curl -X POST https://api.universalapi.co/skills/create \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "skillMd": "---\nname: my-skill\ndescription: ...\n---\n\n## Instructions\n...",
    "visibility": "public"
  }'

Via the UI ​

Navigate to universalapi.co/skills and click Create Skill.

Raw SKILL.md Endpoint ​

Every skill has a raw URL that serves text/markdown — this is what Skill.from_url() fetches:

GET https://api.universalapi.co/skills/s/{owner}/{slug}/SKILL.md

Public skills are accessible without authentication. Private skills require the owner's bearer token.

Starter Skills ​

The following public skills ship with the platform:

SkillSlug URLDescription
concise-answerssnowtimber/concise-answersKeep responses short, cite tools used, prefer bullet points
uapi-agent-authoringsnowtimber/uapi-agent-authoringGuidelines for writing correct Strands agents on UAPI
mcp-tool-designsnowtimber/mcp-tool-designBest practices for MCP server tool names, descriptions, and schemas
sam-nested-stacks-by-capabilitysnowtimber/sam-nested-stacks-by-capabilityOpinionated AWS SAM architecture — root template + nested stacks by product capability
live-source-mirror-definition-of-donesnowtimber/live-source-mirror-definition-of-doneWhen a datastore is the source of truth for code, follow the 5-step live push loop
dogfood-first-toolingsnowtimber/dogfood-first-toolingUse your own platform tools first — MCP → curl → scripts
docs-sync-checklistsnowtimber/docs-sync-checklistEvery feature must touch four documentation layers
Raw URL pattern: https://api.universalapi.co/skills/s/{owner}/{slug}/SKILL.md

Security Note ​

Public skills are consumed by other users' agents as untrusted instruction text. The platform runs AI classification to flag concerning patterns (riskFlags in classification), but skill authors should avoid including instructions that request credential extraction or data exfiltration.

Universal API - The agentic entry point to the universe of APIs