antfu/skills: Anthony Fu's Curated Agent Skills for the Vite and Nuxt Stack
Anthony Fu's curated collection of agent skills.
At a glance
- What is it?
- A proof-of-concept collection that generates agent skills from upstream documentation and keeps them in sync through git submodules. It is aimed at developers who live in Vite, Vue, Nuxt and pnpm, and it comes with the author's own warning that the skills have not been fully tested in practice.
- Who is it for?
- Adopt this collection if your daily work is Vite, Vue, Nuxt, Vitest, UnoCSS or pnpm and you want a maintained-by-someone-else starting point for agent skills. Skip it if you expect a general-purpose skill library or a polished product with releases: there are no retrieved releases, the README calls the project a proof of concept, and the author states he has not fully tested how the skills perform.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The problem: agent context is written by hand and drifts
Most teams that give an agent project context write a single markdown file and paste in whatever the framework docs said last quarter. That file goes stale the moment the upstream project changes a config key or renames a plugin. antfu/skills attacks that drift differently: the README says the collection uses git submodules to directly reference source documentation, which, in its words, provides more reliable context and allows the skills to stay up-to-date with upstream changes over time.
The audience is narrow and explicit. The README states the collection aims to be a one-stop collection if you are mainly working on Vite or Nuxt. The skill list confirms it: vue, nuxt, pinia, vite, vitepress, vitest, unocss, pnpm, plus vendored entries for slidev, tsdown, turborepo, vueuse-functions and several Vue best-practice skills. If your stack is React and Go, this repository has nothing for you.
How the repository is organized: hand-written, generated and vendored skills
The README splits skills into three tiers, and the split matters because each tier has a different maintenance story.
Hand-maintained skills are the opinionated ones. The antfu skill covers Anthony Fu's preferences and best practices for app and library projects (eslint, pnpm, vitest, vue and similar), and antfu-design covers UnoCSS-centered design principles, semantic tokens and UI presentation patterns.
Generated skills are described as unopinionated but with tilted focus, meaning TypeScript, ESM, the Composition API and other modern stacks. Each one is generated from official documentation and fine-tuned by the author. The README maps every generated skill to its upstream source: vue from vuejs/docs, nuxt from nuxt/nuxt, pinia from vuejs/pinia, vite from vitejs/vite, vitepress from vuejs/vitepress, vitest from vitest-dev/vitest, unocss from unocss/unocss, pnpm from pnpm/pnpm.io.
Vendored skills are synced from external repositories that maintain their own skills. Some are marked official, including slidev from slidevjs/slidev, tsdown from rolldown/tsdown, turborepo from vercel/turborepo and vueuse-functions from vueuse/skills. The vue-best-practices, vue-router-best-practices and vue-testing-best-practices entries come from vuejs-ai/skills, and web-design-guidelines comes from vercel-labs/agent-skills.
The top-level layout matches that description: skills/ holds the output, sources/ and vendor/ hold upstream material, meta.ts is the manifest the README tells you to edit, and scripts/ plus AGENTS.md drive generation.
Installing antfu/skills and running a first skill
The README gives two install commands, both through the skills CLI that it links to at vercel-labs/skills. The first installs into the current project:
pnpx skills add antfu/skills --skill='*'The second adds the -g flag to install all of them globally:
pnpx skills add antfu/skills --skill='*' -gThe --skill='*' argument selects every skill in the collection; the README does not document a narrower selection syntax beyond that wildcard, so if you want only the vite skill you will need to check the CLI's own documentation rather than this repository's README.
If you would rather build your own collection from this repository as a template, the README lays out a seven-step sequence. After forking or cloning, install dependencies with pnpm install and edit meta.ts with your own projects and skill sources. Then reset and rebuild:
pnpm start cleanup
pnpm start init
pnpm start syncThe README describes these as removing existing submodules and skills, cloning the submodules, and syncing vendored skills, in that order. The package.json confirms the entry point: the start script runs node scripts/cli.ts. The final step is not a command but an instruction: ask your agent to Generate skills for <project>, and the README recommends doing this one project at a time to manage token usage. AGENTS.md holds the detailed generation guidelines.
The failure mode the README admits: agents that do not pull the skill in
The most useful paragraph in the README is the comparison between skills and AGENTS.md, and it is unusually candid. The author writes that you might hear people say AGENTS.md outperforms skills, and agrees: AGENTS.md loads everything upfront, so agents always respect it, whereas skills can have false negatives where agents do not pull them in when you would expect.
That is the real limitation. A skill that is installed but never retrieved is inert. The README frames this as a gap in tooling and integration that will improve over time, and offers a workaround rather than a fix: if you want certain skills to always apply, reference them directly in your AGENTS.md. The repository itself contains an AGENTS.md, which is where the generation guidelines live, so the file is doing double duty here.
The second admission is at the top of the README. The project is labeled a proof of concept for generating agent skills from source documentation and keeping them in sync, and the author states he has not fully tested how well the skills perform in practice. Treat the generated skills as a starting draft, not a validated artifact.
How this differs from writing your own AGENTS.md
The obvious alternative is a hand-written AGENTS.md or a single context file per project. The difference is not quality, it is update mechanics. An AGENTS.md is a snapshot you maintain; when Vite changes its config surface, nothing tells you. This collection instead points at upstream repositories through git submodules, so a sync can pull the current documentation rather than a paraphrase of it.
A second alternative is pulling skills from the upstream projects directly. VueUse and Turborepo already publish their own skills, according to the source column in the README, and this repository vendors those rather than rewriting them. That means for those entries the value added here is bundling, not authorship. Where this collection does add something is the hand-maintained antfu and antfu-design skills, which encode one person's tooling preferences and cannot be sourced from an upstream docs repository at all.
The trade-off is coupling. Submodules make the sync story work, but they also mean the repository depends on the availability and structure of a dozen external repositories, and a change upstream can break a sync without any code in this repository changing.
Maintenance, licensing and what to check before adopting
The repository is not archived, and the last push was on 2026-06-23. There are no retrieved releases, so there is no version number to pin and no changelog to read; updates arrive as commits to main.
The licence is MIT for the skills and the scripts in this repository, per the README. Vendored skills are the exception: the README states that vendored skills from external repositories retain their original licences and points to each skill directory for details. That is the part to check with your own legal process, because a collection that mixes MIT content with vendored material from eight or more upstream repositories does not carry one uniform licence, and the README does not enumerate what those upstream licences are.
The upgrade cost is mostly the submodule workflow. Because the sync depends on git submodules, a routine update is not a package version bump; it is the pnpm start cleanup, init and sync sequence, or the equivalent git submodule update --init --recursive that package.json runs in its prepare script. Budget for that if you fork the repository and expect it to track upstream.
Using it as a template rather than a dependency
The README is explicit that the project is designed to be flexible and that you can use it as a template to generate your own skills collection. For a team whose stack overlaps only partially with the author's, that is the more defensible way to use it. You inherit the generation pipeline, the submodule sync and the AGENTS.md guidelines, and you replace meta.ts with your own project list.
The cost of that route is that you now own the pipeline. The scripts are TypeScript run through node scripts/cli.ts, linted with @antfu/eslint-config, and there is a pre-commit hook running pnpm lint-staged over the JavaScript and TypeScript files. None of that is exotic, but it is code you will maintain yourself once you fork, and the README does not describe a supported upgrade path for forked collections.
Editorial conclusion
Adopt this collection if your daily work is Vite, Vue, Nuxt, Vitest, UnoCSS or pnpm and you want a maintained-by-someone-else starting point for agent skills. Skip it if you expect a general-purpose skill library or a polished product with releases: there are no retrieved releases, the README calls the project a proof of concept, and the author states he has not fully tested how the skills perform. Before wiring it into a workflow, clone the repository, read meta.ts to see which upstream projects and sources the skills are generated from, and read AGENTS.md to understand the generation rules. Then run pnpm install and check whether the git submodules under sources/ resolve, since the sync model depends on them.
Frequently asked questions
How do I install antfu/skills?
The README gives pnpx skills add antfu/skills --skill='*' for a project-level install, and the same command with -g appended to install all of them globally. The CLI itself is documented at vercel-labs/skills.
How do I use antfu/skills in Claude Code or another agent?
The README does not document per-agent setup. It describes skills as a standardized format, plain markdown files that agents consume, and notes that if you want certain skills to always apply you can reference them directly in your AGENTS.md.
What makes antfu/skills different from other skill collections?
The README says the key difference is that it uses git submodules to directly reference source documentation, which it argues provides more reliable context and lets skills stay up-to-date with upstream changes. It also describes itself as opinionated and focused on Vite, Vue and Nuxt work.
How do I install antfu/skills in Claude?
The README documents one install path, the skills CLI, with pnpx skills add antfu/skills --skill='*' for a project install or the same command with -g for a global install. It does not describe a Claude-specific installation step.
How do I use antfu/skills with Codex?
The README does not mention Codex. It describes skills as a standardized markdown format for agents to consume and points to the skills CLI for installation, so any agent support comes from that format rather than from repository-specific instructions.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/antfu-skills)