Welcome Contributors!
Thank you for your interest in contributing to Miku Miku Beam! We welcome contributions of all kinds including new attack protocols, bug fixes, and improvements.Getting Started
1
Fork and Clone
Fork the repository and clone it to your local machine:
2
Install Dependencies
Install all required dependencies for both Go and the web client:This command runs:
go mod tidyfor Go dependenciesnpm installin the web-client directory
3
Create Required Files
Set up the necessary data files:
4
Build and Test
Build all components and verify everything works:Visit
http://localhost:3000 to test the web interface.Development Workflow
Building Components
You can build individual components or everything at once:Running Components
Cleaning Build Artifacts
Code Structure
Before making changes, familiarize yourself with the project structure to understand how components are organized.
Key Directories
cmd/- Main applications (CLI and server)internal/- Core engine and attack implementationspkg/- Shared packages and utilitiesweb-client/- React-based frontend
Types of Contributions
Bug Fixes
If you find a bug:- Check if an issue already exists
- Create a new issue if needed with reproduction steps
- Submit a PR with the fix
- Include tests if applicable
New Attack Methods
Want to add a new attack method? Check out our detailed guide:Adding New Attack Methods
Learn how to implement and register new attack methods with step-by-step instructions.
Feature Enhancements
For new features:- Open an issue to discuss the feature first
- Get feedback from maintainers
- Implement the feature
- Submit a PR with documentation updates
Documentation
Documentation improvements are always welcome:- Fix typos or unclear explanations
- Add examples and use cases
- Improve setup instructions
- Add troubleshooting guides
Coding Standards
Go Code
- Follow standard Go conventions and formatting
- Use
gofmtto format your code - Add comments for exported functions and types
- Keep functions focused and testable
React/TypeScript Code
- Use TypeScript for type safety
- Follow React best practices
- Keep components modular and reusable
- Use proper prop typing
Commit Messages
- Use clear, descriptive commit messages
- Start with a verb (Add, Fix, Update, Remove)
- Reference issue numbers when applicable
Pull Request Process
1
Create a Branch
Create a descriptive branch name:
2
Make Your Changes
Implement your changes following the coding standards.
3
Test Thoroughly
- Build all components:
make all - Test the CLI and server
- Verify no regressions
4
Commit and Push
5
Open Pull Request
- Provide a clear description of changes
- Reference related issues
- Explain the motivation and approach
- Include screenshots for UI changes
Testing
Manual Testing
For attack methods:- Test with
--verboseflag to see detailed logs - Verify proxy rotation works correctly
- Test with and without proxies (
--no-proxy) - Ensure graceful error handling
Testing Multi-client Support
For server changes:- Open multiple browser tabs
- Start different attacks simultaneously
- Verify each client has isolated state
- Check real-time stats update correctly
Prerequisites
Make sure you have these installed:Go
v1.21 or above
Node.js
v18 or above
npm
Node Package Manager
Getting Help
If you have questions or need help:- Open an issue for bugs or feature requests
- Check existing issues and discussions
- Review the documentation thoroughly
License
By contributing, you agree that your contributions will be licensed under the MIT License.Happy hacking! We look forward to your contributions!