A toolkit of oddly specific CLI utilities for developers and vibecoders
npm install -g crapifyme
# or use it without installation:
npx crapifyme
# Base64 encoding (data URL + CSS formats)
crapifyme base64 image.png
# Unicode character detection and cleanup
crapifyme chars --fix src/
# Comment cleanup with preservation rules
crapifyme comments src/
# Console log cleanup
crapifyme logs src/
# Import optimization
crapifyme imports src/
# SVG optimization
crapifyme svg assets/
# Dependency analysis
crapifyme deps
Smart CLI tools with rule-based preservation systems, AST analysis, and multi-pass optimization. Each tool uses professional-grade libraries and includes safety features like version control detection and dry-run modes.
Option | Description | Default |
---|---|---|
--dry-run |
Preview changes without file modification | false |
--force |
Bypass version control requirement | false |
--verbose |
Detailed processing information | false |
--quiet |
Suppress all output except errors | false |
--json |
Machine-readable JSON output | false |
Image encoding and decoding with multiple output formats
Option | Description | Default |
---|---|---|
--css-only |
Output only CSS background-image format | false |
--data-url-only |
Output only data URL format | false |
--raw |
Output raw base64 string without data URL wrapper | false |
--size-info |
Show detailed size analysis (original, base64, overhead) | false |
-o, --output <path> |
Output file path for decode command | auto-generated |
Supported formats: PNG, JPG, JPEG, SVG, GIF, WebP, BMP, ICO, TIFF, AVIF
Unicode-to-ASCII transliteration and character detection
Option | Description | Default |
---|---|---|
--fix |
Automatically fix detected characters with ASCII replacements | false |
--strict |
Enable strict mode (flag all non-ASCII characters) | false |
--interactive |
Prompt for each replacement (requires --fix) | false |
--severity <level> |
Minimum severity to report (low/medium/high/critical) | low |
--show-context <number> |
Number of characters to show around each issue | 40 |
--ignore-strings |
Ignore characters inside string literals | false |
--ignore-comments |
Ignore characters inside comments | false |
-e, --extensions <ext> |
File extensions to process | js,ts,jsx,tsx,vue,py |
-x, --exclude <patterns> |
Glob exclusion patterns | none |
Rule-based comment preservation and cleanup
Option | Description | Default |
---|---|---|
-k, --keep <patterns> |
Custom preservation patterns (comma-separated) | none |
-e, --extensions <ext> |
Target file extensions | js,ts,jsx,tsx,vue,svelte,astro,html,css,scss,less,sass |
-x, --exclude <patterns> |
Glob exclusion patterns | none |
--no-preserve-framework |
Disable framework directive preservation | false |
--no-preserve-development |
Disable development keyword preservation | false |
--no-preserve-tooling |
Disable tooling directive preservation | false |
--no-preserve-documentation |
Disable JSDoc preservation | false |
Preserved patterns: TODO
, FIXME
, HACK
, NOTE
, @ts-ignore
, eslint-disable
, JSDoc, framework directives
Console log cleanup with selective preservation
Option | Description | Default |
---|---|---|
-k, --keep <patterns> |
Custom preservation patterns | none |
-e, --extensions <ext> |
Target file extensions | js,ts,jsx,tsx,vue,svelte,astro |
-x, --exclude <patterns> |
Glob exclusion patterns | none |
--no-preserve-debug |
Remove console.debug statements | false |
--no-preserve-error |
Remove console.error statements | false |
--no-preserve-warn |
Remove console.warn statements | false |
Removed by default: console.log()
, console.info()
Preserved by default: console.error()
, console.warn()
, console.debug()
, console.assert()
, console.trace()
, console.time()
AST-based import optimization and organization
Option | Description | Default |
---|---|---|
--sort / --no-sort |
Sort imports alphabetically within groups | true |
--group / --no-group |
Group imports by type (external → internal → relative) | true |
--remove-unused / --no-remove-unused |
Remove unused imports via AST analysis | true |
--merge-duplicates / --no-merge-duplicates |
Merge duplicate imports from same source | true |
--style <type> |
Import path style (absolute/relative/mixed) | mixed |
--alias <mapping> |
Path alias configuration (e.g., "@/:./src/") | auto-detect |
--framework <name> |
Framework optimizations (nextjs/vite/svelte/vue/react/angular/nuxt) | auto-detect |
--multiline-threshold <n> |
Threshold for multiline imports | 3 |
-e, --extensions <ext> |
File extensions to process | js,ts,jsx,tsx,vue,svelte |
-x, --exclude <patterns> |
Glob exclusion patterns | none |
--no-preserve-comments |
Remove comments from import statements | false |
SVGO-powered SVG optimization with presets and advanced options
Core Options
Option | Description | Default |
---|---|---|
--preset <preset> |
Optimization preset (minimal/balanced/aggressive) | balanced |
--config <path> |
Path to custom SVGO configuration file | none |
--plugins <plugins> |
Comma-separated list of SVGO plugins to enable | preset-default |
--precision <number> |
Floating point precision for coordinates | 2 |
--multipass |
Run optimization multiple times for better results | false |
File Processing
Option | Description | Default |
---|---|---|
--glob <pattern> |
Glob pattern for files (e.g., "**/*.svg") | none |
-e, --extensions <ext> |
File extensions to process | svg |
-x, --exclude <patterns> |
Comma-separated exclusion patterns | none |
--parallel |
Process files in parallel | true |
--max-concurrency <number> |
Maximum number of concurrent operations | 4 |
Output Modes
Option | Description | Default |
---|---|---|
--in-place |
Overwrite original files (with confirmation) | true |
--copy |
Create optimized copies with .optimized.svg suffix | false |
--backup |
Create .original.svg backup before optimizing | false |
--stdout |
Output optimized SVG to console (single files only) | false |
--output-dir <dir> |
Save optimized files to different directory | none |
Advanced Features
Option | Description | Default |
---|---|---|
--keep-ids |
Preserve ID attributes | false |
--keep-titles |
Preserve title and desc elements for accessibility | false |
--watch |
Watch mode for continuous optimization during development | false |
--size-info / --no-size-info |
Show detailed size analysis and compression ratios | true |
--report <format> |
Export report (json, csv) | none |
--validate-input |
Validate SVG structure before optimization | true |
--validate-output |
Validate SVG structure after optimization | true |
Comprehensive dependency analysis for security, size, and maintenance
Analysis Types
Option | Description | Default |
---|---|---|
--security-only |
Only perform security vulnerability analysis | false |
--size-only |
Only perform bundle size analysis | false |
--outdated-only |
Only check for outdated dependencies | false |
--unused-only |
Only check for unused dependencies | false |
--duplicates-only |
Only check for duplicate dependencies | false |
Scope & Dependencies
Option | Description | Default |
---|---|---|
--include-gzip / --no-include-gzip |
Include gzipped size information | true |
--include-dev / --no-include-dev |
Include development dependencies in analysis | true |
--include-peer |
Include peer dependencies in analysis | false |
--include-optional |
Include optional dependencies in analysis | false |
--workspaces |
Analyze workspaces if available | false |
Output & Performance
Option | Description | Default |
---|---|---|
--pm <manager> |
Package manager to use (npm/yarn/pnpm/auto) | auto |
--timeout <ms> |
Request timeout in milliseconds | 120000 |
--output <format> |
Output format (table/json/tree/summary) | table |
--no-security |
Skip security vulnerability checks | false |
--no-bundle-size |
Skip bundle size analysis | false |
# Prepare assets for deployment
crapifyme base64 logo.png --css-only
crapifyme svg --preset=aggressive assets/
crapifyme chars --fix --strict src/
crapifyme comments --no-preserve-development src/
crapifyme logs src/
crapifyme imports src/
crapifyme deps --security-only --output=json
# Quick SVG optimization from clipboard
crapifyme svg '<svg>...</svg>'
# Watch mode for continuous optimization
crapifyme svg --watch src/icons/
# Interactive character fixing
crapifyme chars --fix --interactive src/
# Import organization with framework settings
crapifyme imports --framework=nextjs --alias="@/*:./src/*" src/
# Security audit
crapifyme deps --security-only
# Bundle size analysis
crapifyme deps --size-only --include-gzip
# Find unused dependencies
crapifyme deps --unused-only
# Legacy cleanup
crapifyme chars --fix legacy/
crapifyme comments --keep "@author,@copyright" legacy/
# Pipeline-friendly commands
crapifyme chars --severity=high --json --quiet src/
crapifyme deps --security-only --output=json --quiet
crapifyme svg --report=json --quiet build/assets/
MIT