Skip to main content
Skills add domain expertise to an Agent. A Skill is a structured set of instructions and procedures that makes an Agent more capable and reliable on a specific kind of task.
If you use QoderWork or Qoder desktop, you can install the Cloud Agents skill from the skill marketplace to create and manage Cloud Agents directly from your local conversation — no manual API calls needed.

What skills do

  • Inject domain knowledge — give a generalist Agent specialized abilities (code review, document generation, etc.).
  • Standardize procedures — ensure the Agent follows consistent steps and produces consistent output.
  • Reusable — define once and share across multiple Agents.

Skill file layout

A Skill is uploaded as a .zip archive containing:
my-skill/
├── SKILL.md          # Required: Skill definition
├── templates/        # Optional: template files
│   └── report.md
└── examples/         # Optional: example files
    └── sample.json
SKILL.md is the core file, written as YAML frontmatter plus Markdown:
name: code-review
description: Perform structured code reviews and produce improvement suggestions
version: 1.0.0

# Code Review

## Steps
1. Analyze the structure and architecture of the code.
2. Check for common issues (security, performance, maintainability).
3. Output a structured review report.

## Pitfalls
- Don't fixate on formatting — prioritize logic errors.
- Provide concrete fixes rather than vague critiques.

Create a skill

POST https://api.qoder.com/api/v1/cloud/skills
Content-Type: multipart/form-data

curl example

# Package the skill directory
cd my-skill && zip -r ../my-skill.zip . && cd ..

# Upload
curl -X POST https://api.qoder.com/api/v1/cloud/skills \
  -H "Authorization: Bearer $QODER_PAT" \
  -F "file=@my-skill.zip"
Response:
{
  "id": "skill_019e5d133c057536872f745e0b6dbd5d",
  "type": "skill",
  "name": "code-review",
  "description": "Perform structured code reviews and produce improvement suggestions",
  "skill_type": "custom",
  "status": "active",
  "version": 1,
  "content_sha256": "3f4b80bd74ef8aa801005a17f1843019ddcebd4ded36b5bd46bfffb3d39ff71a",
  "content_size": 191,
  "metadata": {},
  "created_at": "2026-05-01T10:00:00Z",
  "updated_at": "2026-05-01T10:00:00Z"
}
version is an auto-incremented integer maintained by the server (starting at 1). Each successful re-upload increments it. The version value in SKILL.md frontmatter (e.g. 1.0.0) is informational only and is not the server-side version.

Bind to an agent

Use PUT to update the Agent’s skills field (full replacement — PATCH returns 405). Include version for optimistic concurrency control:
curl -X PUT https://api.qoder.com/api/v1/cloud/agents/agent_abc123 \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "version": 1,
    "skills": [{"type": "custom", "skill_id": "skill_019e5d133c057536872f745e0b6dbd5d"}, {"type": "custom", "skill_id": "skill_019e5cdc7a9278ba933d4c328096bac5"}]
  }'

Versioning

Re-uploading a skill with the same name creates a new version:
# Bump the version field in SKILL.md, then re-upload
curl -X POST https://api.qoder.com/api/v1/cloud/skills \
  -H "Authorization: Bearer $QODER_PAT" \
  -F "file=@my-skill-v2.zip"
Agents linked to the Skill always pick up the latest version.

Get a skill

curl https://api.qoder.com/api/v1/cloud/skills/skill_019e5d133c057536872f745e0b6dbd5d \
  -H "Authorization: Bearer $QODER_PAT"

List skills

curl https://api.qoder.com/api/v1/cloud/skills \
  -H "Authorization: Bearer $QODER_PAT"
Response:
{
  "data": [
    {
      "id": "skill_019e5d133c057536872f745e0b6dbd5d",
      "name": "code-review",
      "description": "Perform structured code reviews and produce improvement suggestions",
      "version": 1,
      "content_sha256": "3f4b80bd74ef...",
      "content_size": 191,
      "metadata": {},
      "skill_type": "custom",
      "status": "active",
      "type": "skill",
      "created_at": "2026-05-01T10:00:00Z",
      "updated_at": "2026-05-01T10:00:00Z"
    },
    {
      "id": "skill_019e5cdc7a9278ba933d4c328096bac5",
      "name": "doc-generator",
      "description": "Generate technical documentation",
      "version": 3,
      "content_sha256": "a1b2c3d4e5f6...",
      "content_size": 420,
      "metadata": {},
      "skill_type": "custom",
      "status": "active",
      "type": "skill",
      "created_at": "2026-04-20T08:30:00Z",
      "updated_at": "2026-04-25T09:15:00Z"
    }
  ]
}

Authoring tips

  1. State the trigger — write the description so it’s clear when this Skill should be used.
  2. Be concrete in steps — describe precise actions, not vague guidance.
  3. Document pitfalls — help the Agent avoid common mistakes.
  4. Provide validation — tell the Agent how to confirm the task is complete.

FAQ

Q: How are Skills different from the Agent system prompt? A: system is general guidance that applies to every task. A Skill is an on-demand expertise module the Agent activates based on the task at hand. Q: How many Skills can an Agent reference? A: There’s no hard limit, but keep it under 10 to maintain predictable behavior. Q: When will Skills go GA? A: The feature is in M2. Reach out if you want early access; broader rollout is coming in a later release. Q: Is there a size limit on the zip? A: A single Skill zip must be 10 MB or less.

Next steps

Tools

Equip your agent with built-in, MCP, and custom tools.

Agent setup

Review Agent configuration.

Start a session

Run an agent against an environment.

Build persistent memory

Give your agent persistent memory across sessions.