The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Catalog MCP listing page.
Skills that make Claude Code more capable. Install one with a single command.
Browse the live catalog at skillsandagents.co · Built and maintained by Skills and Agents Co
Each skill adds a specific capability to Claude: check your business cashflow, see where your brand shows up in ChatGPT, fix your Ghost site's Google indexing, walk through filing an unemployment claim. One install, and Claude instantly knows how to do the job.
This repo is the source of truth for every skill we publish. Each is MIT-licensed, version-tagged, and ready to drop into Claude Code, Claude Desktop, or any Anthropic-compatible runtime that loads SKILL.md files.
Add the marketplace once, then install any plugin from it:
Swap financial-pulse for any plugin listed in .claude-plugin/marketplace.json. financial-pulse connects to Mercury, Ramp, and Grasshopper for a cashflow pulse. product-builder bundles code review, PR summaries, research briefs, competitor intel, and document drafting.
| I want to… | Use | Type |
|---|---|---|
| Fix my Ghost blog's Google indexing automatically (Search Console → diagnose → fix → resubmit) | ghost-seo-agent/ | agent |
| See where my brand shows up in ChatGPT, Perplexity, and Claude — and what to write to close the gap | llm-visibility-agent/ | agent |
| Get a weekly cashflow pulse across Mercury, Ramp, and Grasshopper | financial-pulse/ | skill + 3 agents |
| Run buy-side due diligence on a private company before you buy it (QoE, red-flag matrix, valuation impact) | buy-side-diligence/ | skill |
| Chat with my ad and analytics data and get ranked optimization moves across Google Ads, Meta, TikTok, LinkedIn, GA4, and Stripe | ads-copilot/ | skill |
| Strip the AI tells from my Office docs before they ship — pipe separators, em dashes, default colors, Sheet1 names, and other machine-generated giveaways in .pptx/.docx/.xlsx | office-tells/ | skill |
| Actually understand the code Claude just wrote — a teaching loop that quizzes you on the problem, solution, design decisions, and edge cases until you've demonstrably got it | learn-quiz/ | skill |
| Turn a meeting transcript into structured meeting memory — a dated meeting note, one mention line per person/company you track, and a recap email drafted (never sent) | meeting-scribe/ | skill |
| Prep for an upcoming meeting — read your calendar export, match attendees and companies against the people/companies you track, and get a dated brief with their full mention history before you walk in | calendar-agent/ | skill |
| Get a news pulse on the people and companies you track — filtered against your own tracked entities, not a generic feed, with a dated digest naming what was found or plainly saying nothing was | news-monitor/ | skill |
| Turn your meeting notes into content ideas — find the ideas that keep recurring across more than one meeting and draft a short, quote-grounded post for each one | librarian/ | skill |
| Log an email thread's deal-flow or portfolio update against the people and companies you track — one dated log entry, one mention line per entity named, never a sent or drafted reply | email-agent/ | skill |
| Get a weekly fantasy football brief — start/sit calls, waiver pickups with a FAAB bid, trade advice, and dynasty push-or-rebuild checks for ESPN, Sleeper, or Yahoo leagues, through the Flaim connector | fantasy-football-weekly/ | skill |
unemployment-guide/ | skill |
More skills land here regularly. Star or watch this repo or follow the catalog to catch new releases.
Every skill installs the same way: download one pinned tarball, extract the skill's whole folder into ~/.claude/skills/, then restart Claude Code. Extracting the folder, not just SKILL.md, is what brings along the scripts/ and references/ files a skill's own instructions actually run.
The block runs in a subshell (the parens) so skill, ref, and the other variables it sets do not leak into your shell, and set -e inside it means a failed download or a bad skill name stops the install instead of leaving a half-populated directory that looks successful. It downloads and unpacks into a scratch directory first and only touches ~/.claude/skills/ once the extraction has succeeded, so a failed install leaves nothing behind: no empty skill folder for Claude Code to find, and no stray tarball. Re-running it replaces the install rather than merging into it, so a file dropped from a later release does not survive as a stale leftover.
What to put in skill. For almost every entry it is the folder name shown in the table above (resume-tailor, ceo-todo, and so on) — which is also the slug. It is not the slug for the four agents that ship inside another skill's folder: ceo-todo-daily installs as skill="ceo-todo", and financial-pulse-grasshopper, financial-pulse-mercury, and financial-pulse-ramp all install as skill="financial-pulse". Installing one of those pulls in the whole parent skill (including its other agents), which is expected — the agent file itself is the payload you actually run.
Installing an agent takes one more step. Claude Code loads subagents from ~/.claude/agents/, not from inside a skill folder, so the four agent entries above need their markdown copied out after the install block runs. Otherwise the file is on disk and the agent still does not register:
The fastest path is skillsandagents.co — every skill's catalog page will generate this exact pinned command for you, copy-paste ready, once the catalog site adopts the manifest this repo now publishes. Until then it still generates the older single-file command, so the command above is the one to use by hand in the meantime.
Two skills nest their
SKILL.mdone level deeper:ads-copilotandfinancial-pulse. The command above still extracts their whole folder correctly, butSKILL.mdlands at$dest/skills/<skill-name>/SKILL.mdinstead of at the top, where Claude Code looks for it. Run this once more, right after the block above, for those two:
references/andscripts/are already siblings of the movedSKILL.md, which is where its own text expects them. Every other skill in this repo is flat and needs no extra step.
These skills are also installable through skills.sh, the open skills registry. Install the whole catalog at once:
Or pull a single skill by its slug:
Available skills and their slugs:
learn-quiz (make Claude teach you the work until you actually understand it)ghost-seo-agent (diagnose and fix Ghost Google indexing)office-tells (strip the AI tells from .pptx/.docx/.xlsx)buy-side-diligence (run buy-side due diligence on a private company)llm-visibility-agent (see where your brand shows up across ChatGPT, Perplexity, and Claude)financial-pulse (weekly cashflow pulse across Mercury, Ramp, and Grasshopper)ads-copilot (chat with your ad and analytics data for ranked optimization moves)meeting-scribe (turn a meeting transcript into structured meeting memory, inspired by USV)calendar-agent (prep briefs for upcoming meetings against your tracked people/companies, inspired by USV)news-monitor (news digests on your tracked people/companies filtered against your own entity files, inspired by USV)librarian (recurring themes from your meeting notes drafted into short posts, inspired by USV)email-agent (log an email thread's deal-flow or portfolio update against your tracked people/companies, inspired by USV)The full catalog, with per-skill pages and pinned install commands, lives at skillsandagents.co. Skills surface on skills.sh automatically through install telemetry, so there is no registration step on our end.
Every skill in this repo solves a problem we actually had running our own companies — then we generalized it so anyone can use it.
We pin every install URL to a tagged release (never main), so the skill you install today behaves the same way next month.
This repo doubles as a working reference for how we package skills:
SKILL.md with rich YAML frontmatter — name, description, and trigger phrases that Claude actually matches againstreferences/, agents/, scripts/v1.0.0, v1.1.0, etc. — with a generated index.json the catalog consumesA skill that ships both standalone and bundled inside a plugin (e.g. local-lead-prospector and its plugin copy plugins/eta-searcher) can end up with the same supporting file committed twice. For requirements.txt, exactly one copy is human-edited — the top-level skill's — and every plugin-nested copy is generated from it via scripts/plugin-file-map.json. After editing a canonical requirements.txt, run node scripts/generate-plugin-files.mjs and commit the regenerated copy alongside your change. CI's scripts/check-plugin-files-fresh.mjs step fails the build if a plugin-nested copy has drifted from its source, so a forgotten regeneration cannot merge silently.
Cutting a release:
The index is committed before the tag is placed, not after. Tagging first would leave the tag's own tarball carrying the previous release's index.json, so the manifest a user downloads would never describe the download it came in.
A release commit does not go through a pull request. It is the one commit in this repo that pushes straight to
main, with the tag created and pushed in the same motion. The reason is mechanical, not stylistic: a release commit bumpsindex.jsonand theref="…"line above to a tag that does not exist yet, andscripts/check-index-additive.mjsandscripts/test-install.shboth resolve that ref. Opened as a PR, the release commit is red by construction, and there is no green state to merge — the ref only becomes resolvable once the tag is pushed, which happens after the merge. So: land the content changes through PRs as usual, then cut the release as a direct push. Nothing else in this repo is allowed to bypass review this way.
version in frontmatter for any changed SKILL.md. This is normal PR work, reviewed like anything else, and it lands before the release commit.main, rebuild the index for the tag you are about to cut: node scripts/build-index.mjs --tag v1.x.0 --worktree. --worktree is required here and only here — the tag does not exist yet, so there is no ref to read content from, and the working tree is what is about to become that tag.ref="v1.x.0" line in the install block above to the new tag. scripts/check-index-additive.mjs fails the build if the README's ref and index.json's ref disagree, so this is not optional and CI will say so.index.json and the README together, directly on main.git tag v1.x.0 && git push --atomic origin main v1.x.0. --atomic is what makes this one command: either the commit and the tag both land or neither does. Without it, a partial push leaves main briefly pinned to a ref nobody can resolve, which is exactly the red state this step exists to avoid.node scripts/check-index-additive.mjs, bash scripts/test-install.sh, and bash scripts/test-readme-install.sh against the pushed tag. Running them between steps 2 and 5 is expected to fail and tells you nothing.Because the tag lands on the commit that already holds the matching index.json, the tag-push build checks the tag against its own manifest rather than against the last release's, and re-running node scripts/build-index.mjs --tag v1.x.0 afterwards reproduces the committed file byte for byte.
On a normal pull request none of this bites. A PR does not touch the pinned ref, so the ref index.json names is the last release's tag, which resolves fine, and every check runs for real. The only PR that would go red by construction is one that bumps the ref — and that is precisely the commit the note above says not to open as a PR.
index.json describes the tagged release, not your checkout: build-index.mjs --tag v1.x.0 reads the repo's contents at that tag, and scripts/test-install.sh verifies the published files manifest against that same tag's tarball. That is why a pull request adding a file inside a skill folder does not need to regenerate index.json — the new file joins the manifest at the next release, and until then both checks are looking at the same snapshot. If the tag is not in your clone the build fails rather than quietly reading your working tree instead; run git fetch --tags, or pass --worktree when reading the working tree is what you actually want.
MIT — see LICENSE. Individual skill folders may carry their own license file if imported from a separately-licensed source.
Questions, bug reports, or skill ideas? Open an issue or PR. We read every one.