Skip to content

bigcheburashka/dev-optimizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

88 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Dev Optimizer

Cut CI time, dependency bloat, and Docker waste before merge. Fast.

For AI Agents: This tool analyzes projects for optimization opportunities across Docker, npm dependencies, and CI/CD pipelines. Use npx dev-optimizer analyze --quick for fast static analysis.

npm version npm downloads License: MIT Node.js Version TypeScript GitHub stars

Topics: devops ci-optimization docker-optimization dependency-analyzer vulnerability-scanner cli-tool code-quality

What It Does

Dev Optimizer analyzes your project in 3 domains:

Domain Checks Time
Docker Missing .dockerignore, multistage builds, large images 0.2s
Dependencies Unused packages, vulnerabilities (CVE), outdated 30s
CI/CD Missing cache, duplicate steps, cost optimization 0.2s

Use Cases:

  • CI/CD optimization (reduce build time)
  • Security audit (find CVEs)
  • Docker image size reduction
  • Dependency cleanup
  • Cost savings (cloud CI minutes)

⚑ Performance

Mode Time What it does
--quick 0.2 sec Static analysis only (Dockerfile, CI YAML, package.json)
(default) 30 sec + npm outdated + npm audit + knip (parallel execution)
--deep 31 sec + size estimates + Docker layers + CI optimization tips

Mode Comparison

Feature --quick Default --deep
Docker static checks βœ… βœ… βœ…
CI/CD static checks βœ… βœ… βœ…
Package.json analysis βœ… βœ… βœ…
npm outdated ❌ βœ… βœ…
npm audit (CVE) ❌ βœ… βœ…
knip (unused exports) ❌ βœ… βœ…
Size estimates ❌ ❌ βœ…
Docker layer analysis ❌ ❌ βœ…
CI speedup prediction ❌ ❌ βœ…

Recommendations:

  • Use --quick for CI pipelines (fast feedback)
  • Use default for local development
  • Use --deep for optimization reviews

Parallel execution:

  • npm outdated + npm audit run concurrently
  • Deep analysis methods run concurrently
  • Quick mode skips all external tools
Tool Time Coverage
dev-optimizer --quick 0.2 sec Docker + CI + Deps
depcheck 3 sec Deps only
knip 28 sec Unused exports
npm outdated 10 sec Outdated packages

Installation

# Install globally
npm install -g dev-optimizer

# Or use with npx (no install)
npx dev-optimizer analyze

Quick Start

# Install globally
npm install -g dev-optimizer

# Or use with npx (no install needed)
npx dev-optimizer analyze

Usage Examples

Basic Analysis

# Quick mode - fast static analysis (0.2 sec)
# Use for CI pipelines and pre-commit hooks
dev-optimizer analyze --quick

# Default mode - full analysis with npm/knip (30 sec)
# Use for local development
dev-optimizer analyze

# Deep mode - with size estimates (31 sec)
# Use for optimization reviews
dev-optimizer analyze --deep

Target Specific Domain

# Analyze only Docker
dev-optimizer analyze --type docker

# Analyze only dependencies
dev-optimizer analyze --type deps

# Analyze only CI/CD
dev-optimizer analyze --type ci

Output Formats

# Console output (default)
dev-optimizer analyze

# JSON output
dev-optimizer analyze --format json

# Markdown output (for PR comments)
dev-optimizer analyze --format markdown

# Quiet mode (errors only)
dev-optimizer analyze --quiet

Auto-Fix

# Preview fixes without applying
dev-optimizer fix --dry-run

# Apply safe fixes automatically
dev-optimizer fix --safe

# Interactive mode (confirm each fix)
dev-optimizer fix --interactive

# Apply all fixes (use with caution)
dev-optimizer fix --no-safe

Interactive mode options:

  • y = Apply this fix
  • n = Skip this fix
  • a = Apply all remaining fixes
  • q = Quit without applying

Baseline & CI Integration

# Save baseline
dev-optimizer baseline --save

# Compare with baseline
dev-optimizer baseline --compare

# CI: Fail on regression
dev-optimizer baseline --compare --fail-on-regression

# CI: Fail if score below threshold
dev-optimizer baseline --compare --min-score 80

GitHub Action

Create .github/workflows/dev-optimizer.yml:

name: Dev Optimizer
on: [pull_request]

jobs:
  analyze:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: bigcheburashka/dev-optimizer@main
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}

What It Analyzes

🐳 Docker

Check Time Auto-fix
Missing .dockerignore 0.01s βœ… Create file
No multistage build 0.01s ❌ Suggest
Large base image 0.01s ❌ Suggest alpine
Too many layers 0.01s ❌ Suggest combine
No cleanup commands 0.01s ❌ Suggest cleanup

πŸ“¦ Dependencies

