← All writing

A practical guide to Claude Skills

Where Claude Skills actually come from, how to install one on claude.ai and in Claude Code, and the two ways they get triggered once they're running.

A Skill is a folder with a SKILL.md file in it. That's the whole primitive. Inside is a short description of what the skill does and when to use it, plus whatever instructions, scripts, or reference material the task needs. Claude reads the description up front, and only loads the full instructions when something you type actually matches it.

That's simple enough to explain in two sentences, which is part of why it's confusing in practice: nobody tells you where these folders come from, how to actually get one running on your machine, or what makes Claude decide to use it. So here's the practical version, in the order you'd actually hit it: find one, install it, use it.

Find

Four places I've actually pulled skills from or watched other people share them.

LinkedIn. Search the literal phrase "claude skill" and you'll get a steady stream of people posting short walkthroughs and demos, usually with the SKILL.md pasted in or a repo link in the comments. It's noisy, but it's also the fastest way to see what a skill looks like in someone else's actual workflow before you install anything.

GitHub. Search for "skill.md" or "claude skills" and you'll find individual repos as well as collections. Most are readable in under a minute since a skill is just a markdown file with some frontmatter.

A plain Google search for whatever repetitive task you're trying to hand off, plus "claude skill," turns up the same GitHub results along with blog posts explaining the setup. No frills, but often the fastest path when you already know what you want.

npx skills, a CLI browser for skills (built by Vercel Labs, not an Anthropic tool, worth knowing since the name suggests otherwise). Run npx skills add <repo> --list against any skills repo to see what's in it before installing anything.

gtmskills.com, backed by the open-source repo github.com/swan-gtm/gtm-skills. As of this month it's sitting at around 357 skills, all aimed at go-to-market work: cold email, signal-based prospecting, list building, LinkedIn, RevOps, paid ads, SEO, newsletters. If your repetitive motion is a sales or marketing task, this is the first place to check before you write one from scratch.

Install

The mechanics differ by surface, so here's each one.

claude.ai (the web app). Go to Settings, then Customize, then the Skills tab. (In Cowork, the desktop app, it's the same idea under a slightly different path: click Customize in the left sidebar, then the + button, then Skills.) To add your own, click "+ Create skill," then "Upload a skill," and upload a zip of the folder. It shows up in your skills list with a toggle to turn it on or off. One prerequisite: "Code execution and file creation" needs to be turned on in Settings first, and this whole feature sits behind a paid plan (Pro and up). Anthropic's own documentation isn't fully consistent on that point, so I'd rather flag it than promise it works on the free tier.

Claude Code. No upload step at all, it's filesystem-based. Drop a folder containing SKILL.md into ~/.claude/skills/<skill-name>/ for something you want available everywhere, or .claude/skills/<skill-name>/ inside a specific project if it's scoped to that codebase. Claude Code loads just the name and description of every skill it finds at session start; run /skills any time to see the current list. You can also pull in a whole published set as a plugin, for example Anthropic's own skills repo: /plugin marketplace add anthropics/skills then /plugin install document-skills@anthropic-agent-skills.

For the gtmskills.com library, the install command is a single line: npx skills add swan-gtm/gtm-skills --skill <skill-name> -a claude-code. That drops the skill straight into .claude/skills/, same folder your own hand-built skills live in, indistinguishable once installed. One gotcha worth knowing before you hit it yourself: the -g flag on that installer puts the skill in ~/.agents/skills/ instead, which Claude Code doesn't read from by default. If an installed skill isn't showing up, that's the first thing to check.

Use

Once a skill is installed, it gets invoked one of two ways, and the two are worth telling apart.

A slash command. Type /<skill-name> and it runs, on purpose, no ambiguity. In our own repo that looks like /deploy-site to push a client site live, or /linkedin-post to draft a post. Straightforward.

Claude noticing a match. This is the more interesting one. Every skill's description field lists the phrases and situations it's for, and Claude checks what you typed against every installed skill's description before answering. If something matches, it invokes the skill without being asked by name.

Three real examples from our own skill folder, description and trigger side by side:

Our no-ai-slop skill's description reads: "Edit drafts into sharper, more human writing while preserving the writer's personal voice, or detect AI-slop patterns without rewriting. Use when the user wants a draft clearer, more direct, more opinionated, or less AI-sounding, or asks whether writing reads as AI." Type "make this less AI-sounding" into a session with that skill installed, no slash command, and it fires on its own.

Our deploy-site skill's description is: "Deploy or update a client site in this monorepo on the Hetzner host... Use when deploying/updating a site, adding a domain, or standing up a server." Say "deploy the new site" and Claude reaches for the actual runbook inside that skill (checking the server list, connecting over Tailscale, pulling secrets) rather than guessing at deploy steps from scratch.

Our weekly-ad-audit skill triggers on "audit the ads," "check ad performance this week," or "run the weekly ad audit." It's pinned to a specific, real ad account and campaign ID, so the phrase alone gets you a grounded audit against the right account instead of a generic one.

The description field is doing the real work in both cases. Write it well, describing the actual situations someone would type into the box, and the skill fires when it should. Write it vague, and it either never fires or fires on things it shouldn't.

Who this is for

If you run an agency and some piece of your week is the same motion every time, chasing the same kind of file, writing the same kind of message, checking the same kind of number, that's exactly the shape of problem a skill is built to hold. This is the same thing we do for clients: find the repetitive motion, match it to the tool (sometimes a skill, sometimes something else entirely), and make sure it actually runs the same way every time instead of depending on someone remembering the steps.

If you've read this far and you're already running Claude for parts of your work, the honest next step is to try installing one. Pick the smallest recurring task on your plate this week and see if a skill already exists for it before you write one.

Let’s find the delivery margin you’re leaving on the table.

Book your free intro call. Thirty minutes to walk me through your ops and find out where the margin is leaking.