mirror of
https://github.com/mintlify/docs.git
synced 2026-09-14 13:35:46 +08:00
63a61fe1ef
* Update installation.mdx Co-Authored-By: mintlify[bot] <109931778+mintlify[bot]@users.noreply.github.com> * Update installation.mdx Co-Authored-By: mintlify[bot] <109931778+mintlify[bot]@users.noreply.github.com> --------- Co-authored-by: mintlify[bot] <109931778+mintlify[bot]@users.noreply.github.com>
302 lines
10 KiB
Plaintext
302 lines
10 KiB
Plaintext
---
|
|
title: "Install the CLI"
|
|
description: "Use the CLI to preview docs locally, test changes in real-time, and catch issues before deploying your documentation site."
|
|
keywords: ["CLI", "npm", "local development", "Node.js"]
|
|
---
|
|
|
|
<img
|
|
className="block dark:hidden my-0 pointer-events-none"
|
|
src="/images/installation/local-development-light.png"
|
|
alt="Decorative graphic representing the CLI."
|
|
/>
|
|
<img
|
|
className="hidden dark:block my-0 pointer-events-none"
|
|
src="/images/installation/local-development-dark.png"
|
|
alt="Decorative graphic representing the CLI."
|
|
/>
|
|
|
|
Use the [CLI](https://www.npmjs.com/package/mint) to preview your documentation locally as you write and edit. View changes in real-time before deploying, test your documentation site's appearance and functionality, and catch issues like broken links or accessibility problems.
|
|
|
|
The CLI also has utilities for maintaining your documentation, including commands to rename files, validate OpenAPI specifications, and migrate content between formats.
|
|
|
|
## Prerequisites
|
|
|
|
- [Node.js](https://nodejs.org/en) v20.17.0+ (LTS versions recommended) installed
|
|
- [Git](https://git-scm.com/downloads) installed
|
|
- Your documentation repository cloned locally
|
|
|
|
### Clone your repository
|
|
|
|
<Steps>
|
|
<Step title="Locate your repository">
|
|
1. Go to the [Git settings](https://dashboard.mintlify.com/settings/deployment/git-settings) page of your dashboard.
|
|
2. Note your repository location. It is one of these formats:
|
|
- `mintlify-community/docs-{org-name}-{id}` (Mintlify-hosted repository)
|
|
- `your-org/your-repo` (your own GitHub repository)
|
|
</Step>
|
|
|
|
<Step title="Clone your repository">
|
|
<Tabs>
|
|
<Tab title="Your own repository">
|
|
Replace `your-org/your-repo` with your actual repository details from [Git settings](https://dashboard.mintlify.com/settings/deployment/git-settings).
|
|
|
|
```bash
|
|
git clone https://github.com/your-org/your-repo
|
|
cd your-repo
|
|
```
|
|
|
|
<Tip>
|
|
**GitHub App required.** To enable automatic deployments when you push changes, you must install the GitHub app. See [GitHub](/deploy/github) for more information.
|
|
</Tip>
|
|
|
|
</Tab>
|
|
<Tab title="Mintlify-hosted repository">
|
|
You can clone your repository as a private or public repository. Public repositories are visible to anyone who navigates to the repository URL. Private repositories are only visible to people in your organization.
|
|
|
|
On the [Git settings](https://dashboard.mintlify.com/settings/deployment/git-settings) page of your dashboard, select **Clone as private** or **Clone as public**.
|
|
</Tab>
|
|
</Tabs>
|
|
</Step>
|
|
</Steps>
|
|
|
|
## Install the CLI
|
|
|
|
Run the following command to install the CLI:
|
|
|
|
<CodeGroup>
|
|
```bash npm
|
|
npm i -g mint
|
|
```
|
|
|
|
```bash pnpm
|
|
pnpm add -g mint
|
|
```
|
|
</CodeGroup>
|
|
|
|
## Preview locally
|
|
|
|
Navigate to your documentation directory containing your `docs.json` file and run:
|
|
|
|
```bash
|
|
mint dev
|
|
```
|
|
|
|
A local preview of your documentation is available at `http://localhost:3000`.
|
|
|
|
Alternatively, if you do not want to install the CLI globally, you can run a one-time script:
|
|
|
|
```bash
|
|
npx mint dev
|
|
```
|
|
|
|
### Custom ports
|
|
|
|
By default, the CLI uses port 3000. You can customize the port using the `--port` flag. To run the CLI on port 3333, for instance, use this command:
|
|
|
|
```bash
|
|
mint dev --port 3333
|
|
```
|
|
|
|
If you attempt to run on a port that is already in use, the CLI uses the next available port:
|
|
|
|
```mdx
|
|
Port 3000 is already in use. Trying 3001 instead.
|
|
```
|
|
|
|
## Skip OpenAPI processing
|
|
|
|
If you have many OpenAPI files, skip OpenAPI file processing during local development to improve performance by using the `--disable-openapi` flag:
|
|
|
|
```bash
|
|
mint dev --disable-openapi
|
|
```
|
|
|
|
### Preview as a specific group
|
|
|
|
If you use group-based access control to restrict access to your documentation, you can preview as a specific authentication group by using the `--groups [groupname]` flag.
|
|
|
|
For example, if you have a group named `admin`, you can preview as a member of that group with the command:
|
|
|
|
```bash
|
|
mint dev --groups admin
|
|
```
|
|
|
|
## Create a new project
|
|
|
|
To create a new documentation project, run the following command:
|
|
|
|
```bash
|
|
mint new [directory]
|
|
```
|
|
|
|
This command clones the [starter kit](https://github.com/mintlify/starter) into a specified directory. If you do not specify a directory, the CLI tool prompts you to create a new subdirectory or overwrite the current directory.
|
|
|
|
<Warning>
|
|
Overwriting the current directory deletes any existing files.
|
|
</Warning>
|
|
|
|
The CLI tool prompts you for a project name and [theme](/customize/themes) to finish setting up your project.
|
|
|
|
### Flags
|
|
|
|
| Flag | Description | Required |
|
|
| --- | --- | --- |
|
|
| `--name` | Set the name of the new project. | Yes |
|
|
| `--theme` | Set the [theme](/customize/themes) of the new project. | Yes |
|
|
| `--force` | Overwrite the current directory without prompting, even if it contains existing files. | No |
|
|
|
|
When running `mint new` in non-interactive environments like CI/CD pipelines or with AI coding agents, you must provide all required flags (`--name` and `--theme`).
|
|
|
|
<Tip>
|
|
The CLI automatically detects non-interactive environments. If required flags are missing, it outputs usage instructions instead of hanging on prompts.
|
|
</Tip>
|
|
|
|
## Update the CLI
|
|
|
|
If your local preview is out of sync with what you see on the web in the production version, update your local CLI:
|
|
|
|
```bash
|
|
mint update
|
|
```
|
|
|
|
If this `mint update` command is not available on your local version, re-install the CLI with the latest version:
|
|
|
|
<CodeGroup>
|
|
```bash npm
|
|
npm i -g mint@latest
|
|
```
|
|
|
|
```bash pnpm
|
|
pnpm add -g mint@latest
|
|
```
|
|
</CodeGroup>
|
|
|
|
## Additional commands
|
|
|
|
### Find broken links
|
|
|
|
Identify any broken internal links with the following command:
|
|
|
|
```bash
|
|
mint broken-links
|
|
```
|
|
|
|
The command ignores files matching [.mintignore](/organize/mintignore) patterns. Links that point to ignored files are reported as broken.
|
|
|
|
### Find accessibility issues
|
|
|
|
Test the color contrast ratios and search for missing alt text on images and videos in your documentation with the following command:
|
|
|
|
```bash
|
|
mint a11y
|
|
```
|
|
|
|
Use flags to check for specific accessibility issues.
|
|
|
|
```bash
|
|
# Check only for missing alt text
|
|
mint a11y --skip-contrast
|
|
|
|
# Check only for color contrast issues
|
|
mint a11y --skip-alt-text
|
|
```
|
|
|
|
### Validate documentation build
|
|
|
|
Validate your documentation build in strict mode, which exits with an error if there are any warnings or errors. Use this command for CI/CD pipelines to prevent broken documentation deployments.
|
|
|
|
```bash
|
|
mint validate
|
|
```
|
|
|
|
Use flags to configure the validation command.
|
|
|
|
- `--groups [groupname]`: Mock user groups for validation (useful when testing group-based access control)
|
|
- `--disable-openapi`: Disable OpenAPI file generation during validation
|
|
|
|
### Check OpenAPI spec
|
|
|
|
Check your OpenAPI file for errors with the following command:
|
|
|
|
```bash
|
|
mint openapi-check <OpenAPI filename or URL>
|
|
```
|
|
|
|
Pass a filename (for example, `./openapi.yaml`) or a URL (for example, `https://petstore3.swagger.io/api/v3/openapi.json`).
|
|
|
|
### Rename files
|
|
|
|
Rename and update all references to files with the following command:
|
|
|
|
```bash
|
|
mint rename <path/to/old-filename> <path/to/new-filename>
|
|
```
|
|
|
|
### Migrate MDX endpoint pages
|
|
|
|
Migrate MDX endpoint pages to autogenerated pages from your OpenAPI specification with the following command:
|
|
|
|
```bash
|
|
mint migrate-mdx
|
|
```
|
|
|
|
This command converts individual MDX endpoint pages to autogenerated pages defined in your `docs.json`, moves MDX content to the `x-mint` extension in your OpenAPI specification, and updates your navigation. See [Migrating from MDX](/guides/migrating-from-mdx) for detailed information.
|
|
|
|
## Formatting
|
|
|
|
While developing locally, we recommend using extensions in your IDE to recognize and format MDX files.
|
|
|
|
If you use Cursor, Windsurf, or VS Code, we recommend the [MDX VS Code extension](https://marketplace.visualstudio.com/items?itemName=unifiedjs.vscode-mdx) for syntax highlighting, and [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) for code formatting.
|
|
|
|
If you use JetBrains, we recommend the [MDX IntelliJ IDEA plugin](https://plugins.jetbrains.com/plugin/14944-mdx) for syntax highlighting, and setting up [Prettier](https://prettier.io/docs/webstorm) for code formatting.
|
|
|
|
## Troubleshooting
|
|
|
|
<AccordionGroup>
|
|
<Accordion title='Error: Could not load the "sharp" module using the darwin-arm64 runtime'>
|
|
This may be due to an outdated version of node. Try the following:
|
|
|
|
1. Remove the currently-installed version of the mint CLI: `npm uninstall -g mint`
|
|
2. Upgrade to Node.js.
|
|
3. Reinstall the mint CLI: `npm install -g mint`
|
|
</Accordion>
|
|
<Accordion title="Issue: Encountering an unknown error">
|
|
**Solution**: Go to the root of your device and delete the `~/.mintlify` folder. Afterwards, run `mint dev` again.
|
|
</Accordion>
|
|
<Accordion title="Error: permission denied">
|
|
This is due to not having the required permissions to globally install node packages.
|
|
|
|
**Solution**: Try running `sudo npm i -g mint`. You will be prompted for your password, which is the one you use to unlock your computer.
|
|
</Accordion>
|
|
<Accordion title="The local preview doesn't look the same as my docs do on the web">
|
|
This is likely due to an outdated version of the CLI.
|
|
|
|
**Solution:** Run `mint update` to get the latest changes.
|
|
</Accordion>
|
|
<Accordion title="mintlify vs. mint package">
|
|
If you have any problems with the CLI package, you should first run `npm ls -g`. This command shows what packages are globally installed on your machine.
|
|
|
|
If you don't use npm or don't see it in the -g list, try `which mint` to locate the installation.
|
|
|
|
If you have a package named `mint` and a package named `mintlify` installed, you should uninstall `mintlify`.
|
|
|
|
1. Uninstall the old package:
|
|
```bash
|
|
npm uninstall -g mintlify
|
|
```
|
|
2. Clear your npm cache:
|
|
```bash
|
|
npm cache clean --force
|
|
```
|
|
3. Reinstall the new package:
|
|
```bash
|
|
npm i -g mint
|
|
```
|
|
</Accordion>
|
|
<Accordion title="Client version shows 'none' after installation">
|
|
If you run `mint version` and the client version displays as `none`, the CLI may be unable to download the client application due to a corporate firewall or VPN blocking the download.
|
|
|
|
**Solution:** Ask your IT administrator to whitelist `releases.mintlify.com` to enable local development with the CLI.
|
|
</Accordion>
|
|
</AccordionGroup>
|