Skip to main content

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 tidy for Go dependencies
  • npm install in 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 implementations
  • pkg/ - Shared packages and utilities
  • web-client/ - React-based frontend

Types of Contributions

Bug Fixes

If you find a bug:
  1. Check if an issue already exists
  2. Create a new issue if needed with reproduction steps
  3. Submit a PR with the fix
  4. 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:
  1. Open an issue to discuss the feature first
  2. Get feedback from maintainers
  3. Implement the feature
  4. 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 gofmt to 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:
  1. Test with --verbose flag to see detailed logs
  2. Verify proxy rotation works correctly
  3. Test with and without proxies (--no-proxy)
  4. Ensure graceful error handling

Testing Multi-client Support

For server changes:
  1. Open multiple browser tabs
  2. Start different attacks simultaneously
  3. Verify each client has isolated state
  4. 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!