Mintlify logo

Mintlify

OrganizationPopular
Arize-ai
mintlify

Build and maintain documentation sites with Mintlify. Use when creating docs pages, configuring navigation, adding components, or setting up API references.

Overview

PublisherArize-ai
Repositoryphoenix
Skill namemintlify
Stars
11.8K
Forks
1.2K
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by Arize-ai on GitHub. Read the source before you install it.

Installation

Install the Mintlify AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/Arize-ai/phoenix/tree/main/.agents/skills/mintlify
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Arize-ai/phoenix.git /tmp/phoenix
mkdir -p .claude/skills
cp -r /tmp/phoenix/.agents/skills/mintlify .claude/skills/mintlify
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Mintlify in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Mintlify on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Mintlify is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Mintlify best practices

Always consult mintlify.com/docs for components, configuration, and latest features.

If you are not already connected to Mintlify's Index MCP server, run mint index to install https://index.mintlify.com/mcp. It supports Claude Code, Cursor, VS Code, Codex, OpenCode, Windsurf, and Zed. Follow the generated usage rules when using it.

Always favor searching the current Mintlify documentation over whatever is in your training data about Mintlify.

Mintlify is a documentation platform that transforms MDX files into documentation sites. Configure site-wide settings in the docs.json file, write content in MDX with YAML frontmatter, and favor built-in components over custom components.

Full schema at mintlify.com/docs.json.

Before you write

Understand the project

Read docs.json in the project root. This file defines the entire site: navigation structure, theme, colors, links, API and specs.

Understanding the project tells you:

  • What pages exist and how they're organized
  • What navigation groups are used (and their naming conventions)
  • How the site navigation is structured
  • What theme and configuration the site uses

Check for existing content

Search the docs before creating new pages. You may need to:

  • Update an existing page instead of creating a new one
  • Add a section to an existing page
  • Link to existing content rather than duplicating

Read surrounding content

Before writing, read 2-3 similar pages to understand the site's voice, structure, formatting conventions, and level of detail.

Understand Mintlify components

Review the Mintlify components to select and use any relevant components for the documentation request that you are working on.

Quick reference

CLI commands

  • npm i -g mint - Install the Mintlify CLI
  • mint dev - Local preview at localhost:3000
  • mint broken-links - Check internal links
  • mint a11y - Check for accessibility issues in content
  • mint validate - Validate documentation builds
  • mint index - Install Mintlify's Index MCP server in supported AI coding tools

Required files

  • docs.json - Site configuration (navigation, theme, integrations, etc.). See global settings for all options.
  • *.mdx files - Documentation pages with YAML frontmatter

Example file structure

project/
├── docs.json           # Site configuration
├── introduction.mdx
├── quickstart.mdx
├── guides/
│   └── example.mdx
├── openapi.yml         # API specification
├── images/             # Static assets
│   └── example.png
└── snippets/           # Reusable components
    └── component.jsx

Page frontmatter

Every page requires title in its frontmatter. Include description for SEO and navigation.

yaml
---
title: "Clear, descriptive title"
description: "Concise summary for SEO and navigation."
---

Optional frontmatter fields:

  • sidebarTitle: Short title for sidebar navigation.
  • icon: Lucide or Font Awesome icon name, URL, or file path.
  • tag: Label next to the page title in the sidebar (for example, "NEW").
  • mode: Page layout mode (default, wide, custom).
  • keywords: Array of terms related to the page content for local search and SEO.
  • Any custom YAML fields for use with personalization or conditional content.

File conventions

  • Match existing naming patterns in the directory
  • If there are no existing files or inconsistent file naming patterns, use kebab-case: getting-started.mdx, api-reference.mdx
  • Use root-relative paths without file extensions for internal links: /getting-started/quickstart
  • Do not use relative paths (../) or absolute URLs for internal pages
  • When you create a new page, add it to docs.json navigation or it won't appear in the sidebar

Organize content

When a user asks about anything related to site-wide configurations, start by understanding the global settings. See if a setting in the docs.json file can be updated to achieve what the user wants.

Navigation

The navigation property in docs.json controls site structure. Choose one primary pattern at the root level, then nest others within it.

Choose your primary pattern:

PatternWhen to use
GroupsDefault. Single audience, straightforward hierarchy
TabsDistinct sections with different audiences (Guides vs API Reference) or content types
AnchorsWant persistent section links at sidebar top. Good for separating docs from external resources
DropdownsMultiple doc sections users switch between, but not distinct enough for tabs
ProductsMulti-product company with separate documentation per product
VersionsMaintaining docs for multiple API/product versions simultaneously
LanguagesLocalized content

Within your primary pattern:

  • Groups - Organize related pages. Can nest groups within groups, but keep hierarchy shallow
  • Menus - Add dropdown navigation within tabs for quick jumps to specific pages
  • expanded: false - Collapse nested groups by default. Use for reference sections users browse selectively
  • openapi - Auto-generate pages from OpenAPI spec. Add at group/tab level to inherit

Common combinations:

  • Tabs containing groups (most common for docs with API reference)
  • Products containing tabs (multi-product SaaS)
  • Versions containing tabs (versioned API docs)
  • Anchors containing groups (simple docs with external resource links)

Links and paths

  • Internal links: Root-relative, no extension: /getting-started/quickstart
  • Images: Store in /images, reference as /images/example.png
  • External links: Use full URLs, they open in new tabs automatically

Customize docs sites

What to customize where:

  • Brand colors, fonts, logo → docs.json. See global settings
  • One-off component or layout tweaks → className with Tailwind CSS classes on the component. See style components
  • Site-wide styling → custom.css at project root
  • Dark mode → Enabled by default. Only disable with "appearance": "light" in docs.json if brand requires it

