Thank you for your interest in contributing to Ollama! Here are a few guidelines to help get you started.
See the development documentation for instructions on how to build and run Ollama locally.
By "non-trivial", we mean a change that is not a bug fix or small documentation update. If you are unsure, please ask us on our Discord server.
Before opening a non-trivial Pull Request, please open an issue to discuss the change and get feedback from the maintainers. This helps us understand the context of the change and how it fits into Ollama's roadmap and prevents us from duplicating work or you from spending time on a change that we may not be able to accept.
Tips for proposals:
Additionally, for bonus points: Provide draft documentation you would expect to see if the change were accepted.
Commit messages
The title should look like:
:
The package is the most affected Go package. If the change does not affect Go code, then use the directory name instead. Changes to a single well-known file in the root directory may use the file name.
The short description should start with a lowercase letter and be a continuation of the sentence:
"This changes Ollama to..."
Examples:
llm/backend/mlx: support the llama architecture
CONTRIBUTING: provide clairity on good commit messages, and bad
Bad Examples:
feat: add more emoji
fix: was not using famous web framework
chore: generify code
Tests
Please include tests. Strive to test behavior, not implementation.
New dependencies
Dependencies should be added sparingly. If you are adding a new dependency, please explain why it is necessary and what other ways you attempted that did not work without it.
If you need help with anything, feel free to reach out to us on our Discord server.