Agent skill

Fumadocs

by compozy in compozy/compozy

Set up, customize, or troubleshoot Fumadocs Core/MDX/UI: adapters, loaders, navigation/layouts, search, MDX components, OpenAPI, OG images, exports, and i18n.

MITAuto-check passedFrontend & Design

Install Fumadocs

skills CLI
$ npx skills add compozy/compozy --skill fumadocs -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install compozy/compozy fumadocs --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
fumadocs
GitHub stars
2.8k
Token cost
~2.4k tokens
SKILL.md length
1,055 words
Files
11 (incl. references, assets)
Skills in repo
47
Repo updated
First seen
Licence
MIT

At a glance

Set up, customize, or troubleshoot Fumadocs Core/MDX/UI: adapters, loaders, navigation/layouts, search, MDX components, OpenAPI, OG images, exports, and i18n.

  • Works in 5 steps: package.json — confirm fumadocs-core,… → source.config.ts (Fumadocs MDX) or… → The catch-all docs route — Next:… → …
  • Tasks that involve Markdown
  • SKILL.md covers Procedures and Error Handling
  • Runs TypeScript scripts from its folder; calls npx

What it does

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.

When your agent uses it

  • Tasks that involve Markdown
  • Tasks that involve Internationalization
  • Tasks that involve Social media graphics

Example prompts

  • “/fumadocs”

