Skills & Connectors

Custom Skills

Create your own Skills: describe one in conversation with Skill Creation, import a .zip package or SKILL.md, wrap an external API, then test and manage the result in My Skills.

Updated 2026-09-11

Official Skills cover the common ground — video, images, speech, payments, maps, search, sign-in, productivity. A custom Skill is for what they do not cover: your company's review checklist, a house style for copy, an internal API, a workflow only your team runs. Once created, a custom Skill is called exactly like an official one, both when building apps and in General Tasks.

Two ways to create one

Click Skill in the sidebar, then Create skill at the top of the Skill Center. You land on the Home page with the prompt bar switched to Skill Creation:

The Home prompt bar in Skill Creation mode with the Import Skill button and example Skills

Describe it

Finish the sentence "Create a skill with the following details:" and send. Say what the Skill is for, when MeDo should use it, what it should do step by step, and what it must never do. The example cards under the box (Security Review, Copy Refinement, Product Review) show the level of detail that works. MeDo drafts the Skill, shows you the result, and lets you refine it in the same conversation before saving it to My Skills.

Import a package

Click Import Skill and choose a .zip Skill package or a single SKILL.md. MeDo reads the package, fills in the name, description, and icon, detects any environment variables it needs, and generates the Skill definition. Check the result, add the values for any API keys, and save.

Wrapping an external API

MeDo cannot yet turn an API documentation link into a Skill by itself. You have three options:

ApproachWhen to use it
Paste the API into the conversation while building an app: "Build a weather page using this API: …"You need the API in one app and do not care about reuse.
Ask Skill Creation to write the package: describe the API in detail (see below), download the generated .zip, and import itYou want to reuse the API across apps and tasks.
Import a package you already haveSomeone has written the Skill for you.

For the second option, give MeDo everything a developer would need. A good API description contains:

Skill name: Weather Query
Skill description: Real-time weather by city name — temperature, humidity, conditions.

Method: GET
URL: https://api.example.com/v1/weather?city=Beijing&unit=C
Header: Authorization: Bearer YOUR_API_KEY

Parameters:
  city  — required, city name
  unit  — optional, C or F, default C

Success response:
  { "city": "Beijing", "temperature": 18, "unit": "C", "condition": "Cloudy", "humidity": 62 }

Error response:
  { "error": "invalid_city", "message": "City not found" }

Error codes: invalid_city (404), missing_city (400), invalid_unit (400),
             unauthorized (401), rate_limited (429), server_error (500)

Never paste a real key into the description. Use a placeholder; you will enter the real value as an environment variable when the Skill is created.

Skill package format

Whether you write a package by hand or let MeDo generate one, it has to follow this layout:

financial-analysis.zip
└── financial-analysis/          # root folder name must equal the `name` field
    ├── SKILL.md                 # required
    ├── scripts/                 # optional: Python or shell scripts
    ├── references/              # optional: documentation, rules, knowledge
    └── assets/                  # optional: templates, icons, images

SKILL.md starts with frontmatter and then describes the Skill:

---
name: financial-analysis
description: |
  Analyze enterprise financial data and generate insights.
  Use when: (1) Financial report analysis, (2) Company comparison, (3) Risk identification
---

### Purpose

Help users analyze financial data, identify business trends, and detect potential risks.

### Instructions

1. Understand the user's input data or questions
2. Analyze key financial indicators
3. Generate structured conclusions

### Examples

Input: Financial reports from the past three years of a company

Output: Revenue trends, profit changes, and risk alerts

### Guardrails

- Do not fabricate data
- Ask follow-up questions when data is insufficient

Rules the import checks:

RuleDetail
File nameExactly SKILL.md, case-sensitive
FrontmatterMust open and close with ---
nameRequired; lowercase letters, numbers, and hyphens only
descriptionRequired; say what the Skill does and when to use it
BodyMust not be empty after the frontmatter
Root folderMust match name exactly

A .zip that fails any of these is rejected with the reason; fix the file and import again.

What MeDo fills in

After a successful import (or a conversation-created Skill), the Skill's page shows:

  • Basic information — name, description, and icon, taken from the package. These are what appear in My Skills, in the @ list, and in an app's Skill view.
  • Environment variables — one entry per key the Skill needs. The variable name is generated and fixed; enter the value here so every call can use it. Leave it empty and you will be asked for the value the first time you use the Skill in a project.
  • Skill definition — the machine-readable description MeDo uses to wire the Skill into apps, generated from the package and not editable by hand. Read it once: for an API Skill, every endpoint, its parameters, and an example should be there. If something is missing, fix the source files and import again.

Test it

  1. In any project, type @, pick your Skill from the top of the list, and describe a small task that uses it.
  2. Open the Skill view in the editor's left rail. If your Skill is listed, MeDo used it.
  3. Try the feature it produced. For an API Skill, check that a real call returns real data.

If the Skill is not listed, MeDo did not consider it relevant: sharpen the description and the endpoint descriptions so they match how you phrase requests, then import again. If it is listed but the feature fails, check the API key value first, then describe the failure in the conversation — MeDo can usually fix the call. If the failure persists, the API description is missing something (a parameter, an example response, an error code).

Manage your Skills

Skill → My Skills lists your custom Skills. Open one to change its environment variables or delete it.

Deleting a Skill stops it being used in new apps and tasks. Apps that already use it keep working; remove it from those apps individually through their Skill view if you want it gone everywhere.