How To Contribute
There are many ways in which you can contribute to this project include: submitting bug reports and feature requests via GitHub issues, opening PRs with features, fixes, or tests, reviewing others’ PRs, and collaborating by commenting or answering questions in the Discord community.Development Setup
Firstly, you will need to set up your local copy of the cognee code repository. Keep in mind that we have two different repositories: our core repo, which contains core cognee functionalities, and our community repo, which contains community-maintained add-ons and custom packages. Once you have chosen the repo you are going to work on, you have to fork it, and clone it to your machine:Development Guidelines
While working on new features and fixes, make sure to keep these guidelines in mind:- Code Style - Make sure to follow the PEP8 style guide, and also the style of the project codebase. Reuse as much of the code as possible, and follow the existing package and file hierarchy.
- Tests - Make sure to add tests for new features, and that the tests pass before opening a PR
- Commits - Write clear and concise commit messages, following the commit and PR title style below
Commit & PR Title Style
The same style applies to commit messages and PR titles. If you use a coding agent (e.g. Claude Code) in the repository, it picks up these rules fromCLAUDE.md automatically.
Subject line (required):
- Use the format
(type): (short summary) - Write the summary as if it is giving an instruction — “Fix bug”, not “Fixed bug”
- Keep it to 50 characters or less
- Capitalize the first character of the summary
- Do not end it with a period
- Explain the motivation behind the change, what problem it solves, and any relevant background — the what and why, not the how; the code itself should make the “how” clear
- Separate the subject line from the body with a blank line. Generally, all commits should have separate subject and body.
Linting and Formatting
Before creating a Pull Request, you need to make sure that your code is linted and formatted correctly. To do this, you first have to install ruff on your system. Ruff is part of the default dependencies, so you can install it viapoetry in the root of the
project, or through pip.
Submitting a Pull Request
After successfully linting and formatting your code, you can push your changes:- Go to the repository you made changes for (i.e. the core repo or the community repo)
- Click Compare & Pull Request and open a PR, being careful against which branch
you open it (
devfor core repo,mainfor community) - Fill in the PR template with details about your changes
Changelog Entries
If maintainers ask for a changelog entry, add it under theUnreleased section of CHANGELOG.md.
- Use
Addedfor new capabilities - Use
Changedfor behavior or documentation updates - Use
Fixedfor bug fixes
Contributing Guide Details
More details about the contributing process.
Community Guidelines
Be respectful and follow our code of conduct. Help others learn and grow, and provide constructive feedback.
Join our Discord Community
Join the community for real-time discussions with us and other users!