Check Time Auto-fix
Unused dependencies (knip) 28s* βœ… Remove
Deprecated packages 0.1s ❌ Suggest update
Outdated packages 10s* ❌ Suggest update
Vulnerabilities 10s* ❌ CVE links
Duplicate entries 0.01s ❌ Suggest cleanup
Duplicate versions 2s ❌ Suggest dedupe
Missing lockfile 0.01s βœ… npm install

*run in parallel

πŸ”„ CI/CD

Check Time Auto-fix
Missing cache 0.01s βœ… Add cache config
No timeout 0.01s βœ… Add timeout-minutes
No retention-days 0.01s βœ… Add retention
Sequential jobs 0.01s ❌ Suggest parallel
Missing matrix 0.01s ❌ Suggest matrix

Total: ~0.2s (quick) / ~30s (full with parallel npm)

Example Output

πŸ” Dev Optimizer v0.1.0

πŸ“ Project: your-project
   Type: nextjs
   Package Manager: npm
   CI Platform: github-actions

🐳 Running Docker analysis...
πŸ“¦ Running Dependencies analysis...
πŸ”„ Running CI/CD analysis...

══════════════════════════════════════════════════════

Score: 72/100

πŸ”΄ Top Findings
──────────────────────────────────────
πŸ”΄ [HIGH] Missing .dockerignore file
   Impact: Reduce build context by 400 MB
   Fix: Create .dockerignore βœ… auto-fixable

🟠 [HIGH] No caching in GitHub Actions
   Impact: Save 2-3 min per CI run
   Fix: Add actions/cache βœ… auto-fixable

🟑 [MEDIUM] Unused dependency: lodash
   Impact: Reduce bundle size
   Fix: Remove from dependencies βœ… auto-fixable

πŸ’Ύ Potential Savings: 450 MB, 5 min/CI run

Comparison with Alternatives

Tool Time What it checks
dev-optimizer --quick 0.2s Docker + CI + Deps (static)
dev-optimizer 30s Docker + CI + Deps + npm audit + knip
dev-optimizer --deep 31s All above + size estimates + layer analysis
depcheck 3s Unused deps only
knip 28s Unused exports only
npm outdated 10s Outdated packages only
hadolint 5s Dockerfile only

Key difference: dev-optimizer covers 3 domains (Docker, CI, Deps) in one run.

Self-Analysis

Dev Optimizer can analyze itself for issues:

dev-optimizer analyze --path .

Current self-analysis results (2026-03-14):

  • Score: 46/100
  • Duplicate package versions (safe, different majors)
  • Missing CI concurrency control (fixed)

Run periodically to catch issues early.

Auto-Fixes

These fixes are safe to apply automatically:

Fix Domain Risk
Create .dockerignore Docker None
Create package-lock.json Deps None
Add cache to setup-node CI None
Add timeout-minutes CI None
Add retention-days CI None
Remove unused dep (high conf) Deps Low

Architecture

src/
β”œβ”€β”€ analyzers/
β”‚   β”œβ”€β”€ DockerAnalyzer.ts    # Dockerfile + .dockerignore analysis
β”‚   β”œβ”€β”€ DepsAnalyzer.ts      # package.json + knip + npm audit
β”‚   └── CiAnalyzer.ts        # GitHub Actions + GitLab CI
β”œβ”€β”€ commands/
β”‚   β”œβ”€β”€ analyze.ts           # Main analysis command
β”‚   β”œβ”€β”€ fix.ts               # Auto-fix command (--interactive)
β”‚   β”œβ”€β”€ baseline.ts          # Baseline management
β”‚   └── metrics.ts           # Metrics command
β”œβ”€β”€ reporters/
β”‚   β”œβ”€β”€ ConsoleReporter.ts   # Table output (default)
β”‚   β”œβ”€β”€ MarkdownReporter.ts  # PR comments
β”‚   β”œβ”€β”€ JsonReporter.ts      # CI integration
β”‚   └── SarifReporter.ts     # GitHub Code Scanning
β”œβ”€β”€ baseline/
β”‚   └── BaselineManager.ts  # Baseline persistence
β”œβ”€β”€ discovery/
β”‚   └── RepoInventory.ts     # Project type detection
β”œβ”€β”€ deep-analyzer.ts         # Size estimates + Docker layers
β”œβ”€β”€ self-analysis.ts         # Self-check module
└── types.ts                 # Finding schema

Development

# Install dependencies
npm install

# Run tests (59 tests)
npm test

# Build
npm run build

# Run locally
node dist/index.js analyze

# Test coverage
npm run test:coverage

Contributing

Contributions welcome! Areas needing help:

  1. Analyzers - Add checks: HEALTHCHECK in Docker, peer dep validation
  2. CI Platforms - CircleCI, Jenkins, Azure Pipelines support
  3. Auto-fixes - Safe automatic fixes for more issues
  4. Performance - Native analysis (reduce npm dependencies)

License

MIT Β© 2026

About

Cut CI time, dependency bloat, and Docker waste before merge

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors