A VS Code extension for static code analysis using Semgrep rules to identify security vulnerabilities, code smells, and potential issues in your codebase.
- Static Code Analysis: Runs Semgrep scans on your workspace
- Real-time Diagnostics: Shows issues directly in VS Code's Problems panel
- Custom Rules: Uses configurable Semgrep rules for targeted analysis
- Progress Tracking: Visual progress indicators during scans
- Detailed Reports: Generates JSON reports with scan results and statistics
python -m pip install --user pipx
python -m pipx ensurepath
pipx install semgrepsemgrep --version- Clone this repository
- Run
npm installto install dependencies - Open in VS Code and press
F5to run the extension in a new Extension Development Host window
- Open a workspace/folder in VS Code
- Press
Ctrl+Shift+P(orCmd+Shift+Pon macOS) to open the command palette - Type "camadazero" and select the CamadaZero command
- The extension will:
- Run Semgrep analysis on your workspace
- Show progress notifications
- Display found issues in the Problems panel
- Generate a detailed report
The extension uses Semgrep rules located in the semgrep-rules/ directory. You can customize these rules based on your needs.
Refer to the Semgrep Rules Documentation for guidance on creating custom rules.
npm init -y
npm install --save-dev typescript @types/node @types/vscode
npm install --save-dev npx # if using Yarn or need to ensure availability- Run
npm installto install dependencies - Press
F5or run theRun Extensiontarget in the Debug View - This will start the
npm: watchtask and launch the extension in a new VS Code window
├── src/
│ ├── extension.ts # Main extension entry point
│ ├── scanner.ts # Core scanning logic
│ ├── utils.ts # Utility functions
│ ├── types.ts # Type definitions
│ └── copilot.ts # GitHub Copilot integration
├── semgrep-rules/
│ └── java.yaml # Semgrep rules configuration
└── package.json # Extension manifest
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the terms specified in the LICENSE file.
