Publishing your package
This guide assumes you have already implemented your package and written tests for it. If you haven’t, please refer to the implementation guide and testing guide.
Setup credentials
First, make sure you have a PyPI account:How to create a PyPI Token
How to create a PyPI Token
1
Create account
Go to the PyPI website and create an account
2
Verify email
Verify your email address by clicking the link that PyPI emails to you
3
Enable 2FA
Go to your account settings and click “Generate Recovery Codes” to enable 2FA. To generate an API token, you must have 2FA enabled
4
Generate token
Go to your account settings and generate a new API token
Build and publish
How to publish a package
Helpful guide from
uv on how to build and publish a package to PyPI.Make your integration discoverable
After publishing, file an Integration listing issue in the LangChain docs repository so your package appears under the integrations tab. A maintainer reviews the issue and applies theintegration-run label. That starts automation, which reads the form fields, applies the eligibility rules below, and opens a pull request that tags a maintainer and you for review. Prefer partner docs URLs in the form.
Do not open a manual docs PR for a new listing unless a maintainer asks you to.
Eligibility for hosted guides
LangChain hosts full integration guides in this docs repo only when either:- The package has at least 50,000 monthly downloads on PyPI (or npm for TypeScript), or
- Maintainers mark the integration as featured
List in the download table (default)
File an Integration listing issue
Use the fixed form fields for display name, language, component, package name, docs URL, and a short provider description.
scripts/data/integration_external_docs.yaml and related listing surfaces from your issue.
Each listing needs at least:
name: LangChain class or display name (for example,ChatAI21).pypiornpm: Registry package name used for the downloads badge.docs_url: Link for the name column. Prefer partner docs, then the GitHub repo, then the PyPI or npm page.
stream and tool_calling) so the table columns stay accurate.
After merge, the refresh job regenerates the component table snippets so your row appears alongside hosted integrations.
This flow is for listing metadata only. Host your usage docs on your site or GitHub README. Your integration package itself should live in its own repository under your GitHub organization or account, published as a standalone package.
Hosted guide (50K+ or featured)
If your package meets the eligibility criteria, the Integration listing automation can open a PR with a documentation page from one of the following templates. Maintainers may also ask you to author or revise hosted pages manually. Depending on the type of integration you have built, you will need to create different types of documentation pages. LangChain provides templates for different types of integrations to help you get started.Chat models
Tools/toolkits
Middleware
Vector stores
langchain repo), follow the matching template, and follow the documentation guide.
If your package was previously listed in integration_external_docs.yaml, remove that YAML entry in the same PR so the table does not show a duplicate row.
Do not set featured: true in frontmatter unless a maintainer asks you to. Featured status is a maintainer decision.
Hosted-guide PRs are for documentation only. Your integration package itself should live in its own repository under your GitHub organization or account, published as a standalone package.
If a PR includes AI-generated content, you must follow our acceptable uses of LLMs policy.
Next steps
Congratulations! Your integration is published and listed for the LangChain community.Co-marketing
Get in touch with the LangChain marketing team to explore co-marketing opportunities.
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

