If you have built a Custom GPT, you already understand most of what a Claude skill does. You wrote some instructions, maybe uploaded a few reference files, and gave your assistant a job. A Claude skill is that same instinct pointed at a different target. For me, the whole question of Claude skills vs Custom GPTs comes down to one thing most people miss on day one, which is where the thing you built is allowed to go.
A Custom GPT lives inside ChatGPT, and that frames everything else about it. A Claude skill is a small folder you can carry almost anywhere.
That difference is what should decide which one you build, so let me define both plainly.
What a Custom GPT actually is
A Custom GPT is a saved configuration of ChatGPT. You give it instructions (its behavior, tone, and rules), you can attach up to 20 knowledge files for it to draw from, and you can wire up Actions that let it call external APIs in plain language. Per OpenAI's help docs, each knowledge file can be up to 512 MB, and you build it inside ChatGPT's editor by chatting with it or filling in the fields directly. Creating or editing one requires a paid plan.
Then you save it. It shows up in your sidebar, you can share a link, and you can publish it to the GPT Store.
Here is the boundary nobody mentions in the launch tutorials. Your Custom GPT runs in ChatGPT and only in ChatGPT. You cannot lift it into another tool, because it is OpenAI-hosted and it stays where you made it.
What a Claude skill actually is
A Claude skill is a folder. Inside that folder is a file called SKILL.md, which holds plain-language instructions plus a short header describing what the skill does and when to use it. The folder can optionally hold scripts and reference files too, which the assistant pulls in only when a task needs them.
That folder is the skill, and there is nothing else to it.
What makes it interesting is how Claude reads it. Anthropic calls the mechanism progressive disclosure, and the agent-skills overview explains it well. At rest, the assistant only knows the skill's name and one-line description, which costs it almost nothing. When your request matches that description, it reads the instructions. If those instructions point to a deeper reference file, it reads that one too, but only then. A knowledge file in a Custom GPT sits in a pile the assistant searches through, while a skill works more like an onboarding guide the assistant flips to the right page of.
If you want the longer version of this definition, we wrote a full breakdown of what a Claude skill is.
Claude skills vs Custom GPTs: the differences that change your decision
Four things separate these two, though portability is the one I think should drive your choice.
Where it runs. A Custom GPT runs inside ChatGPT. A Claude skill runs across Claude's own products (the Claude apps, Claude Code, and the API, per the overview docs) and, because the SKILL.md format is published as an open standard, in other agents that adopt it too, including Codex, Cursor, and Gemini CLI. The same folder works in more than one place, because it is a plain text file rather than a hosted account setting.
How portable it is. This is the real fork in the road. A Custom GPT is locked to OpenAI's platform. You do not own a file you can move, you own a configuration on someone else's servers. A skill is a folder on your machine or in a Git repo, so you can email it, version it, hand it to a teammate, or load it into a different assistant next year when you switch tools. One you rent, and the other you keep.
How it loads. A Custom GPT's full instructions are active the moment you open it. A skill stays dormant until its description matches what you are doing, and then it loads in stages. For one narrow assistant that barely registers. Once you have a dozen procedures, though, it is the difference between a clean assistant and a bloated one.
How you author it. Both let you write in plain language. The Custom GPT editor is friendly and conversational, and you never see a file. A skill is technically just a Markdown file with a header, which is approachable if you are comfortable with text, and a small wall if you are not. The good news, which I will come back to, is that you do not have to write that file by hand.
Here is the same comparison in one view.
| Custom GPT | Claude skill | |
|---|---|---|
| What it is | A saved ChatGPT configuration | A SKILL.md folder of instructions |
| Where it runs | Inside ChatGPT only | Claude apps, Claude Code, API, plus other agents using the open format |
| Portability | Locked to OpenAI | A file you can move, share, and version |
| Loading | All instructions active at once | Loaded on demand by description |
| Knowledge | Up to 20 uploaded files | Optional reference files and scripts in the folder |
| Authoring | In-ChatGPT editor | Edit a Markdown file (or generate it) |
Which one should you build
If your work lives in ChatGPT and you want a friendly assistant for one job, build the Custom GPT. It is the faster path, and the editor is genuinely pleasant to use.
Build a Claude skill if any of three things is true. You use Claude, or bounce between tools and want one procedure to follow you across all of them. You care about owning what you built as a file rather than renting it. Or you have a real repeatable procedure, the kind with steps and edge cases, that you are tired of re-explaining. A skill is a better container for procedural work because it was designed around the "how," where a Custom GPT leans toward being a configured persona. People ask for the Claude equivalent of a Custom GPT, and my honest answer is a skill, more portable and a little more hands-on to write.
One related question is worth settling. A skill differs from a system prompt in that a system prompt is always on, while a skill waits for the request that matches it.
Moving a Custom GPT to a skill
There is no official converter. OpenAI does not export your GPT as a SKILL.md, and Anthropic does not import one. Anyone selling you a one-click "migrate your GPT" button is selling you something that does not exist as of mid-2026.
The manual path is straightforward, if tedious. Open your Custom GPT, copy its instructions into the body of a SKILL.md file, and write a one-line description at the top saying what it does and when to use it. Drop your knowledge files into the same folder as reference material. There is no direct Actions equivalent, so any API calls you wired up will need rebuilding as scripts. Then test it, because instructions that worked in ChatGPT sometimes need a tweak to read cleanly to a different assistant.
If that sounds like a chore, well, it is, which is the whole reason Knack exists. You answer a short interview about what your assistant should do, the same kind of questions the ChatGPT editor asks, and it produces a real SKILL.md folder you can drop into Claude Code, the Claude apps, Codex, Cursor, or Gemini CLI. If you already have a Custom GPT, paste its instructions into the interview and Knack shapes them into the equivalent skill without you touching the file format. Our no-code walkthrough shows the whole flow.
So the short version is this. A Custom GPT is the easy answer when you live in ChatGPT, and a Claude skill is the better answer the moment you want what you built to outlast the tool you built it in.