If you already have a skill defined in a file — or want to reuse one from elsewhere — upload it directly instead of rebuilding it in the wizard.

Starting the Upload

In the “Manage Skills” modal, open the “Add” dropdown and choose “Upload a skill”. The “Upload skill” dialog opens with a drag-and-drop zone.
Upload skill dialog with drag-and-drop zone

Accepted File Types

You can upload the following:
File typeRequirement
.mdMust contain the skill name and description formatted in YAML
.zipMust include a SKILL.md file
.skillMust include a SKILL.md file
If you upload an unsupported file, you’ll see the error “Only .md, .zip, or .skill files are accepted.”

Uploading

1

Choose a file

Use the “Drag and drop or click to upload” zone to select or drop your file.
2

Not sure of the format?

Click “Download template” to get a skill-template.md you can fill in and re-upload.
3

Complete any requirements

If the skill declares credentials or requirements, a Skill Requirements configuration wizard runs before the upload finishes.

Skill Requirements

Some skills need configuration values or a connector to work. When that’s the case, the requirements wizard prompts you to supply them — for example: “This skill needs the connector. Connect it to continue.”
If a skill’s requirements aren’t satisfied, a “Configuration required — open Edit config…” warning icon appears on it. Open “Edit config” from the row’s actions menu to finish setting it up.
For help connecting the services a skill depends on, see Setting up a connector and Custom MCP servers.
A .zip or .skill bundle uploads fine even if it contains macOS artifacts like __MACOSX/ or ._* files — Generate ignores them. If a bundled script contains sudo, Generate strips it and shows a toast explaining that skills run unprivileged in the sandbox, so the command now runs as the sandbox user instead of failing the upload.

After Uploading

The uploaded skill appears under “Your skills” with Author set to “You”. Enable it, then attach it wherever you need it.
If the name you upload already matches an existing skill, Generate doesn’t block the upload — it auto-renames yours (for example foo becomes foo-2) and shows a “Saved with changes” toast explaining the rename. You can rename it back from Manage Skills.

Next Steps