🔒 Security Code Scanner
A powerful Python tool that scans your codebase for security vulnerabilities using Claude AI. This tool analyzes your code files and provides detailed security findings with suggested fixes.
✨ Features
- Multi-language Support: Scans Python, JavaScript, TypeScript, Java, C/C++, PHP, Ruby, Go, Rust, and many more
- AI-Powered Analysis: Uses Claude AI to identify security vulnerabilities with high accuracy
- Parallel Processing: Fast scanning with configurable parallel workers
- Detailed Reports: Provides vulnerability type, severity, location, and suggested fixes
- Smart File Filtering: Automatically skips irrelevant files and directories
- JSON Output: Option to save results in JSON format for further processing
- Inline Comments: Add vulnerability comments directly to source files for easy review
- Enhanced Comments: Include suggested fix code as comments, making it easy to implement fixes
🚀 Installation
-
Clone or download the tool:
git clone <repository-url> cd AI-code-sec-reviewer
-
Install dependencies:
pip install -r requirements.txt
-
Set up your Anthropic API key:
export ANTHROPIC_API_KEY='your-api-key-here'
Or add it to your
.bashrcor.zshrc:echo 'export ANTHROPIC_API_KEY="your-api-key-here"' >> ~/.bashrc source ~/.bashrc
📋 Usage
Basic Usage
Scan a project directory:
python security_scanner.py /path/to/your/project
Scan current directory:
python security_scanner.py .
Advanced Options
Increase parallel workers for faster scanning:
python security_scanner.py /path/to/project --max-workers 8
Save results to JSON file:
python security_scanner.py /path/to/project --output scan_results.json
Combine options:
python security_scanner.py /path/to/project --max-workers 6 --output results.json
📊 Output Format
The tool provides detailed output including:
- Summary Statistics: Files analyzed, vulnerability rate, files modified with comments
- Per-file Analysis: Each file with vulnerabilities is listed separately
- Vulnerability Details:
- Type and severity (High/Medium/Low)
- Line number or code section
- Description of the issue
- Vulnerable code snippet
- Suggested fix with commented code
Example Output
🔒 SECURITY SCAN RESULTS
================================================================================
📊 Summary:
Files analyzed: 15
Files with vulnerabilities: 3
Files modified with comments: 3
Vulnerability rate: 20.0%
🔍 /path/to/project/app.py
------------------------------------------------------------
🔴 HIGH - SQL Injection
Line/Section: 45
Description: User input directly concatenated into SQL query
Vulnerable Code:
query = f"SELECT * FROM users WHERE id = {user_id}"
Suggested Fix:
# Use parameterized queries to prevent SQL injection
query = "SELECT * FROM users WHERE id = %s"
cursor.execute(query, (user_id,))
💬 Added vulnerability comments to 3 files
Review the comments in your source files for detailed information
📈 VULNERABILITY SUMMARY
================================================================================
Total vulnerabilities found: 5
High severity: 2
Medium severity: 2
Low severity: 1
🔍 Supported File Types
The scanner automatically detects and analyzes files with these extensions:
- Web Development:
.py,.js,.ts,.jsx,.tsx,.php,.rb - Backend:
.java,.cs,.go,.rs,.swift,.kt - Systems:
.c,.cpp,.cxx,.h,.hpp - Scripts:
.sh,.bash,.ps1,.vbs,.pl - Data:
.sql,.r,.m - Functional:
.scala,.clj,.hs,.ml,.fs - Others:
.scm,.lisp,.el
🚫 Skipped Directories and Files
The tool automatically skips:
- Version Control:
.git,.svn,.hg - Dependencies:
node_modules,venv,.venv,env - Build Artifacts:
build,dist,target,bin,obj - IDE Files:
.idea,.vscode,.vs - Cache:
__pycache__,.pytest_cache,coverage - Lock Files:
package-lock.json,yarn.lock,poetry.lock - Documentation:
README.md,LICENSE
⚙️ Configuration
Environment Variables
ANTHROPIC_API_KEY: Your Anthropic API key (required)
Command Line Options
project_path: Path to the project directory to scan (required)--max-workers: Maximum number of parallel workers (default: 4)--output: Output file to save results as JSON--add-comments: Add vulnerability comments directly to source files
🔧 Troubleshooting
Common Issues
1. API Key Error:
❌ Error: ANTHROPIC_API_KEY environment variable not set
Solution: Set your API key as shown in the installation section.
2. No Files Found:
⚠️ No files found to scan
Solution: Check if the project path is correct and contains code files.
3. Permission Errors:
❌ Error: [Errno 13] Permission denied
Solution: Ensure you have read permissions for the project directory.
4. API Rate Limits:
❌ Error: Rate limit exceeded
Solution: Reduce the number of parallel workers or wait before retrying.
5. Comment Addition Failed:
⚠️ Failed to add comments to filename.py
Solution: Check if the file is writable and not locked by another process.
🛡️ Security Considerations
- API Key Security: Never commit your API key to version control
- Code Privacy: Your code is sent to Claude API for analysis
- Rate Limits: Be mindful of API rate limits for large projects
- False Positives: Review all findings manually before implementing fixes
- File Modifications: The
--add-commentsflag modifies your source files. Consider backing up your code before running
🤝 Contributing
Contributions are welcome! Please feel free to submit issues and pull requests.
Metadata
Release files for ai-code-scanner 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ai-code-scanner-1.0.0.tar.gz | 12.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ai_code_scanner-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.2 kB
Release files / ai-code-scanner-1.0.0.tar.gz
| Download URL | ai-code-scanner-1.0.0.tar.gz |
|---|---|
| Size | 12.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
897e6dd6e2854a0ff110cdfad03f983710b075126ef3b09bb20ddb639d6b7aee
|
|
BLAKE2b-256 checksum How to use checksums |
a4f30f574c78d6c022f4274307f38e5cf0385c5305c542db5dc0b861f6798eb5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.12
|
Release files / ai_code_scanner-1.0.0-py3-none-any.whl
| Download URL | ai_code_scanner-1.0.0-py3-none-any.whl |
|---|---|
| Size | 9.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6657421b414c1d4dc6e8c653e6594e99620dc0991aa6ef1f2106388262d88cb4
|
|
BLAKE2b-256 checksum How to use checksums |
5b63436ba6e40b2959f6500c1dcb9ed2775f923fa1db82583a2a288f0c9f1d30
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.12
|
Security for ai-code-scanner 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.