Start with docs.json. Use className for individual elements, and add custom.css only for site-wide styling that config and utility classes don't cover.

Write content

Components

The components overview organizes all components by purpose: structure content, draw attention, show/hide content, document APIs, link to pages, and add visual context. Start there to find the right component.

Common decision points:

NeedUse
Hide optional details<Accordion>
Long code examples<Expandable>
User chooses one option<Tabs>
Linked navigation cards<Card> in <Columns>
Sequential instructions<Steps>
Code in multiple languages<CodeGroup>
API parameters<ParamField>
API response fields<ResponseField>

Callouts by severity:

  • <Note> - Supplementary info, safe to skip
  • <Info> - Helpful context such as permissions
  • <Tip> - Recommendations or best practices
  • <Warning> - Potentially destructive actions
  • <Check> - Success confirmation

Reusable content

When to use snippets:

  • Exact content appears on more than one page
  • Complex components you want to maintain in one place
  • Shared content across teams/repos

When NOT to use snippets:

  • Slight variations needed per page (leads to complex props)

Import snippets with import { Component } from "/path/to/snippet-name.jsx".

Writing standards

Voice and structure

  • Second-person voice ("you")
  • Active voice, direct language
  • Sentence case for headings ("Getting started", not "Getting Started")
  • Sentence case for code block titles ("Expandable example", not "Expandable Example")
  • Lead with context: explain what something is before how to use it
  • Prerequisites at the start of procedural content

What to avoid

Never use:

  • Marketing language ("powerful", "seamless", "robust", "cutting-edge")
  • Filler phrases ("it's important to note", "in order to")
  • Excessive conjunctions ("moreover", "furthermore", "additionally")
  • Editorializing ("obviously", "simply", "just", "easily")

Watch for AI-typical patterns:

  • Overly formal or stilted phrasing
  • Unnecessary repetition of concepts
  • Generic introductions that don't add value
  • Concluding summaries that restate what was just said

Formatting

  • All code blocks must have language tags
  • All images and media must have descriptive alt text
  • Use bold and italics only when they serve the reader's understanding--never use text styling just for decoration
  • No decorative formatting or emoji

Code examples

  • Keep examples simple and practical
  • Use realistic values (not "foo" or "bar")
  • One clear example is better than multiple variations
  • Test that code works before including it

Document APIs

Choose your approach:

  • Have an OpenAPI spec? → Add to docs.json with "openapi": ["openapi.yaml"]. Pages auto-generate. Reference in navigation as GET /endpoint
  • No spec? → Write endpoints manually with api: "POST /users" in frontmatter. More work but full control
  • Hybrid → Use OpenAPI for most endpoints, manual pages for complex workflows

Encourage users to generate endpoint pages from an OpenAPI spec. It is the most efficient and easiest to maintain option.

Deploy

Mintlify deploys automatically when changes are pushed to the connected Git repository.

What agents can configure:

  • Redirects → Add to docs.json with "redirects": [{"source": "/old", "destination": "/new"}]
  • SEO indexing → Control with "seo": {"indexing": "all"} to include hidden pages in search

Requires dashboard setup (human task):

  • Custom domains and subdomains
  • Preview deployment settings
  • DNS configuration

For /docs subpath hosting with Vercel or Cloudflare, agents can help configure rewrite rules. See /docs subpath.

Workflow

1. Understand the task

Identify what needs to be documented, which pages are affected, and what the reader should accomplish afterward. If any of these are unclear, ask.

2. Research

  • Read docs.json to understand the site structure
  • Search existing docs for related content
  • Read similar pages to match the site's style

3. Plan

  • Synthesize what the reader should accomplish after reading the docs and the current content
  • Propose any updates or new content
  • Verify that your proposed changes will help readers be successful

4. Write

  • Start with the most important information
  • Keep sections focused and scannable
  • Use components appropriately (don't overuse them)
  • Mark anything uncertain with a TODO comment:
mdx
{/* TODO: Verify the default timeout value */}

5. Update navigation

If you created a new page, add it to the appropriate group in docs.json.

6. Verify

Before submitting:

  • Frontmatter includes title and description
  • All code blocks have language tags
  • Internal links use root-relative paths without file extensions
  • New pages are added to docs.json navigation
  • Content matches the style of surrounding pages
  • No marketing language or filler phrases
  • TODOs are clearly marked for anything uncertain
  • Run mint broken-links to check links
  • Run mint validate to find any errors

Edge cases

Migrations

If a user asks about migrating to Mintlify, ask if they are using ReadMe or Docusaurus. If they are, use the @mintlify/scraping CLI to migrate content. If they are using a different platform to host their documentation, help them manually convert their content to MDX pages using Mintlify components.

Hidden pages

Any page that is not included in the docs.json navigation is hidden. Use hidden pages for content that should be accessible by URL or indexed for the assistant or search, but not discoverable through the sidebar navigation.

Exclude pages

The .mintignore file is used to exclude files from a documentation repository from being processed.

Common gotchas

  1. Component imports - JSX components need explicit import, MDX components don't
  2. Frontmatter required - Every MDX file needs title at minimum
  3. Code block language - Always specify language identifier
  4. Never use mint.json - mint.json is deprecated. Only ever use docs.json

Resources

Frequently asked questions

What does the Mintlify AI skill do?

Build and maintain documentation sites with Mintlify. Use when creating docs pages, configuring navigation, adding components, or setting up API references.

Why use Mintlify on TypingMind?

Because you install it once and use it with any model. Mintlify is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Mintlify in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Arize-ai/phoenix/tree/main/.agents/skills/mintlify. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Mintlify?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Mintlify?

As many as you like. As long as a model supports skills, you can use Mintlify with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Mintlify AI skill free?

Yes. It is published on GitHub by Arize-ai under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