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:
git clone https://github.com/sammwyy/mikumikubeam.git
cd mikumikubeam
2

Install Dependencies

Install all required dependencies for both Go and the web client:
make prepare
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:
# Create proxies file (one per line)
echo "http://proxy1:8080" > data/proxies.txt

# Create user agents file (one per line)
echo "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" > data/uas.txt
4

Build and Test

Build all components and verify everything works:
make all
make run-server
Visit http://localhost:3000 to test the web interface.

Development Workflow

Building Components

You can build individual components or everything at once:
# Build everything (recommended)
make all

# Or build individually
make webclient    # Build React frontend
make cli          # Build CLI binary
make server       # Build server binary

Running Components

make run-server
# Or directly:
./bin/mmb-server

Cleaning Build Artifacts

make clean

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
// Good: Clear, focused function with documentation
// Fire sends a single HTTP flood request to the target
func (w *floodWorker) Fire(ctx context.Context, params core.AttackParams, 
    p core.Proxy, ua string, logCh chan<- core.AttackStats) error {
    // Implementation
}

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
# Good commit messages
git commit -m "Add UDP flood attack method"
git commit -m "Fix proxy rotation bug in HTTP bypass"
git commit -m "Update documentation for CLI usage"

# Less ideal
git commit -m "fixes"
git commit -m "updates"

Pull Request Process

1

Create a Branch

Create a descriptive branch name:
git checkout -b feature/udp-flood
git checkout -b fix/proxy-rotation
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

git add .
git commit -m "Add UDP flood attack method"
git push origin feature/udp-flood
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
# Test your new attack
./bin/mmb-cli attack your_method http://example.com --verbose --threads 4

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!

Build docs developers (and LLMs) love