Thank you for your interest in contributing! Dev Machine Guard is an open-source project by StepSecurity and we welcome contributions from the community.
To add detection for a new AI tool, IDE, or framework:
- Open an issue using the Feature Request template, or
- Submit a PR modifying the appropriate detector in
internal/detector/
How to add a new IDE/desktop app:
Find the IDE detector in internal/detector/ide.go and add an entry to the apps list. See Adding Detections for the full guide.
How to add a new AI CLI tool:
Find the AI CLI detector in internal/detector/ai_cli.go and add an entry to the tools list. See Adding Detections for the full guide.
Documentation lives in the docs/ folder. Improvements, corrections, and new guides are always welcome.
-
Clone the repository:
git clone https://github.com/step-security/dev-machine-guard.git cd dev-machine-guard -
Build the binary:
make build
-
Run locally:
# Pretty output with progress messages ./stepsecurity-dev-machine-guard --verbose # JSON output ./stepsecurity-dev-machine-guard --json # HTML report ./stepsecurity-dev-machine-guard --html report.html
- Go source code in
internal/must passgolangci-lint(our CI runs it on every PR) - Follow the existing code patterns (package structure, naming conventions, JSON struct tags)
- Use the
progresspackage for status messages (they respect the--verboseflag) - Use standard Go error handling patterns
- Fork the repository
- Create a feature branch (
git checkout -b add-new-tool-detection) - Edit Go source in
internal/(not the legacy shell script) - Test locally:
./stepsecurity-dev-machine-guard --verbose - Ensure lint and tests pass:
make lint && make test && make smoke - Submit a PR using our PR template
- Bugs: Use the Bug Report template
- Features: Use the Feature Request template
- Security vulnerabilities: See SECURITY.md
This project follows the Contributor Covenant Code of Conduct. By participating, you agree to uphold this code.
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.