DevNog — Developer's Bulletproofing Toolkit
One scan. One click. One fix. Ship with confidence.
DevNog is a Python CLI + localhost dashboard + lightweight SDK that makes any codebase bulletproof. It doesn't just find problems — it fixes them.
pip install devnog
No accounts. No hosting. No cloud. Everything runs locally.
Quick Start (under 60 seconds)
# Install
pip install devnog
# Scan your project
cd your-project
devnog scan
# See the report → fix everything safe → score goes up
devnog fix --all
# Rescan to see your new score
devnog scan
That's it. Your codebase just got safer.
All CLI Commands
devnog scan — Find every issue
devnog scan # Scan current directory
devnog scan ./src # Scan specific directory
devnog scan project.zip # Scan a zip file
devnog scan https://github.com/user/repo # Scan a GitHub repo
devnog scan --fail-under 70 # CI mode: fail if score below threshold
devnog scan --export json # Export report as JSON
devnog scan --export html # Export report as HTML
devnog scan --only security # Scan only specific categories
devnog scan --fix # Scan and auto-fix in one step
devnog scan --dashboard # Scan and open dashboard
38 built-in checks across 4 categories:
| Category | Checks | What It Finds |
|---|---|---|
| Security | SEC-001 to SEC-012 | Hardcoded secrets, SQL injection, eval(), weak hashing, open CORS, DEBUG=True, subprocess shell=True |
| Code Quality | CQ-001 to CQ-010 | Long functions, deep nesting, unused imports, duplicate code, missing type hints, star imports, dead code |
| Error Handling | ERR-001 to ERR-008 | Bare except, silent errors, missing timeouts, unhandled I/O, no global handler |
| Dependencies | DEP-001 to DEP-008 | Known CVEs, abandoned packages, unpinned deps, unused packages, outdated versions |
devnog fix — Fix every issue
devnog fix SEC-001 # Fix a specific issue
devnog fix SEC-001 --preview # Preview without applying
devnog fix --all # Fix all auto-fixable issues
devnog fix --all -y # Fix all without confirmation
devnog fix --category security # Fix all security issues
devnog fix ERR-004 --ai # Use AI for complex fix (requires ANTHROPIC_API_KEY)
devnog fix --target ./src # Fix issues in specific directory
Every fix shows a diff before applying. All fixes are reversible.
devnog undo — Reverse any fix
devnog undo SEC-001 # Undo a specific fix
devnog undo --last # Undo all fixes from last session
devnog undo --list # List all undoable fixes
devnog qa — Validate production readiness
devnog qa # Full readiness check (25 checks)
devnog qa ./src # Check specific directory
devnog qa --fix # Auto-fix readiness gaps
devnog qa --strict # CI mode: fail if not ready
Checks what tests don't cover: timeouts, retry logic, circuit breakers, transaction handling, structured logging, and more.
devnog dashboard — Visual web UI
devnog dashboard # Opens http://localhost:7654
devnog dashboard --port 8080 # Custom port
devnog dashboard --no-open # Start without opening browser
The dashboard provides:
- Report Card tab — Overall score with category breakdown, clickable [FIX] buttons on every issue
- QA Gate tab — Production readiness verdict (PASS / CONDITIONAL PASS / FAIL)
- Runtime tab — Captured failures from Guardian decorators
- History tab — Fix history with [UNDO] buttons
- Fix modal — Diff view with confidence indicator, side effects, and manual steps
- Fix All button — One click to apply all safe fixes
- URL scanner — Paste a GitHub URL to scan any public repo
devnog guardian — Runtime protection status
devnog guardian # Show Guardian status
devnog guardian --status # Same as above
devnog guardian --audit # Show healing audit log (Pro)
devnog guardian --report # Show runtime failure report
devnog history — Historical trending (Enterprise)
devnog history # Show score history
devnog history --days 30 # Last 30 days
devnog history --json # JSON output
devnog compliance — Compliance reports (Enterprise)
devnog compliance # Generate OWASP Top 10 report
devnog compliance --framework soc2 # SOC2 compliance report
devnog compliance --export pdf # Export as PDF
Decorator Usage
@capture — Lightweight failure capture
from devnog import capture
@capture
def risky_calculation(data):
return sum(d / normalize(d) for d in data)
When risky_calculation fails, DevNog saves a complete snapshot — args, local variables, stack trace, timestamp — to .devnog/captures.db. Sensitive data is automatically redacted.
@checkpoint — Resume from last successful step
from devnog import checkpoint
@checkpoint
def long_pipeline(data, _ckpt=None):
step1_result = expensive_step_1(data)
_ckpt.save("step1", {"result": step1_result})
step2_result = expensive_step_2(step1_result)
_ckpt.save("step2", {"result": step2_result})
return step2_result
If the function fails mid-way, DevNog can replay from the last checkpoint. Accept _ckpt as a parameter to save intermediate state.
@healable — Self-healing functions (Pro)
from devnog import healable
@healable(retries=3, backoff=True, fallback="skip")
async def call_external_api(payload):
response = await httpx.post(url, json=payload)
return response.json()
On Free tier, @healable captures failures but re-raises them (observe-only mode).
On Pro tier, it adds retry with exponential backoff, fallback strategies, and pattern detection.
Guardian Setup
FastAPI / Starlette
from fastapi import FastAPI
from devnog import guard
app = FastAPI()
guard(app) # Adds ASGI middleware for request failure capture
Context manager
from devnog import guardian_context
async with guardian_context():
await do_something_risky()
Configuration
from devnog import guardian_config
guardian_config(
capture_args=True,
capture_locals=True,
max_captures=1000,
redact_patterns=["password", "token", "secret"],
)
Configuration
Create devnog.toml in your project root. Everything is optional — sensible defaults are built in:
[scan]
fail_under = 70 # CI threshold
categories = ["code_quality", "security", "error_handling", "dependencies"]
exclude = ["tests/", "migrations/", "venv/"]
[scan.code_quality]
max_function_length = 75 # Lines per function
max_nesting_depth = 5 # Max nesting levels
max_complexity = 15 # Cyclomatic complexity
[fix]
backup_before_fix = true # Save backups to .devnog/backups/
[dashboard]
port = 7654
[guardian]
capture_args = true
capture_locals = true
redact_patterns = ["password", "token", "secret", "key", "auth"]
Tiers
| Tier | Price | What's Included |
|---|---|---|
| Free | $0 forever | Scanner (38 checks), rule-based fixes, QA Gate (25 checks), observe-only Guardian, capture decorators, dashboard |
| Pro | Coming soon | Everything Free + Guardian auto-healing, pattern detection, healing audit log, @healable retry/backoff |
| Enterprise | Coming soon | Everything Pro + enforced team config, CI/CD scan diffs, historical trending, OWASP/SOC2 compliance reports |
Set your license key:
export DEVNOG_LICENSE_KEY="your-key-here"
# Or save to .devnog/license.key
AI-Powered Fixes
For complex issues that can't be fixed by rules alone, DevNog uses Claude:
pip install devnog[ai]
export ANTHROPIC_API_KEY="sk-ant-..."
devnog fix SEC-002 --ai
AI fixes include confidence scores, side effect warnings, and manual follow-up steps.
Safety
- DevNog never modifies code without showing you the diff first
- All fixes are reversible via
devnog undo - Backups saved to
.devnog/backups/before every fix - First time running fixes? DevNog shows preview-only mode with no changes applied
- The
.devnog/directory is auto-added to.gitignore
Dependencies
Only 3 required dependencies:
click— CLI frameworkrich— Terminal formattingcryptography— Fernet encryption for capture storage
Optional extras:
pip install devnog[ai] # anthropic — AI-powered fixes
pip install devnog[guardian] # starlette — ASGI middleware
pip install devnog[enterprise] # reportlab — PDF compliance reports
pip install devnog[all] # Everything
DevNog Pro — Coming Soon
Auto-healing runtime protection. Pattern detection across failures. Full healing audit trail.
Sign up for early access: https://devnog.dev/pro
License
MIT License. See LICENSE for details.
Metadata
Release files for devnog 0.1.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 | |
|---|---|---|---|
| devnog-0.1.0.tar.gz | 153.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| devnog-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 280.8 kB
Release files / devnog-0.1.0.tar.gz
| Download URL | devnog-0.1.0.tar.gz |
|---|---|
| Size | 153.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
85c98a72872569c9813920e519eb7f4454d25e87e1ad0c640586e106282a3f3d
|
|
BLAKE2b-256 checksum How to use checksums |
c359a5ba7d172f23f394bcbf0fe9baa39b194b4c4a246abf5ff128e4329cd796
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 8, 2026.
Transparency logRelease files / devnog-0.1.0-py3-none-any.whl
| Download URL | devnog-0.1.0-py3-none-any.whl |
|---|---|
| Size | 127.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0c42eefcde5ae065b61bfc88f2f6b35b39c03ed2e45e2d1e41718d062426a6e0
|
|
BLAKE2b-256 checksum How to use checksums |
9c5e3caf573b73de1affcf3f45f38839f2a5bc628f729efbd1f3f8f9b8071ed7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 8, 2026.
Transparency log