Requirements

  • Node.js

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. package.json — confirm fumadocs-core, fumadocs-mdx, fumadocs-ui versions and which adapter is installed (next, @react-router/…
  2. source.config.ts (Fumadocs MDX) or lib/source.ts (low-level loader()) — determines whether the project uses the bundler-backed MDX path or…
  3. The catch-all docs route — Next: app//[[...slug]]/page.tsx; React Router: routes/docs/$.tsx or route('docs/*', ...); TanStack Start…
  4. The root layout / provider import path — fumadocs-ui/provider/{next,react-router,tanstack,waku} MUST match the framework.
  5. Tailwind entry — confirm Tailwind 4, the colour preset (fumadocs-ui/css/.css) and fumadocs-ui/css/preset.css imports.

What it can do on your machine

Read from SKILL.md and the folder at commit eec2ed1. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships script files (TypeScript), which the agent can run.

    Shell commands in SKILL.md call:

    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    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.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~62
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~21k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from compozy/compozy at commit eec2ed1, republished under its MIT licence (© compozy). 1,055 words, ~2,422 tokens.

Download SKILL.mdSave it as .claude/skills/fumadocs/SKILL.md (or your agent's skills folder). This skill also uses 10 other files; get the full folder from GitHub.
name
fumadocs
description
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.

Fumadocs

Fumadocs is a docs framework for React: it sits inside Next.js / React Router / TanStack Start / Waku and combines three independently usable packages.

PackageRoleSkip when
fumadocs-coreHeadless engine: loader(), page tree, MDX plugins, search adapters, i18n primitivesnever (always required)
fumadocs-mdxContent source: compiles content/**/*.mdx + meta.json into typed .source/ collectionsreplaced by @fumadocs/local-md, @fumadocs/mdx-remote, or a custom source
fumadocs-uiOpinionated 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.

Procedures

Step 1: Identify the task class

Map the user's request to one of these classes, then load the matching reference:

ClassTrigger phrasesReference
Bootstrap a project"scaffold", "set up Fumadocs", "install in <framework>", "create-fumadocs-app"references/01-install-and-setup.md
Routing / file conventionsmeta.json, pages directives, slug rules, root folders, page treereferences/02-source-and-page-tree.md
MDX configurationsource.config.ts, defineDocs, defineCollections, async / dynamic mode, plugin order, typegenreferences/03-mdx-pipeline.md
UI layouts / components / MDX wiringDocsLayout/Notebook/Flux/Home, RootProvider, mdx-components.tsx, theming, MDX overridesreferences/04-ui-layouts-and-components.md
Search / i18nadapter selection, search dialog, locale routing, middlewarereferences/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/RSSreferences/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):

  1. package.json — confirm fumadocs-core, fumadocs-mdx, fumadocs-ui versions and which adapter is installed (next, @react-router/..., @tanstack/react-start, waku).
  2. 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).
  3. The catch-all docs route — Next: app/<segment>/[[...slug]]/page.tsx; React Router: routes/docs/$.tsx or route('docs/*', ...); TanStack Start: routes/docs/$.tsx; Waku: pages/docs/[...slugs].tsx.
  4. The root layout / provider import path — fumadocs-ui/provider/{next,react-router,tanstack,waku} MUST match the framework.
  5. Tailwind entry — confirm Tailwind 4, the colour preset (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:

MDX entry mode (Fumadocs MDX → collections/{server,browser,dynamic})
ChooseWhen
serverRSC / SSR / SSG (default, fastest first paint)
browserClient-routed apps (TanStack Start, React Router SPA mode) — only doc / docs collections
dynamicVery large libraries (>500 MDX) where build time / memory dominates
direct importOne-off MDX as a page or React component (no loader() indirection)
Content source
ChooseWhen
Fumadocs MDX (default)Bundler-backed, typegen, image optimization, full MDX import/export
@fumadocs/local-mdRuntime-only, Cloudflare Workers compat, no eval, no bundler step
@fumadocs/mdx-remoteRuntime compile from CMS / remote content (trusted input only)
custom (StaticSource / DynamicSource)Hardcoded trees, generated content, multi-tenant per-permission sources
Search adapter
ChooseWhen
orama (default)Self-hosted, free, typed schema, vector capable
flexsearchTiny / medium docs, zero infra, smaller bundle than Orama
algoliaEnterprise scale, polished relevance (free tier requires logo)
orama-cloudHosted Orama, scale without ops
mixedbreadSemantic / vector / natural-language queries
typesenseOSS scale + faceting (community adapter)
trieveRAG / hybrid retrieval (community-maintained)
customHand-roll a /static.json route from source.getPages().structuredData
Show full SKILL.md (534 more words)Show less
Layout
ChooseWhen
fumadocs-ui/layouts/docsClassic docs site with persistent sidebar
fumadocs-ui/layouts/notebookDenser, app-shell feel; supports top-tab navigation
fumadocs-ui/layouts/fluxAggressively minimal (client-only — no unserialisable RSC props)
fumadocs-ui/layouts/homeMarketing / 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):

  1. Read assets/source-config-template.ts for the defineDocs + defineCollections + defineConfig shape, schema extension via pageSchema / metaSchema, and the recommended tsconfig alias collections/* → .source/*.
  2. Read assets/source-template.ts for the loader({ source, baseUrl, url, slugs, icon, i18n, plugins }) shape and the typical lib/source.ts exports.
  3. Read 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:

  1. Trigger source generation via the project's existing dev script (Fumadocs MDX writes .source/ on dev/build; otherwise run npx fumadocs-mdx).
  2. Run the framework's typecheck — .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.
  3. Render the affected route(s) — sidebar items match meta.json.pages, breadcrumbs/TOC populate, search dialog opens with ⌘K. Layout-level breakage is silent until rendered.
  4. If i18n is configured, check the locale variants: 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:

  1. Tailwind v3 silently breaks the theme — only Tailwind v4 + fumadocs-ui/css/preset.css is supported.
  2. 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.
  3. Layout/page import mismatch — Notebook/Flux require DocsPage from layouts/<layout>/page; defaulting to layouts/docs/page produces broken TOC/footer.
  4. Duplicated URLs in the page tree — Fumadocs locates the active node by pathname only; any duplicate corrupts active-link detection.
  5. Provider subpath mismatch — fumadocs-ui/provider/<framework> must match the adapter or RootProvider silently no-ops (search, theme switch, i18n all stop working).

Error Handling

  • The user mentions a feature that isn't visible in package.json. Ask which adapter they're on before generating code; never assume Next.js because the docs default to it.
  • The framework adapter is older than Fumadocs 16. Earlier majors used different provider paths and Tailwind 3 — verify the version and read 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 export is required. Confirm whether search needs to be 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.
  • OpenAPI is requested. 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

Files

SKILL.md and 10 other files (references, assets) in .agents/skills/fumadocs of compozy/compozy.

  • SKILL.md
  • assets/mdx-components-template.tsx
  • assets/source-config-template.ts
  • assets/source-template.ts
  • references/01-install-and-setup.md
  • references/02-source-and-page-tree.md
  • references/03-mdx-pipeline.md
  • references/04-ui-layouts-and-components.md
  • references/05-search-and-i18n.md
  • references/06-integrations.md
  • references/07-pitfalls.md

Open the folder on GitHubat commit eec2ed1

Compare with similar skills

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.

Fumadocs compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Fumadocs this skillcompozy/compozy2.8k—~2.4kAutomated safety check: PassMIT
Vue Componentsscalar/scalar16k—~886Automated safety check: PassMIT
Scalar Design Systemscalar/scalar16k—~2.7kAutomated safety check: PassMIT
Building With Lobe UIlobehub/lobe-ui2.2k—~2kAutomated safety check: PassMIT
Frontend Conventionsiflytek/skillhub5.2k—~1kAutomated safety check: PassApache-2.0
Fantasia Markdown Dialogsvishiri/fantasia-archive409—~387Automated safety check: PassGPL-3.0

Similar skills

  • Vue Components

    scalar/scalar

    Build Vue 3 components with TypeScript and Tailwind using clean structure, composable logic, accessibility, and maintainable patterns.

    16k GitHub stars~886 tokensUpdated today
    Frontend & DesignAuto-check passed
  • Scalar's design system — design tokens, theming (@scalar/themes), CSS variables, and the @scalar/components library.

    16k GitHub stars~2.7k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Building With Lobe UI

    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…

    2.2k GitHub stars~2k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Frontend Conventions

    iflytek/skillhub

    Coding conventions, architecture patterns, and testing rules for the SkillHub React frontend.

    5.2k GitHub stars~1k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Fantasia Markdown Dialogs

    vishiri/fantasia-archive

    Implements or edits markdown-backed dialogs using Quasar QMarkdown and i18n- sourced document strings.

    409 GitHub stars~387 tokensUpdated today
    Frontend & DesignAuto-check passed
  • Docs I18n Translate

    Comfy-Org/docs

    Translate ComfyUI Mintlify docs from English MDX to ja/zh/ko using translate-i18n.ts.

    299 GitHub stars~3.2k tokensUpdated today
    Frontend & DesignAuto-check: notes

More from compozy/compozy

All 47 skills in this repo
  • Eng Real Scenario QA

    compozy/compozy

    Dogfoods Compozy through an autonomous startup scenario with live providers, cross-surface observation, and strict evidence audit.

    2.8k GitHub stars~3.4k tokensUpdated today
    Auto-check passed
  • Eng Test Conventions

    compozy/compozy

    Go test-shape discipline for Compozy. An agent skill from compozy/compozy.

    2.8k GitHub stars~467 tokensUpdated today
    Auto-check passed
  • Assistant UI

    compozy/compozy

    Guide for assistant-ui library - AI chat UI components. An agent skill from compozy/compozy.

    2.8k GitHub stars~958 tokensUpdated today
    Auto-check passed
  • Guide for assistant-ui UI primitives - ThreadPrimitive, ComposerPrimitive, MessagePrimitive.

    2.8k GitHub stars~999 tokensUpdated today
    Auto-check passed
  • Assistant UI Runtime

    compozy/compozy

    Guide for assistant-ui runtime system and state management. An agent skill from compozy/compozy.

    2.8k GitHub stars~856 tokensUpdated today
    Auto-check passed
  • Assistant UI Streaming

    compozy/compozy

    Guide for assistant-stream package and streaming protocols. An agent skill from compozy/compozy.

    2.8k GitHub stars~813 tokensUpdated today
    Auto-check passed

Works with

Questions about Fumadocs

What does Fumadocs do?

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.

When should I use Fumadocs?

Fumadocs fits situations like: tasks that involve Markdown; tasks that involve Internationalization; tasks that involve Social media graphics.

How do I install Fumadocs in Claude Code?

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.

How do I install Fumadocs in Codex?

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.

Can I use Fumadocs in Cursor, Gemini CLI or GitHub Copilot?

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.

What does Fumadocs need to run?

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.

Does Fumadocs access the network?

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.

Is Fumadocs safe to install?

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.

What licence does Fumadocs use?

Fumadocs is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Fumadocs use?

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.

What are the alternatives to Fumadocs?

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.

Who maintains Fumadocs?

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.