Documentation Index
Fetch the complete documentation index at: https://mintlify.com/HavocFramework/Havoc/llms.txt
Use this file to discover all available pages before exploring further.
How to Contribute
Thank you for your interest in contributing to Havoc Framework! This guide will help you get started with contributing to the project.Contribution Workflow
Pushing Changes to the Repository
It is preferred that new changes are pushed to a new branch, and then a pull request is made to merge that new branch back into Main/Master.
Step-by-Step Process
1. Create a New Local Branch Create a new branch for your changes:feature/add-new-commandbugfix/fix-sleep-obfuscationdocs/update-readme
- Write clean, readable code
- Follow the existing code style and conventions
- Add comments where necessary
- Test your changes thoroughly
- Navigate to the Havoc GitHub repository
- Click on “Pull requests”
- Click “New pull request”
- Select your branch as the compare branch
- Fill in the pull request template with:
- A clear title
- Description of changes
- Any related issues
- Testing performed
- Submit the pull request
Contribution Guidelines
Code Quality
- Follow existing patterns: Review the codebase to understand the current architecture and coding style
- Write clean code: Use meaningful variable names, add comments for complex logic
- Test thoroughly: Ensure your changes work as expected and don’t break existing functionality
- Keep changes focused: Each pull request should address a single issue or feature
Testing
Before submitting a pull request:-
Build the project to ensure no compilation errors:
- Test your changes in a development environment
- Verify compatibility across supported platforms if possible
Documentation
If your changes affect user-facing features:- Update relevant documentation
- Add comments to complex code sections
- Update the Wiki if necessary
- Include usage examples for new features
Areas for Contribution
Code Contributions
- Bug fixes: Fix existing issues listed on GitHub
- New features: Add new capabilities to the framework
- Performance improvements: Optimize existing code
- Platform support: Improve compatibility across different systems
Non-Code Contributions
- Documentation: Improve or expand documentation
- Bug reports: Report issues with detailed reproduction steps
- Testing: Test the framework and report findings
- Community support: Help others in Discord or GitHub discussions
Component-Specific Guidelines
Client (C++/Qt)
The Havoc Client is located at/client and is written in C++ using the Qt framework.
- Follow Qt best practices
- Maintain cross-platform compatibility (Windows, Linux, macOS)
- Test UI changes on different screen resolutions
- Ensure dark theme consistency (Dracula theme)
Teamserver (Golang)
The Teamserver is located at/teamserver and is written in Go.
- Follow Go conventions and best practices
- Use
go fmtto format code - Add error handling appropriately
- Test with
--debugflag enabled
Demon Agent (C/ASM)
The Demon agent is located at/payloads/Demon.
- Maintain low-level code quality
- Be mindful of payload size
- Consider OPSEC implications of changes
- Test both x86 and x64 architectures when applicable
Modules (Python)
Modules are located in the Havoc Modules repository.- Follow the Module Template
- Use the Python API
- Document module usage clearly
- Include error handling
Communication
Getting Help
- Discord: Join the Havoc Discord for discussions
- GitHub Issues: Use for bug reports and feature requests
- Pull Requests: Use for code review discussions
Reporting Issues
When reporting issues:- Search existing issues first to avoid duplicates
- Use a clear title that describes the issue
- Provide details:
- Operating system and version
- Steps to reproduce
- Expected vs actual behavior
- Error messages or logs
- Screenshots if applicable
Please do not open any issues regarding detection. Havoc is designed to be malleable and modular, not specifically evasive.
Feature Requests
When requesting features:- Explain the use case clearly
- Describe the expected behavior
- Consider if it could be implemented as a module
- Be open to discussion about implementation approaches
Recognition
Contributors who help improve Havoc are recognized in the CREDITS.md file. Significant contributions may be highlighted in release notes.Resources
- Main Repository: github.com/HavocFramework/Havoc
- Python API: github.com/HavocFramework/havoc-py
- Modules: github.com/HavocFramework/Modules
- Wiki: GitHub Wiki
- Discord: Havoc Discord Server
