Skip to main content

Welcome, Contributors!

Your interest in contributing to Open WebUI is greatly appreciated. This guide will help you understand the process and ensure your contributions enhance the project effectively.

Code of Conduct

By participating in this project, you agree to uphold our Code of Conduct.

Key Principles

  • Zero Tolerance Policy: Unacceptable behavior results in immediate enforcement
  • Respect & Professionalism: Treat all contributors with courtesy
  • No Entitlement: Contributors volunteer their time freely
  • Constructive Feedback: Focus on improvement, not criticism
  • Report Violations: Contact hello@openwebui.com

Understanding Open WebUI vs Ollama

It’s crucial to distinguish between these projects:
  • Open WebUI: Web interface for chat interactions
  • Ollama: Underlying LLM runtime technology
If your issue pertains to core Ollama functionality, please direct it to the Ollama repository. Open WebUI focuses exclusively on the web interface.

Before Contributing

Check Documentation

  1. Review official documentation
  2. Search existing issues
  3. Check discussions
  4. Join Discord community for questions

Scope of Support

We Support:
  • Open WebUI interface bugs and features
  • Docker deployment issues specific to Open WebUI
  • Integration with LLM providers
  • Documentation improvements
Outside Our Scope:
  • General Docker/Linux/networking tutorials
  • Ollama core functionality
  • Third-party reverse proxy configurations
  • Basic programming language questions
For Docker basics, refer to official Docker documentation.

Reporting Issues

Before Opening an Issue

  1. Search existing issues for duplicates
  2. Verify the issue in the latest version
  3. Gather all relevant information

Issue Requirements

Template Compliance: Failure to follow the issue template will result in your issue being closed without consideration. Required Information:
  • Open WebUI version
  • Deployment method (Docker, pip, etc.)
  • Operating system and version
  • Steps to reproduce
  • Expected vs actual behavior
  • Relevant logs or error messages
  • Screenshots (if UI-related)

Security Vulnerabilities

Do NOT report security vulnerabilities via Issues. Use GitHub Security Reporting instead.

Contributing Code

Development Setup

  1. Fork the repository
  2. Clone your fork locally
  3. Set up the development environment (see Local Setup)
  4. Create a feature branch
git checkout -b feature/your-feature-name

Pull Request Process

1. Discuss First

Before writing code:
  • Open a discussion for new features
  • Comment on existing issues you plan to work on
  • Get feedback on your approach

2. Code Standards

Frontend (TypeScript/Svelte):
  • Follow existing code style
  • Use TypeScript for type safety
  • Keep components focused and reusable
  • Run linter: npm run lint
  • Format code: npm run format
Backend (Python):
  • Follow PEP 8 style guide
  • Use type hints where applicable
  • Write docstrings for functions/classes
  • Run linter: pylint backend/
  • Format with Black: black . --exclude ".venv/|/venv/"

3. Testing

  • Add tests for new features
  • Ensure existing tests pass
  • Test frontend: npm run test:frontend
  • Manual testing in development environment

4. Documentation

  • Update relevant documentation
  • Add JSDoc/docstrings to new code
  • Update README if needed
  • Submit documentation PRs to Docs Repository

5. Commit Messages

Write clear, descriptive commit messages:
feat: add support for custom embedding models

- Implement custom embedding API integration
- Add configuration options for embedding engines
- Update documentation

Fixes #1234
Format:
  • feat: - New feature
  • fix: - Bug fix
  • docs: - Documentation changes
  • refactor: - Code refactoring
  • test: - Adding tests
  • chore: - Maintenance tasks

6. Pull Request Template

Complete the PR checklist:
  • I have read the Contributing Guidelines
  • I have discussed my changes in an issue or discussion
  • My code follows the project’s code style
  • I have added tests that prove my fix/feature works
  • I have updated the documentation accordingly
  • All new and existing tests pass
  • I have checked my code for security vulnerabilities

7. Timely Completion

Complete your PR in a reasonable timeframe. Open WebUI moves fast - PRs that stall for too long may be closed to keep the project moving forward. You can open as a Draft PR while still working on it.

PR Review Process

  1. Maintainers review your PR
  2. Address feedback and requested changes
  3. Once approved, a maintainer will merge
  4. Your contribution is now part of Open WebUI!

Contributing Documentation

Documentation Repository

Submit documentation improvements to the Docs Repository.

What We Need

  • Setup and installation guides
  • Troubleshooting documentation
  • Feature tutorials
  • API usage examples
  • Architecture explanations
  • Video tutorials and guides

Documentation Standards

  • Write clearly and concisely
  • Use proper formatting (Markdown/MDX)
  • Include code examples where relevant
  • Add screenshots for UI features
  • Test all commands and code snippets

Translations and Internationalization

Help make Open WebUI available worldwide!

Adding a New Language

  1. Navigate to src/lib/i18n/locales
  2. Create a directory with the ISO 639 language code (e.g., es-ES for Spanish)
  3. Copy files from en-US directory
  4. Translate the JSON values (preserve structure)
  5. Add the language to src/lib/i18n/locales/languages.json

Translation Guidelines

  • Submit translations in standalone PRs (not with features/fixes)
  • Preserve JSON structure and keys
  • Use native speakers when possible
  • Consider cultural context
  • Test translations in the UI

Community Involvement

Ways to Help

  • Answer questions in Discord
  • Help triage issues
  • Review pull requests
  • Share your Open WebUI setup and use cases
  • Create tutorials and blog posts
  • Spread the word about Open WebUI

Discord Community

Join our Discord server to:
  • Get help with development
  • Discuss ideas and features
  • Connect with other contributors
  • Stay updated on project news

Best Practices

Keep PRs Focused

  • One feature or fix per PR
  • Don’t combine unrelated changes
  • Keep changes minimal and targeted

Communication

  • Be responsive to feedback
  • Ask questions when unclear
  • Update the issue/PR if your plans change
  • Be patient - maintainers are volunteers

Quality Over Quantity

  • Well-tested, documented code is better than rushed features
  • Think about edge cases
  • Consider backward compatibility
  • Optimize for maintainability

Resources

Development Resources

External Documentation

License

By contributing to Open WebUI, you agree that your contributions will be licensed under the project’s license. See LICENSE for details.

Thank You!

Your contributions, big or small, make a significant impact on Open WebUI. We’re excited to see what you bring to the project! Together, let’s create an even more powerful tool for the community. 🌟

Questions?

Still have questions? We’re here to help!