Ways to Contribute
Report Bugs
- Search existing issues: Check GitHub Issues to see if the bug has already been reported
- Create a new issue: Include a minimal reproducible example and follow the issue template
- Be patient: Maintainers will triage the issue and may ask for additional information
If a maintainer cannot reproduce the issue, it’s unlikely to be addressed in a timely manner.
Request Features
- Search existing requests: Look through GitHub Issues for similar feature requests
- Start a discussion: Propose your idea in the appropriate category for community feedback
- Describe the use case: Explain why it would be valuable, provide examples or mockups, and outline test cases
Contribute Code
If you have the skills and time, we’d love your help with code contributions!- Find an issue: Look for issues labeled “good first issue” or “help wanted”
- Assign yourself: Comment on the issue or ask a maintainer to assign it to you to avoid duplicate work
Add an Integration
Integrations are a core component of LangChain. Contributing an integration helps expand LangChain’s ecosystem and makes your service discoverable to millions of developers. Why contribute an integration?- Discoverability: LangChain has over 20 million monthly downloads
- Interoperability: Standard interfaces allow developers to easily swap components
- Best Practices: Built-in support for streaming, async operations, and callbacks
Getting Started
Prerequisites
- Node.js v24.x (check with
node -v) - pnpm v10.14.0 (package manager)
Initial Setup
- Fork and clone the repository using the “fork and pull request” workflow
- Install dependencies from the project root:
- Build the core package (required before working on other packages):
Common Tasks
All commands run from the project root usingpnpm --filter <package> to target specific workspaces.
Package Filters
--filter langchain- mainlangchainpackage--filter @langchain/core- core package--filter @langchain/community- community integrations--filter @langchain/openai- OpenAI integration (similar for other providers)
Building
Build a specific package:Linting
Run the linter:Formatting
Format code:Testing
See the Testing page for comprehensive testing documentation. Unit tests (no external API calls):Most integration tests require credentials. Set up a
.env file based on .env.example.Pull Request Guidelines
When submitting a pull request:- Fill out the PR template - Describe what your PR does, why it’s needed, and provide context
- Link related issues - Use closing keywords like
Fixes #123to auto-close issues - Keep PRs focused - One feature or fix per PR makes review easier and faster
- Add tests - Include unit tests for new functionality; integration tests for external APIs
- Update documentation - If your change affects public APIs, update the relevant docs
- Run checks locally - Ensure
pnpm lint,pnpm format:check, andpnpm testpass before pushing
Review Process
- A maintainer will review your PR and may request changes
- Please respond to feedback in a timely manner
- Once approved, a maintainer will merge your PR
Getting Help
If you encounter issues with environment setup, linting, documentation, or other pain points:- Contact a maintainer - We want to help you get unblocked and improve the process for future contributors
- Don’t let standards block you - If linting or formatting is difficult, reach out for help. We don’t want these to prevent good code from being contributed
Communication
- LangChain Forum - Technical questions, ideas, and feedback
- GitHub Issues - Bug reports and feature requests
- Slack - LangChain Community
Release Process
LangChain has an ad hoc release process with frequent releases to npm.Dev Releases
Maintainers can publish dev releases for testing unreleased changes:- Go to Actions → 📦 Publish
- Click “Run workflow”
- Select the branch (defaults to
main) - Optionally change the npm tag (defaults to
dev) - Click “Run workflow”
x.y.z-<tag>.<short-sha> (e.g., 1.1.0-dev.abc1234)
Install a dev release:
- Testing bug fixes before official release
- Validating new features in downstream projects
- CI/CD pipelines that need to test against latest changes
Next Steps
Creating Integrations
Learn how to create new integration packages
Testing
Understand the testing infrastructure
Monorepo Structure
Explore the workspace organization
