Vue Components
scalar/scalar
Build Vue 3 components with TypeScript and Tailwind using clean structure, composable logic, accessibility, and maintainable patterns.
Set up, customize, or troubleshoot Fumadocs Core/MDX/UI: adapters, loaders, navigation/layouts, search, MDX components, OpenAPI, OG images, exports, and i18n.
$ npx skills add compozy/compozy --skill fumadocs -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install compozy/compozy fumadocs --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/compozy/compozy.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/fumadocs .claude/skills/fumadocs && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "fumadocs" agent skill from https://github.com/compozy/compozy/tree/main/.agents/skills/fumadocs into .claude/skills/fumadocs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fumadocs", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/compozy/compozy/tree/main/.agents/skills/fumadocsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add compozy/compozy --skill fumadocs -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install compozy/compozy fumadocs --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/compozy/compozy.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/fumadocs .agents/skills/fumadocs && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "fumadocs" agent skill from https://github.com/compozy/compozy/tree/main/.agents/skills/fumadocs into .agents/skills/fumadocs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fumadocs", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add compozy/compozy --skill fumadocs -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install compozy/compozy fumadocs --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/compozy/compozy.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/fumadocs .cursor/skills/fumadocs && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "fumadocs" agent skill from https://github.com/compozy/compozy/tree/main/.agents/skills/fumadocs into .cursor/skills/fumadocs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fumadocs", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/compozy/compozy.git --path .agents/skills/fumadocs--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add compozy/compozy --skill fumadocs -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install compozy/compozy fumadocs --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/compozy/compozy.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/fumadocs .gemini/skills/fumadocs && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "fumadocs" agent skill from https://github.com/compozy/compozy/tree/main/.agents/skills/fumadocs into .gemini/skills/fumadocs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fumadocs", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install compozy/compozy fumadocsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add compozy/compozy --skill fumadocs -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/compozy/compozy.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/fumadocs .github/skills/fumadocs && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "fumadocs" agent skill from https://github.com/compozy/compozy/tree/main/.agents/skills/fumadocs into .github/skills/fumadocs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fumadocs", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add compozy/compozy --skill fumadocs -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install compozy/compozy fumadocs --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/compozy/compozy.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/fumadocs .opencode/skills/fumadocs && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "fumadocs" agent skill from https://github.com/compozy/compozy/tree/main/.agents/skills/fumadocs into .opencode/skills/fumadocs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fumadocs", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
fumadocsSet up, customize, or troubleshoot Fumadocs Core/MDX/UI: adapters, loaders, navigation/layouts, search, MDX components, OpenAPI, OG images, exports, and i18n.
Fumadocs is an agent skill from compozy/compozy. Set up, customize, or troubleshoot Fumadocs Core/MDX/UI: adapters, loaders, navigation/layouts, search, MDX components, OpenAPI, OG images, exports, and i18n. Excludes generic Markdown, unrelated framework setup, and non-Fumadocs projects.
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 12 other files, including reference files and assets (for example `assets/source-config-template.ts`, `assets/source-template.ts` and `references/01-install-and-setup.md`).
It sits in Frontend & Design, covering Markdown, Internationalization and Social media graphics. It works with OpenAPI. The repository describes itself as: An operating system for AI agents. Plug in the agent CLIs you already use (Claude Code, Codex, Gemini CLI, Cursor) and they become a team: they split the work, hand tasks to each… The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit eec2ed1. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (TypeScript), which the agent can run.
Shell commands in SKILL.md call:
npxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Fumadocs loads about 2.4k tokens when it runs, and up to ~21k if it reads all its reference files. Until then it costs about 62 tokens; SKILL.md has 1,055 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from compozy/compozy at commit eec2ed1, republished under its MIT licence (© compozy). 1,055 words, ~2,422 tokens.
.claude/skills/fumadocs/SKILL.md (or your agent's skills folder). This skill also uses 10 other files; get the full folder from GitHub.Fumadocs is a docs framework for React: it sits inside Next.js / React Router / TanStack Start / Waku and combines three independently usable packages.
| Package | Role | Skip when |
|---|---|---|
fumadocs-core | Headless engine: loader(), page tree, MDX plugins, search adapters, i18n primitives | never (always required) |
fumadocs-mdx | Content source: compiles content/**/*.mdx + meta.json into typed .source/ collections | replaced by @fumadocs/local-md, @fumadocs/mdx-remote, or a custom source |
fumadocs-ui | Opinionated theme: RootProvider, layouts, MDX defaults, search dialog (Tailwind v4) | building a fully bespoke UI on top of fumadocs-core |
Server-first via React Server Components. Static export is opt-in. Edge runtime is unsupported.
Step 1: Identify the task class
Map the user's request to one of these classes, then load the matching reference:
| Class | Trigger phrases | Reference |
|---|---|---|
| Bootstrap a project | "scaffold", "set up Fumadocs", "install in <framework>", "create-fumadocs-app" | references/01-install-and-setup.md |
| Routing / file conventions | meta.json, pages directives, slug rules, root folders, page tree | references/02-source-and-page-tree.md |
| MDX configuration | source.config.ts, defineDocs, defineCollections, async / dynamic mode, plugin order, typegen | references/03-mdx-pipeline.md |
| UI layouts / components / MDX wiring | DocsLayout/Notebook/Flux/Home, RootProvider, mdx-components.tsx, theming, MDX overrides | references/04-ui-layouts-and-components.md |
| Search / i18n | adapter selection, search dialog, locale routing, middleware | references/05-search-and-i18n.md |
| OpenAPI / OG / AI / content sources / guides | <APIPage>, generateFiles, OG image route, llms.txt, Ask AI, local-md, mdx-remote, PDF/EPUB/RSS | references/06-integrations.md |
| Debugging an existing setup | "broken", "blank sidebar", "404", "build fails", "weird hydration" | references/07-pitfalls.md |
If the task spans multiple classes, load the references in the order shown above (setup → tree → MDX → UI → search/i18n → integrations).
Step 2: Confirm the package surface in use
Before recommending code, check which Fumadocs surface the project actually uses. Read these files (paths are conventional, not absolute):
package.json — confirm fumadocs-core, fumadocs-mdx, fumadocs-ui versions and which adapter is installed (next, @react-router/..., @tanstack/react-start, waku).source.config.ts (Fumadocs MDX) or lib/source.ts (low-level loader()) — determines whether the project uses the bundler-backed MDX path or a runtime source (local-md, mdx-remote, custom).app/<segment>/[[...slug]]/page.tsx; React Router: routes/docs/$.tsx or route('docs/*', ...); TanStack Start: routes/docs/$.tsx; Waku: pages/docs/[...slugs].tsx.fumadocs-ui/provider/{next,react-router,tanstack,waku} MUST match the framework.fumadocs-ui/css/<theme>.css) and fumadocs-ui/css/preset.css imports.If any of these contradicts the user's request, surface the conflict before editing.
Step 3: Choose adapters and modes deterministically
Use these decision tables instead of guessing:
collections/{server,browser,dynamic})| Choose | When |
|---|---|
server | RSC / SSR / SSG (default, fastest first paint) |
browser | Client-routed apps (TanStack Start, React Router SPA mode) — only doc / docs collections |
dynamic | Very large libraries (>500 MDX) where build time / memory dominates |
direct import | One-off MDX as a page or React component (no loader() indirection) |
| Choose | When |
|---|---|
| Fumadocs MDX (default) | Bundler-backed, typegen, image optimization, full MDX import/export |
@fumadocs/local-md | Runtime-only, Cloudflare Workers compat, no eval, no bundler step |
@fumadocs/mdx-remote | Runtime compile from CMS / remote content (trusted input only) |
custom (StaticSource / DynamicSource) | Hardcoded trees, generated content, multi-tenant per-permission sources |
| Choose | When |
|---|---|
orama (default) | Self-hosted, free, typed schema, vector capable |
flexsearch | Tiny / medium docs, zero infra, smaller bundle than Orama |
algolia | Enterprise scale, polished relevance (free tier requires logo) |
orama-cloud | Hosted Orama, scale without ops |
mixedbread | Semantic / vector / natural-language queries |
typesense | OSS scale + faceting (community adapter) |
trieve | RAG / hybrid retrieval (community-maintained) |
| custom | Hand-roll a /static.json route from source.getPages().structuredData |
| Choose | When |
|---|---|
fumadocs-ui/layouts/docs | Classic docs site with persistent sidebar |
fumadocs-ui/layouts/notebook | Denser, app-shell feel; supports top-tab navigation |
fumadocs-ui/layouts/flux | Aggressively minimal (client-only — no unserialisable RSC props) |
fumadocs-ui/layouts/home | Marketing / landing pages that share docs chrome |
When the layout changes, the per-doc page import must follow (fumadocs-ui/layouts/<layout>/page → DocsPage, DocsTitle, DocsBody).
Step 4: Wire source.config.ts, loader(), and mdx-components.tsx
These three files form the spine of any Fumadocs setup. Use the canonical templates (read first, then adapt):
assets/source-config-template.ts for the defineDocs + defineCollections + defineConfig shape, schema extension via pageSchema / metaSchema, and the recommended tsconfig alias collections/* → .source/*.assets/source-template.ts for the loader({ source, baseUrl, url, slugs, icon, i18n, plugins }) shape and the typical lib/source.ts exports.assets/mdx-components-template.tsx for the getMDXComponents pattern, the pre ref-strip workaround, and createRelativeLink(source, page) wiring.If the project already has these files, prefer surgical edits over rewrites — collection-level mdxOptions wipes globals, so use applyMdxPreset(...) to keep the docs preset.
Step 5: Validate before claiming done
For any change that touches MDX content, source config, page conventions, or layouts:
.source/ on dev/build; otherwise run npx fumadocs-mdx)..source/index.d.ts must compile cleanly. A .source/ not regenerated is the most common cause of "module not found" or "property does not exist" errors.meta.json.pages, breadcrumbs/TOC populate, search dialog opens with ⌘K. Layout-level breakage is silent until rendered.defaultLanguage and at least one non-default. hideLocale: 'always' cookies break static caches — surface this if applicable.Step 6: Use the pitfall catalog before debugging
When the user reports a bug, read references/07-pitfalls.md first — most failures are catalogued. The five most common:
fumadocs-ui/css/preset.css is supported.next.config.js (CJS) won't load fumadocs-mdx — the loader is ESM only; rename to next.config.mjs or enable Native Node TS resolver.DocsPage from layouts/<layout>/page; defaulting to layouts/docs/page produces broken TOC/footer.pathname only; any duplicate corrupts active-link detection.fumadocs-ui/provider/<framework> must match the adapter or RootProvider silently no-ops (search, theme switch, i18n all stop working).package.json. Ask which adapter they're on before generating code; never assume Next.js because the docs default to it.references/07-pitfalls.md for migration notes before editing.source.config.ts and a runtime source (local-md / mdx-remote) coexist. Two competing loaders is not a supported state — read references/06-integrations.md#content-sources and pick one before changing code.static (Orama static, FlexSearch static, or hosted/cloud) — server-fetch search will not work statically. See references/05-search-and-i18n.md#static-export..source/ does not exist or is stale. Trigger source generation before any typecheck; missing entries cause cryptic "module not found" / "is not exported" errors.openapiSource() mutates page.type to 'openapi' — every consumer (getLLMText, page renderer, search index, OG image, RSS) must branch on it. Read references/06-integrations.md#openapi before wiring.© compozy, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 10 other files (references, assets) in .agents/skills/fumadocs of compozy/compozy.
Open the folder on GitHubat commit eec2ed1
Fumadocs next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Fumadocs this skillcompozy/compozy | 2.8k | — | ~2.4k | Automated safety check: Pass | MIT | |
| Vue Componentsscalar/scalar | 16k | — | ~886 | Automated safety check: Pass | MIT | |
| Scalar Design Systemscalar/scalar | 16k | — | ~2.7k | Automated safety check: Pass | MIT | |
| Building With Lobe UIlobehub/lobe-ui | 2.2k | — | ~2k | Automated safety check: Pass | MIT | |
| Frontend Conventionsiflytek/skillhub | 5.2k | — | ~1k | Automated safety check: Pass | Apache-2.0 | |
| Fantasia Markdown Dialogsvishiri/fantasia-archive | 409 | — | ~387 | Automated safety check: Pass | GPL-3.0 |
scalar/scalar
Build Vue 3 components with TypeScript and Tailwind using clean structure, composable logic, accessibility, and maintainable patterns.
scalar/scalar
Scalar's design system — design tokens, theming (@scalar/themes), CSS variables, and the @scalar/components library.
lobehub/lobe-ui
Build UI with the LobeHub design ecosystem — @lobehub/ui (plus its base-ui, chat, mobile, awesome, brand, mdx, i18n namespaces), @lobehub/icons, @lobehub/charts, @lobehub/fluent-emoji and…
iflytek/skillhub
Coding conventions, architecture patterns, and testing rules for the SkillHub React frontend.
vishiri/fantasia-archive
Implements or edits markdown-backed dialogs using Quasar QMarkdown and i18n- sourced document strings.
Comfy-Org/docs
Translate ComfyUI Mintlify docs from English MDX to ja/zh/ko using translate-i18n.ts.
compozy/compozy
Dogfoods Compozy through an autonomous startup scenario with live providers, cross-surface observation, and strict evidence audit.
compozy/compozy
Go test-shape discipline for Compozy. An agent skill from compozy/compozy.
compozy/compozy
Guide for assistant-ui library - AI chat UI components. An agent skill from compozy/compozy.
compozy/compozy
Guide for assistant-ui UI primitives - ThreadPrimitive, ComposerPrimitive, MessagePrimitive.
compozy/compozy
Guide for assistant-ui runtime system and state management. An agent skill from compozy/compozy.
compozy/compozy
Guide for assistant-stream package and streaming protocols. An agent skill from compozy/compozy.
Works with
Set up, customize, or troubleshoot Fumadocs Core/MDX/UI: adapters, loaders, navigation/layouts, search, MDX components, OpenAPI, OG images, exports, and i18n. Fumadocs is an agent skill from compozy/compozy. Set up, customize, or troubleshoot Fumadocs Core/MDX/UI: adapters, loaders, navigation/layouts, search, MDX components, OpenAPI, OG images, exports, and i18n.
Fumadocs fits situations like: tasks that involve Markdown; tasks that involve Internationalization; tasks that involve Social media graphics.
Run `npx skills add compozy/compozy --skill fumadocs -a claude-code`. Or copy the skill folder (.agents/skills/fumadocs in compozy/compozy) into .claude/skills/fumadocs in your project. Claude Code loads it when a task matches its description.
Run `npx skills add compozy/compozy --skill fumadocs -a codex`. Or copy the skill folder (.agents/skills/fumadocs in compozy/compozy) into .agents/skills/fumadocs in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add compozy/compozy --skill fumadocs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fumadocs, .gemini/skills/fumadocs, .github/skills/fumadocs and .opencode/skills/fumadocs in your project.
Going by SKILL.md and its folder, Fumadocs needs TypeScript for the scripts in its folder and the command-line tools its instructions call (npx). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Fumadocs is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 18k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Fumadocs: Vue Components (scalar/scalar, 16k stars), Scalar Design System (scalar/scalar, 16k stars), Building With Lobe UI (lobehub/lobe-ui, 2.2k stars) and Frontend Conventions (iflytek/skillhub, 5.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
compozy (a GitHub organization) maintains it in compozy/compozy, which has 2,792 GitHub stars. The repository holds 47 skills in this directory. The repository was last updated on October 8, 2026.
Source: compozy/compozy on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.