> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/open-webui/open-webui/llms.txt
> Use this file to discover all available pages before exploring further.

# Contributing Guide

> Guidelines for contributing to Open WebUI

## 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](https://github.com/open-webui/open-webui/blob/main/CODE_OF_CONDUCT.md).

### 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](mailto: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](https://ollama.com/). Open WebUI focuses exclusively on the web interface.

## Before Contributing

### Check Documentation

1. Review [official documentation](https://docs.openwebui.com)
2. Search [existing issues](https://github.com/open-webui/open-webui/issues)
3. Check [discussions](https://github.com/open-webui/open-webui/discussions)
4. Join [Discord community](https://discord.gg/5rJgQTnV4s) 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](https://docs.docker.com/get-started/overview/).

## 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](https://github.com/open-webui/open-webui/security) instead.

## Contributing Code

### Development Setup

1. Fork the repository
2. Clone your fork locally
3. Set up the development environment (see [Local Setup](/development/local-setup))
4. Create a feature branch

```bash theme={null}
git checkout -b feature/your-feature-name
```

### Pull Request Process

#### 1. Discuss First

Before writing code:

* Open a [discussion](https://github.com/open-webui/open-webui/discussions/new/choose) 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](https://github.com/open-webui/docs)

#### 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](https://github.com/open-webui/open-webui/blob/main/CONTRIBUTING.md)
* [ ] 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](https://github.com/open-webui/docs).

### 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](http://www.lingoes.net/en/translator/langcode.htm) (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](https://discord.gg/5rJgQTnV4s)
* 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](https://discord.gg/5rJgQTnV4s) 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

### Project Links

* [Main Repository](https://github.com/open-webui/open-webui)
* [Documentation Repository](https://github.com/open-webui/docs)
* [Pipelines Repository](https://github.com/open-webui/pipelines)
* [Official Documentation](https://docs.openwebui.com)
* [Discord Community](https://discord.gg/5rJgQTnV4s)

### Development Resources

* [Local Setup Guide](/development/local-setup)
* [Architecture Overview](/development/architecture)
* [Plugin Development](/development/plugin-development)
* [API Documentation](http://localhost:8080/docs) (dev mode)

### External Documentation

* [SvelteKit Documentation](https://kit.svelte.dev/docs)
* [FastAPI Documentation](https://fastapi.tiangolo.com/)
* [Docker Documentation](https://docs.docker.com/)

## License

By contributing to Open WebUI, you agree that your contributions will be licensed under the project's license. See [LICENSE](https://github.com/open-webui/open-webui/blob/main/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?

* Join our [Discord](https://discord.gg/5rJgQTnV4s)
* Start a [Discussion](https://github.com/open-webui/open-webui/discussions)
* Check the [FAQ](https://docs.openwebui.com)

We're here to help!
