Skip to main content

Skills for Developers

This page covers how to work with XainFlow skills outside the app — from your IDE, through the API, or by contributing to the open source repository.

Open Source Repository

The XainFlow skills repository is open source and hosted on GitHub:

github.com/xainflow/skills

Repository Structure

skills/
├── official/ # Skills maintained by XainFlow team
│ ├── product-shots/
│ │ └── SKILL.md
│ ├── social-media-kit/
│ │ └── SKILL.md
│ └── ...
├── community/ # Skills contributed by the community
│ └── your-skill/
│ └── SKILL.md
├── spec/
│ └── SPEC.md # Full SKILL.md format specification
├── CONTRIBUTING.md # Contribution guidelines
└── README.md

Each skill lives in its own folder. The folder name must match the name field in the skill's YAML frontmatter.

SKILL.md Specification

The specification defines the structure every skill must follow. Key points:

Required Fields

FieldDescription
nameUnique identifier — lowercase, hyphens only, max 64 characters
descriptionSingle-sentence purpose statement
categoryOne of: photography, social, branding, tools, video, marketing, workflow, custom
argument-hintDescribes expected user input, in brackets

Validation Rules

  • YAML must be valid and parseable.
  • name must match the containing folder name.
  • category must be one of the eight predefined values.
  • credit-budget must be a positive number if specified.
  • No workspace-specific UUIDs in the skill body.
  • All referenced MCP tools must be valid XainFlow tools.
  • Aspect ratios must use W:H format (e.g., 1:1, 16:9).

For the complete specification, see SPEC.md.

MCP Integration

XainFlow skills are designed to work with any MCP-compatible AI assistant. Here's how to use them from external tools.

Prerequisites

  1. Connect to XainFlow's MCP server. See MCP Server for setup instructions.
  2. Generate an API key. See API Access for key creation.

Using Skills from Claude Code

# In your Claude Code session, after connecting XainFlow MCP:

> "List available XainFlow skills"
# The agent calls xainflow_list_skills() and shows your workspace skills

> "Show me Hub skills for product photography"
# The agent calls xainflow_list_skills(hub: true) and filters by category

> "Clone product-shots into my workspace"
# The agent calls xainflow_clone_skill(skill_id: "product-shots")

> "Use the product-shots skill on this image"
# The agent fetches the skill, follows its instructions, and executes

Using Skills from Cursor / Windsurf

The workflow is the same as Claude Code — any MCP-compatible IDE can:

  1. Connect to XainFlow's MCP server using your API key.
  2. List skills with xainflow_list_skills.
  3. Clone Hub skills with xainflow_clone_skill.
  4. Execute skills by asking the AI assistant to follow the skill's instructions.
tip

The MCP connection gives the AI assistant access to all XainFlow tools. Skills just provide the recipe — the assistant handles the tool calls automatically.

MCP Tool Reference

These are the skill-related MCP tools:

ToolParametersDescription
xainflow_list_skillshub (boolean, optional)List workspace skills. Set hub: true to list Hub skills instead.
xainflow_get_skillskill_id (string)Get full skill details including SKILL.md content.
xainflow_clone_skillskill_id (string)Clone a Hub skill into your workspace.
xainflow_create_skillname, description, content, scopeCreate a new skill in your workspace.

API Access

You can manage skills programmatically through the XainFlow API using the api-skills edge function.

Authentication

All API requests require an API key in the Authorization header:

Authorization: Bearer YOUR_API_KEY

See API Access for key creation and management.

Available Actions

ActionMethodDescription
listGETList all skills in your workspace
getGETGet a specific skill by ID
createPOSTCreate a new skill

Example: List Skills

curl -X GET "https://api.xainflow.com/api-skills?action=list" \
-H "Authorization: Bearer YOUR_API_KEY"

Example: Get a Skill

curl -X GET "https://api.xainflow.com/api-skills?action=get&skill_id=product-shots" \
-H "Authorization: Bearer YOUR_API_KEY"

Example: Create a Skill

curl -X POST "https://api.xainflow.com/api-skills?action=create" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "my-custom-skill",
"description": "Generate branded social banners.",
"category": "social",
"argument_hint": "[banner text and image]",
"content": "# Social Banners\n\n## Inputs\n...",
"scope": "global"
}'

Contributing Skills

Share your skills with the community by contributing to the open source repository.

Step-by-Step

  1. Fork the repository at github.com/xainflow/skills.

  2. Create your skill folder under skills/community/:

    skills/community/my-skill-name/
    └── SKILL.md
  3. Write your SKILL.md following the format specification:

    • Include all required frontmatter fields (name, description, category, argument-hint).
    • Use lowercase hyphens for the name and folder.
    • Write clear, actionable instructions in the body.
  4. Validate your skill against these checks:

    • Valid YAML frontmatter.
    • Folder name matches name field.
    • Category is one of the eight valid options.
    • No hardcoded workspace IDs or UUIDs.
    • All referenced tools are valid XainFlow MCP tools.
    • Credit budget is realistic for the operations performed.
    • Includes a user confirmation step before execution.
  5. Submit a pull request to the main branch with:

    • A clear title describing your skill.
    • A description of what the skill does and example use cases.

Review Process

The XainFlow team reviews community contributions for:

  • Format compliance — valid SKILL.md structure and frontmatter.
  • Quality — clear instructions that an AI agent can follow reliably.
  • Safety — no hardcoded secrets, IDs, or workspace-specific data.
  • Usefulness — solves a real creative workflow need.
info

You can also publish skills directly from the XainFlow app to the Skills Hub without going through GitHub. The open source repo is for developers who prefer Git-based workflows or want to contribute improvements to existing skills.