Get Argus running in 5 minutes or less!
No installation required! Just Docker and an API key.
# 1. Get your API key (choose one):
# - Anthropic: https://console.anthropic.com/
# - OpenAI: https://platform.openai.com/api-keys
# 2. Run security audit on any repository
docker run --rm \
-v $(pwd):/workspace \
-e ANTHROPIC_API_KEY=your_key_here \
ghcr.io/devatsecure/argus-action:latest \
/workspace audit
# 3. Check results
cat .argus/reviews/audit-report.mdThat's it! ✅
Add to .github/workflows/security.yml:
name: Security Review
on:
pull_request:
branches: [main]
push:
branches: [main]
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: AI Security Review
uses: devatsecure/argus-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
severity_threshold: highAdd your API key:
- Go to:
Settings → Secrets → Actions - Add:
ANTHROPIC_API_KEY - Commit and push!
# 1. Install via pip
pip install git+https://github.com/devatsecure/argus-action.git
# 2. Set API key
export ANTHROPIC_API_KEY=your_key_here
# 3. Run audit
argus /path/to/repo audit
# 4. View results
cat .argus/reviews/audit-report.mdTry it on our demo repository:
# Clone demo repo with intentional vulnerabilities
git clone https://github.com/devatsecure/vulnerable-demo-app
cd vulnerable-demo-app
# Run Argus
docker run --rm \
-v $(pwd):/workspace \
-e ANTHROPIC_API_KEY=your_key_here \
ghcr.io/devatsecure/argus-action:latest \
/workspace auditExpected output:
📊 Analysis Complete:
🔴 3 SQL Injection vulnerabilities (High)
🟠 5 XSS findings (Medium)
⚠️ 12 Dependency CVEs (8 High, 4 Critical)
✅ 2 findings auto-suppressed (false positives)
💰 Cost: $0.42
⏱️ Duration: 3.2 minutes
Before Argus:
1. Developer creates PR
2. Wait for security team review (2-3 days)
3. Back-and-forth on findings
4. Finally merge after 1 week
After Argus:
1. Developer creates PR
2. Argus reviews in 5 minutes
3. Clear findings with fix suggestions
4. Merge same day ✅
Time saved: 95%
# .github/workflows/nightly-scan.yml
on:
schedule:
- cron: '0 2 * * *' # 2 AM daily
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: devatsecure/argus-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
create_issue: true # Auto-create GitHub issues# .git/hooks/pre-commit
#!/bin/bash
echo "🔍 Running Argus security check..."
docker run --rm \
-v $(pwd):/workspace \
-e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
ghcr.io/devatsecure/argus-action:latest \
/workspace audit --fail-on-critical
if [ $? -ne 0 ]; then
echo "❌ Critical security issues found. Fix before committing."
exit 1
fi
echo "✅ Security check passed!"Create .argus.yml in your repo root:
# Minimal configuration
ai_provider: anthropic # or: openai, foundation-sec
severity_threshold: medium # block PRs on medium+ findings
enabled_scanners:
- semgrep
- gitleaks
- trivy
excluded_paths:
- tests/
- vendor/
- node_modules/# Advanced options
ai_provider: anthropic
model: claude-3-5-sonnet-20241022
# Cost controls
max_tokens: 10000
cost_limit: 5.00 # USD
# File selection
max_files: 50
file_patterns:
- "*.py"
- "*.js"
- "*.go"
# Features
enable_threat_modeling: true
enable_sandbox_validation: false
enable_auto_fix: true
# Noise reduction
noise_threshold: 0.7 # suppress findings with 70%+ noise probability
use_historical_data: true
# Outputs
sarif_output: true
json_output: true
markdown_report: true
create_github_issues: true
# Policy enforcement
fail_on_severity: high
fail_on_blockers: true
block_on_secrets: true
# Notifications
slack_webhook: https://hooks.slack.com/services/YOUR/WEBHOOK
email_notifications:
- security@company.com# Solution: Set environment variable
export ANTHROPIC_API_KEY=sk-ant-...
# Or pass directly
docker run -e ANTHROPIC_API_KEY=sk-ant-... ...# Solution: Fix volume mount permissions
docker run --rm \
-v $(pwd):/workspace:rw \ # Add :rw
-e ANTHROPIC_API_KEY=... \
ghcr.io/devatsecure/argus-action:latest# Solution: Add rate limiting in config
rate_limit:
requests_per_minute: 10
max_retries: 3
backoff_factor: 2# Install Docker:
# macOS: brew install docker
# Linux: curl -fsSL https://get.docker.com | sh
# Windows: https://docs.docker.com/desktop/install/windows-install/After running Argus:
.argus/
├── reviews/
│ ├── audit-report.md # Human-readable report
│ ├── security-findings.json # Machine-readable findings
│ └── security-findings.sarif # SARIF format (GitHub compatible)
├── metrics/
│ ├── cost-report.json # API costs
│ └── performance.json # Timing metrics
└── artifacts/
├── sbom.json # Software Bill of Materials
└── threat-model.md # Threat modeling results
## 🔴 Critical Findings (2)
### 1. SQL Injection in user_controller.py
**Severity:** Critical | **Confidence:** High | **Noise Score:** 0.12
**Location:** `app/controllers/user_controller.py:45`
**Issue:**
User input directly concatenated into SQL query without sanitization.
**Exploit Scenario:**
Attacker can inject SQL to dump entire database.
**Recommendation:**
Use parameterized queries:
\```python
cursor.execute("SELECT * FROM users WHERE id = ?", (user_id,))
\```
**Auto-fix available:** Yes- Video: Argus in 5 Minutes
- Blog: Reducing False Positives by 60%
- Case Study: How Company X Uses Argus
- ✅ Run your first scan (you just did!)
- 📖 Read the full README for advanced features
- ⚙️ Configure
.argus.ymlfor your needs - 🔄 Add to CI/CD (GitHub Actions, GitLab, Jenkins)
- 📊 Set up dashboards for tracking metrics
- 👥 Join the community (Discord, GitHub Discussions)
- 🎯 Fine-tune noise reduction with your data
- 🔐 Enable advanced features (threat modeling, sandbox)
# First run: scan just one file
docker run --rm \
-v $(pwd)/src/app.py:/workspace/app.py \
-e ANTHROPIC_API_KEY=... \
ghcr.io/devatsecure/argus-action:latest \
/workspace app.pycost_limit: 1.00 # Stop after $1
max_files: 20 # Scan only 20 files# Results cached in .argus/
# Re-run is instant if no code changedintegrations:
jira:
url: https://your-company.atlassian.net
project: SEC
auto_create_tickets: true# .pre-commit-config.yaml
repos:
- repo: local
hooks:
- id: argus
name: Argus Security Check
entry: docker run --rm -v $(pwd):/workspace -e ANTHROPIC_API_KEY ghcr.io/devatsecure/argus-action:latest /workspace
language: system
pass_filenames: false- 🐛 Bug? Open an issue
- 💬 Question? GitHub Discussions
- 💼 Enterprise? Contact us
- 📖 Documentation? Read the docs
You're all set! 🎉
Start securing your code with AI-powered analysis.