π¦ Welcome! This repository contains the documentation build pipeline for LangChain projects.
- π
docs.langchain.com
is our docs home, centralizing LangChain, LangGraph, LangGraph Platform, LangSmith, and LangChain Labs (Deep Agents, Open SWE, Open Agent Platform). This site is hosted on Mintlify. - π οΈ
reference.langchain.com
is home to the API reference docs for LangChain, LangGraph, LangGraph Platform, and LangChain integration packages (e.g.langchain-anthropic
,langchain-openai
). These are static sites built from the source code and deployed to Vercel.
Important
- The LangSmith API and SDK references are not yet consolidated to this repo. Visit their documentation:
# --- docs.langchain.com ----------------------------------------------
build/ # Built docs (do not edit)
pipeline/ # Build pipeline source code
scripts/ # Helper scripts
src/ # Source documentation files (edit these)
labs/ # LangChain Labs docs
langgraph-platform/ # LangGraph Platform docs
langsmith/ # LangSmith docs
oss/ # LangChain, LangGraph, and integrations docs
docs.json # Mintlify site configuration
tests/ # Test files for the pipeline
Makefile # Build targets
pyproject.toml # Dependencies
# --- reference.langchain.com -----------------------------------------
reference/ # Reference docs build pipelines
dist/ # Build docs (do not edit)
javascript/ # JS/TS reference build pipeline
python/ # Python reference build pipeline and source
package.json # Vercel commands and dependencies
vercel.json # Vercel configuration/redirects
The Mintlify docs pipeline is structured with .mdx
source files in /src
and build artifacts in /build
. Mintlify deploys from the /build
folder, which is generated by preprocessing logic - never edit /build
directly.
Documentation changes follow a PR workflow where all tests must pass before merging. Publishing is handled by the publish workflow (requires authorization), and preview branches are available for sharing work-in-progress changes with others. See steps below on how to preview locally and begin contributing.
Each language has its own build pipeline in /reference/<language>
. Reference docs are built with a combination of automated docstring extraction and manually written content. Refer to the README.md
in each folder for details on how to build and contribute.
Built files are stored in /reference/dist/{LANGUAGE}
, which is then deployed to Vercel. The build process is triggered automatically on pushes to main
and can also be triggered manually via the Vercel dashboard.
The following steps refer to the docs.langchain.com
Mintlify documentation site. For contributing to the reference docs, see the README.md
files in /reference/python
and /reference/javascript
.
-
Clone this repo. Ensure the steps in IDE_SETUP.md are followed to configure your IDE/editor to automatically apply the correct settings.
-
Install
uv
from https://docs.astral.sh/uv/ (if not already installed) -
Install
npm
from https://nodejs.org/en/download/ (if not already installed) -
Create and activate a virtual environment:
cd docs uv venv source .venv/bin/activate
-
Install dependencies:
uv sync --all-groups
npm i -g mint
After install, you'll have access to the docs
command:
docs --help
Common commands:
docs dev
- Start development mode with file watching and hot reloaddocs build
- Build documentationdocs migrate <path>
- Convert MkDocs markdown files to Mintlify formatdocs migrate-docusaurus <path>
- Convert Docusaurus markdown files to Mintlify format
- Only edit files in
src/
- Thebuild/
directory is automatically generated - Use Mintlify syntax - See Mintlify documentation for formatting guidelines
- Test your changes - Use
docs dev
to preview changes locally with hot reload - Use safe Mintlify commands - Use
make mint-broken-links
instead ofmint broken-links
to check final built documentation
make dev
- Start development mode with file watching and live rebuildmake build
- Build documentation to./build
directorymake mint-broken-links
- Check for broken links in built documentation (excludes integrations)make mint-broken-links-all
- Check for broken links in built documentation (includes all directories)make build-references
- Build reference docsmake preview-references
- Preview reference docs using vercelmake install
- Install all dependenciesmake clean
- Remove build artifactsmake test
- Run the test suitemake lint
- Check code style and formattingmake format
- Auto-format codemake lint_md
- Lint markdown filesmake lint_md_fix
- Lint and fix markdown filesmake help
- Show all available commands
The docs
command (installed as uv run docs
) provides additional functionality:
-
docs migrate <path>
- Convert MkDocs markdown/notebook files to Mintlify format--dry-run
- Preview changes without writing files--output <path>
- Specify output location (default: in-place)- Supports
.md
,.markdown
,.ipynb
files
-
docs migrate-docusaurus <path>
- Convert Docusaurus markdown/notebook files to Mintlify format--dry-run
- Preview changes without writing files--output <path>
- Specify output location (default: in-place)- Supports
.md
,.markdown
,.mdx
,.ipynb
files - Converts Docusaurus-specific syntax (admonitions, tabs, imports, etc.)
-
docs mv <old_path> <new_path>
- Move files and update cross-references--dry-run
- Preview changes without moving files
These can be used directly using the Makefile
or via the docs
CLI tool:
-
docs dev
- Start development mode with file watching and hot reload- Automatically rebuilds changed files from
src/
tobuild/
- Launches Mintlify dev server at http://localhost:3000
- Provides automatic browser refresh when files change
--skip-build
- Skip initial build and use existing build directory
- Automatically rebuilds changed files from
-
docs build
- Build documentation files--watch
- Watch for file changes after building
- Markdown files (
.md
,.mdx
) - Standard documentation content - Jupyter notebooks (
.ipynb
) - Converted to markdown during build, though these are not recommended for new content! - Assets - Images and other files are copied to the build directory
This project uses Mintlify for documentation generation. Key features:
- Frontmatter - YAML metadata at the top of files
- Components - Special Mintlify components for enhanced formatting
- Code blocks - Syntax highlighting and copy functionality
- Navigation - Automatic sidebar generation from file structure
- Code language fences (only used in
/oss
) - Custom code language fences for Python and Javascript (:::python
and:::js
). Both are closed with the:::
fence. These are used to tag content that is specific to that language and will generate two outputs (one for each language).
Refer to the Mintlify documentation for detailed syntax and component usage.
Run the test suite to ensure your changes don't break existing functionality:
make test
Before submitting changes, ensure your code passes formatting and linting checks:
# Format code automatically
make format
# Check for linting issues
make lint
# Fix markdown issues
make lint_md_fix
Important
All pull requests are automatically checked by CI/CD.
The same linting and formatting standards will be enforced, and PRs cannot be merged if these checks fail.
First, ensure your dev environment is set up as described above and that you have followed the steps in IDE_SETUP.md to configure your IDE/editor to automatically apply the correct settings.
-
Start development mode:
docs dev
This starts a development server with hot reload at http://localhost:3000
-
Edit files in
src/
:- Make changes to markdown files, notebooks, or other documentation
- The build system automatically detects changes and rebuilds affected files
-
Preview changes:
- Changes automatically appear in your browser at http://localhost:3000
- No manual refresh needed - the page updates automatically when you save files
-
Iterate:
- Continue editing and see changes reflected immediately
- The development server rebuilds only changed files for faster feedback
When you create or update a PR, a preview branch/ID is automatically generated for you. A comment will be left on the PR with the ID, which you can then use to generate a preview. You can also run this workflow manually if needed.
- Copy the preview branch's ID from the comment.
- In the Mintlify dashboard, click Create preview deployment.
- Enter the preview branch's ID.
- Click Create deployment. A Manual update will display in the Previews table.
- Select the preview and click Visit to view the preview build.
To redeploy the preview build, click Redeploy on the Mintlify dashboard.
Once your branch has been merged into main
, you need to push the changes to prod
for them to render on the live docs site. Use the Publish documentation GH action:
- Go to Publish documentation.
- Click the Run workflow button.
- Select the main branch to deploy.
- Click Run workflow.
Problem: Running mint broken-links
or other Mintlify commands from the project root causes parsing errors like:
Unable to parse .venv/lib/python3.13/site-packages/soupsieve-2.7.dist-info/licenses/LICENSE.md
- 3:48: Unexpected character '@' (U+0040) in name
Root Cause: Mintlify tries to parse all files in the directory, including Python virtual environment files that contain invalid MDX syntax.
Solutions (in order of preference):
-
Use the safe Make commands (recommended):
make mint-broken-links # Builds docs first, then checks links (excludes integrations)
-
Run Mintlify commands from the build directory:
cd build # Change to build directory where final docs are mint broken-links # Now safe to run
Why this works: The solution ensures Mintlify commands run from the build/
directory where the final documentation is generated, which is the correct place to check for broken links. This avoids scanning the Python virtual environment in the project root.
Prevention: Always use the provided Make commands instead of running raw mint
commands from the project root.
If adding a new group, ensure the root index.mdx
is included in the pages
array like:
{
"group": "New group",
"pages": ["new-group/index", "new-group/other-page"]
}
If the trailing /index
(no extension included) is omitted, the Mintlify parser will raise a warning even though the site will still build.