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
stepsecurity-dev-machine-guard.sh
How to add a new IDE/desktop app:
Find the detect_ide_installations() function and add an entry to the apps array:
"App Name|type_id|Vendor|/Applications/App.app|Contents/MacOS/binary|--version"How to add a new AI CLI tool:
Find the detect_ai_cli_tools() function and add an entry to the tools array:
"tool-name|Vendor|binary1,binary2|~/.config-dir1,~/.config-dir2"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 -
Make the script executable:
chmod +x stepsecurity-dev-machine-guard.sh
-
Run locally:
# Pretty output with progress messages ./stepsecurity-dev-machine-guard.sh --verbose # JSON output ./stepsecurity-dev-machine-guard.sh --json # HTML report ./stepsecurity-dev-machine-guard.sh --html report.html
- The script must pass ShellCheck (our CI runs it on every PR)
- Follow the existing code patterns (section headers, function naming, JSON construction)
- Use
print_progressfor status messages (they respect the--verboseflag) - Use
print_errorfor error messages (always shown)
- Fork the repository
- Create a feature branch (
git checkout -b add-new-tool-detection) - Make your changes
- Test locally:
./stepsecurity-dev-machine-guard.sh --verbose - Ensure ShellCheck passes:
shellcheck stepsecurity-dev-machine-guard.sh - 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.