Contributing to Oh My OpenCode

Help make Oh My OpenCode better for everyone

Thank you! We appreciate your interest in contributing to Oh My OpenCode. Your contributions help make this project better for everyone.

Ways to Contribute

There are many ways to contribute to Oh My OpenCode:

๐Ÿ› Report Bugs

Found a bug? Open an issue on GitHub with details about the problem, steps to reproduce, and expected behavior.

Report Bug โ†’

๐Ÿ’ก Suggest Features

Have an idea for a new feature? Share it with the community and discuss implementation possibilities.

Suggest Feature โ†’

๐Ÿ“ Improve Documentation

Help improve documentation, fix typos, add examples, or clarify confusing sections.

View Docs โ†’

๐Ÿ’ป Write Code

Fix bugs, implement features, improve performance, or refactor code. All contributions welcome!

Submit PR โ†’

๐Ÿงช Test Features

Test new features, report issues, and provide feedback on experimental features.

Experimental Features โ†’

โญ Star the Project

Show your support by starring the repository. It helps others discover the project!

Star on GitHub โ†’

Getting Started

1. Fork the Repository

Fork the oh-my-opencode repository on GitHub.

2. Clone Your Fork

git clone https://github.com/YOUR_USERNAME/oh-my-opencode.git
cd oh-my-opencode

3. Install Dependencies

npm install
# or
bun install

4. Create a Branch

git checkout -b feature/your-feature-name
# or
git checkout -b fix/your-bug-fix

5. Make Your Changes

Make your changes, write tests if applicable, and ensure everything works.

6. Test Your Changes

npm test
# or
bun test

Development Guidelines

Code Style

  • Follow the existing code style and conventions
  • Use TypeScript for type safety
  • Write clear, self-documenting code
  • Add comments for complex logic

Commit Messages

Write clear, descriptive commit messages:

feat: add new hook for context management
fix: resolve issue with agent initialization
docs: update installation instructions
refactor: improve error handling in LSP module

Testing

  • Write tests for new features
  • Ensure all existing tests pass
  • Test edge cases and error conditions
  • Update tests when modifying existing code

Documentation

  • Update documentation for new features
  • Add examples where helpful
  • Update configuration examples if needed
  • Keep documentation in sync with code changes

Pull Requests

Before Submitting

  • Ensure your code follows the project's style guidelines
  • Run tests and ensure they pass
  • Update documentation if needed
  • Rebase on the latest main branch
  • Write a clear description of your changes

PR Description Template

## Description
Brief description of what this PR does.

## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Documentation update
- [ ] Refactoring
- [ ] Performance improvement

## Testing
Describe how you tested your changes.

## Checklist
- [ ] Code follows style guidelines
- [ ] Tests pass
- [ ] Documentation updated
- [ ] No breaking changes (or documented if breaking)

Review Process

  • All PRs require review before merging
  • Address review comments promptly
  • Be open to feedback and suggestions
  • Keep PRs focused and reasonably sized

Code of Conduct

Oh My OpenCode follows a code of conduct to ensure a welcoming and inclusive community:

  • Be respectful and considerate
  • Welcome newcomers and help them learn
  • Focus on constructive feedback
  • Respect different viewpoints and experiences
  • Show empathy towards others

We are committed to providing a harassment-free experience for everyone, regardless of background, experience level, or identity.

Contributor License Agreement

By contributing to Oh My OpenCode, you agree that your contributions will be licensed under the same license as the project. Please review the license and Contributor License Agreement.

Questions?

If you have questions about contributing:

Recognition

Contributors are recognized in:

  • GitHub contributors list
  • Release notes for significant contributions
  • Project documentation

Thank you for contributing to Oh My OpenCode! ๐Ÿ™