{"_id":"@alexberriman/vibe","_rev":"11-fc6f371a6f2a7a5850a52612a981657e","name":"@alexberriman/vibe","dist-tags":{"latest":"0.1.15"},"versions":{"0.1.3":{"name":"@alexberriman/vibe","version":"0.1.3","keywords":["dom","audit","cli","website","layout","visual","bugs","playwright"],"author":{"name":"Alex Berriman"},"license":"MIT","_id":"@alexberriman/vibe@0.1.3","maintainers":[{"name":"alexberriman","email":"alexb@bezz.com.au"}],"homepage":"https://github.com/alexberriman/vibe#readme","bugs":{"url":"https://github.com/alexberriman/vibe/issues"},"bin":{"vibe":"dist/index.js"},"dist":{"shasum":"4f4cdc440a6aca37cf4db8388eccbed40a00d775","tarball":"https://registry.npmjs.org/@alexberriman/vibe/-/vibe-0.1.3.tgz","fileCount":3,"integrity":"sha512-PcYn0ac/tHy1u+k0/f7CYps0MfLJ4vF7g4Csmwohc6d2dkncDIlPy7n2WA1F6kDveOqUUD175y75I2jdP4qk4g==","signatures":[{"sig":"MEUCICYVaoYDjLoiRBfQgnlrF4ezXUaHB7UZTiF3+YE5CpCwAiEAvgKBMl2vsBxYQNMEeB2hTZe+SAibkmb2/XpYpTixfHM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113751},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"c15a57db9f81dfe8be363747e618d5939f50de92","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --treeshake --external playwright-core","check":"npm run lint && npm run typecheck && npm run test","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","lint:fix":"eslint src/ --fix","typecheck":"tsc --noEmit","test:watch":"vitest --watch","lint-staged":"lint-staged","format:check":"prettier --check src/","test:coverage":"vitest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexberriman","email":"alexb@bezz.com.au"},"repository":{"url":"git+https://github.com/alexberriman/vibe.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool for detecting critical layout issues on webpages using a headless browser","directories":{},"_nodeVersion":"23.11.1","dependencies":{"pino":"^9.7.0","tslib":"^2.8.1","globby":"^14.1.0","commander":"^14.0.0","ts-results":"^3.3.0","pino-pretty":"^13.0.0","playwright-core":"^1.41.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","husky":"^9.1.7","eslint":"^9.27.0","vitest":"^3.1.3","prettier":"^3.5.3","@eslint/js":"^9.27.0","typescript":"^5.8.3","@types/node":"^22.15.17","lint-staged":"^16.0.0","@vitest/coverage-v8":"^3.1.3","eslint-plugin-sonarjs":"^3.0.2","eslint-plugin-unicorn":"^59.0.1","eslint-config-prettier":"^10.1.5","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe_0.1.3_1747873898182_0.12074651801975245","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@alexberriman/vibe","version":"0.1.5","keywords":["dom","audit","cli","website","layout","visual","bugs","playwright"],"author":{"name":"Alex Berriman"},"license":"MIT","_id":"@alexberriman/vibe@0.1.5","maintainers":[{"name":"alexberriman","email":"alexb@bezz.com.au"}],"homepage":"https://github.com/alexberriman/vibe#readme","bugs":{"url":"https://github.com/alexberriman/vibe/issues"},"bin":{"vibe":"dist/index.js"},"dist":{"shasum":"bf5abe4f7f44afff1ecd8cfaff0ac7a958dd0efe","tarball":"https://registry.npmjs.org/@alexberriman/vibe/-/vibe-0.1.5.tgz","fileCount":3,"integrity":"sha512-SdZgQ0jH8wB+toQ+mI4db0XsDMROVkhkHUQn3AsxFjOnpqBjKLaY2nOAAa5nzolXZQD6rxZBoRC7WX9d5TKp7Q==","signatures":[{"sig":"MEUCIQDhKcNhzumtLdEu6G788zGFZMVyYeo0hEtmS20KwssHRwIgU80DgsMkcdOw/Vv0Ia3UDf3Lgzjj056EEJ/vZgMjvao=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":114538},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"653fbb1d1721130c3ce54a6f75dfe0931dd2522b","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --treeshake --external playwright-core","check":"npm run lint && npm run typecheck && npm run test","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","lint:fix":"eslint src/ --fix","typecheck":"tsc --noEmit","test:watch":"vitest --watch","lint-staged":"lint-staged","format:check":"prettier --check src/","test:coverage":"vitest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexberriman","email":"alexb@bezz.com.au"},"repository":{"url":"git+https://github.com/alexberriman/vibe.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool for detecting critical layout issues on webpages using a headless browser","directories":{},"_nodeVersion":"23.11.1","dependencies":{"pino":"^9.7.0","tslib":"^2.8.1","globby":"^14.1.0","commander":"^14.0.0","ts-results":"^3.3.0","pino-pretty":"^13.0.0","playwright-core":"^1.41.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","husky":"^9.1.7","eslint":"^9.27.0","vitest":"^3.1.3","prettier":"^3.5.3","@eslint/js":"^9.27.0","typescript":"^5.8.3","@types/node":"^22.15.17","lint-staged":"^16.0.0","@vitest/coverage-v8":"^3.1.3","eslint-plugin-sonarjs":"^3.0.2","eslint-plugin-unicorn":"^59.0.1","eslint-config-prettier":"^10.1.5","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe_0.1.5_1747874352787_0.09489172532480938","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@alexberriman/vibe","version":"0.1.7","keywords":["dom","audit","cli","website","layout","visual","bugs","playwright"],"author":{"name":"Alex Berriman"},"license":"MIT","_id":"@alexberriman/vibe@0.1.7","maintainers":[{"name":"alexberriman","email":"alexb@bezz.com.au"}],"homepage":"https://github.com/alexberriman/vibe#readme","bugs":{"url":"https://github.com/alexberriman/vibe/issues"},"bin":{"vibe":"dist/index.js"},"dist":{"shasum":"6cf994672022310ee373c65f87c3cdb3e5f5e257","tarball":"https://registry.npmjs.org/@alexberriman/vibe/-/vibe-0.1.7.tgz","fileCount":3,"integrity":"sha512-vhiqlGS5vmGPfsHpYFSPKEJT0nyNmM228tn0z6kjHJcTk9EcCpw9lAS+bHzFzCJIJDIgPssVpE+Sry4aXyJ0pw==","signatures":[{"sig":"MEUCIQCX+yaIxSdbhyYxLf+aOgoXFdLKFDGF1tsPJd2+9k64lgIgA9Hz99MVLoxzolosRmdBIaG3phxwt6ti3JGJMF5k2MM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146800},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"28d5ad5e217d8651b466341fced6aa8727d308a4","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --treeshake --external playwright-core","check":"npm run lint && npm run typecheck && npm run test","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"npm run check && npm version patch && git push && git push --tags && echo '\\nTo publish to npm, run:\\nnpm publish --access public'","lint:fix":"eslint src/ --fix","typecheck":"tsc --noEmit","test:watch":"vitest --watch","lint-staged":"lint-staged","format:check":"prettier --check src/","test:coverage":"vitest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexberriman","email":"alexb@bezz.com.au"},"repository":{"url":"git+https://github.com/alexberriman/vibe.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool for detecting critical layout issues on webpages using a headless browser","directories":{},"_nodeVersion":"23.11.1","dependencies":{"pino":"^9.7.0","tslib":"^2.8.1","globby":"^14.1.0","openai":"^4.102.0","commander":"^14.0.0","ts-results":"^3.3.0","pino-pretty":"^13.0.0","playwright-core":"^1.41.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","husky":"^9.1.7","eslint":"^9.27.0","vitest":"^3.1.3","prettier":"^3.5.3","@eslint/js":"^9.27.0","typescript":"^5.8.3","@types/node":"^22.15.17","lint-staged":"^16.0.0","@vitest/coverage-v8":"^3.1.3","eslint-plugin-sonarjs":"^3.0.2","eslint-plugin-unicorn":"^59.0.1","eslint-config-prettier":"^10.1.5","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe_0.1.7_1747881933983_0.21923592762945598","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@alexberriman/vibe","version":"0.1.8","keywords":["dom","audit","cli","website","layout","visual","bugs","playwright"],"author":{"name":"Alex Berriman"},"license":"MIT","_id":"@alexberriman/vibe@0.1.8","maintainers":[{"name":"alexberriman","email":"alexb@bezz.com.au"}],"homepage":"https://github.com/alexberriman/vibe#readme","bugs":{"url":"https://github.com/alexberriman/vibe/issues"},"bin":{"vibe":"dist/index.js"},"dist":{"shasum":"8d80642113a19843d68cccf7bc2ee6d8e32145d9","tarball":"https://registry.npmjs.org/@alexberriman/vibe/-/vibe-0.1.8.tgz","fileCount":3,"integrity":"sha512-+ArzO3PJBuK3b+UwCs3bdFIkL+e7OWPASZbEetaXBLa62Z/crS/vUaoZyr39Ww0ivG2rfxbmXjk5m0GsfBWyMQ==","signatures":[{"sig":"MEUCIDiIF8pqKlMBNLT9pqrP3Lg/mQV2NEqj1Wv2U2e4U22TAiEAw/t6Wwn8v1U00aCyvWmWPAPrEbQHRb+2Z2VUjaRsQbo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146829},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"cf52298becc74f08694fa43613d3e4d73a9c8de7","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --treeshake --external playwright-core","check":"npm run lint && npm run typecheck && npm run test","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"npm run check && npm version patch && git push && git push --tags && echo '\\nTo publish to npm, run:\\nnpm publish --access public'","lint:fix":"eslint src/ --fix","typecheck":"tsc --noEmit","test:watch":"vitest --watch","lint-staged":"lint-staged","format:check":"prettier --check src/","test:coverage":"vitest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexberriman","email":"alexb@bezz.com.au"},"repository":{"url":"git+https://github.com/alexberriman/vibe.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool for detecting critical layout issues on webpages using a headless browser","directories":{},"_nodeVersion":"23.11.1","dependencies":{"pino":"^9.7.0","tslib":"^2.8.1","globby":"^14.1.0","openai":"^4.102.0","commander":"^14.0.0","ts-results":"^3.3.0","pino-pretty":"^13.0.0","playwright-core":"^1.41.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","husky":"^9.1.7","eslint":"^9.27.0","vitest":"^3.1.3","prettier":"^3.5.3","@eslint/js":"^9.27.0","typescript":"^5.8.3","@types/node":"^22.15.17","lint-staged":"^16.0.0","@vitest/coverage-v8":"^3.1.3","eslint-plugin-sonarjs":"^3.0.2","eslint-plugin-unicorn":"^59.0.1","eslint-config-prettier":"^10.1.5","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe_0.1.8_1747882298919_0.9174473510319368","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@alexberriman/vibe","version":"0.1.9","keywords":["dom","audit","cli","website","layout","visual","bugs","playwright"],"author":{"name":"Alex Berriman"},"license":"MIT","_id":"@alexberriman/vibe@0.1.9","maintainers":[{"name":"alexberriman","email":"alexb@bezz.com.au"}],"homepage":"https://github.com/alexberriman/vibe#readme","bugs":{"url":"https://github.com/alexberriman/vibe/issues"},"bin":{"vibe":"dist/index.js"},"dist":{"shasum":"65b293dfa026150d2d035643064c10d74c859d16","tarball":"https://registry.npmjs.org/@alexberriman/vibe/-/vibe-0.1.9.tgz","fileCount":3,"integrity":"sha512-moSzCtRngkMBtQxgGGl2lZ0JUnVPSDmVALH4S3g5lQ3sm+kkYvbJ/px0rhrdrCtlwbH8Uo9Yjy0hnRTNGJbd0Q==","signatures":[{"sig":"MEYCIQDAxUBsZeTohO4EFfyPICP61/qrkqB9bcJ4L+7j/vb11wIhAOKaSZLdQhG1DMlWIMCHA7jQriDDcMxFbZngXUKOVAE3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146754},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"fa1c9e26f02442165ca66e79b3e8edcde85586fb","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --treeshake --external playwright-core","check":"npm run lint && npm run typecheck && npm run test","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"npm run check && npm version patch && git push && git push --tags && echo '\\nTo publish to npm, run:\\nnpm publish --access public'","lint:fix":"eslint src/ --fix","typecheck":"tsc --noEmit","test:watch":"vitest --watch","lint-staged":"lint-staged","format:check":"prettier --check src/","test:coverage":"vitest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexberriman","email":"alexb@bezz.com.au"},"repository":{"url":"git+https://github.com/alexberriman/vibe.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool for detecting critical layout issues on webpages using a headless browser","directories":{},"_nodeVersion":"23.11.1","dependencies":{"pino":"^9.7.0","tslib":"^2.8.1","globby":"^14.1.0","openai":"^4.102.0","commander":"^14.0.0","ts-results":"^3.3.0","pino-pretty":"^13.0.0","playwright-core":"^1.41.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","husky":"^9.1.7","eslint":"^9.27.0","vitest":"^3.1.3","prettier":"^3.5.3","@eslint/js":"^9.27.0","typescript":"^5.8.3","@types/node":"^22.15.17","lint-staged":"^16.0.0","@vitest/coverage-v8":"^3.1.3","eslint-plugin-sonarjs":"^3.0.2","eslint-plugin-unicorn":"^59.0.1","eslint-config-prettier":"^10.1.5","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe_0.1.9_1747882522468_0.45597818301658366","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@alexberriman/vibe","version":"0.1.10","keywords":["dom","audit","cli","website","layout","visual","bugs","playwright"],"author":{"name":"Alex Berriman"},"license":"MIT","_id":"@alexberriman/vibe@0.1.10","maintainers":[{"name":"alexberriman","email":"alexb@bezz.com.au"}],"homepage":"https://github.com/alexberriman/vibe#readme","bugs":{"url":"https://github.com/alexberriman/vibe/issues"},"bin":{"vibe":"dist/index.js"},"dist":{"shasum":"e8624c6211e2b4fcc1e7c4d12bfa4cc4bed0451a","tarball":"https://registry.npmjs.org/@alexberriman/vibe/-/vibe-0.1.10.tgz","fileCount":3,"integrity":"sha512-siUBLrGlN4EH19ybkmjMDvPoa4bt+w+Lc4rGV69iYPdqoWAG0XpEDYLqaQVIVU/tzu1+7Ql64KmNMiPpsP1hBw==","signatures":[{"sig":"MEQCICVoGeSWjYt9GmINrh+4Nu1HVhL7TzMpR6AufwWLGWEmAiB3LQRH4TG9qWfrkeFDLbeceHgz77o9JJXV90EeG40lsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146913},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"bda2bc0607889364249ab51bb09d5bdf4f7d9042","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --treeshake --external playwright-core","check":"npm run lint && npm run typecheck && npm run test","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"npm run check && npm version patch && git push && git push --tags && echo '\\nTo publish to npm, run:\\nnpm publish --access public'","lint:fix":"eslint src/ --fix","typecheck":"tsc --noEmit","test:watch":"vitest --watch","lint-staged":"lint-staged","format:check":"prettier --check src/","test:coverage":"vitest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexberriman","email":"alexb@bezz.com.au"},"repository":{"url":"git+https://github.com/alexberriman/vibe.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool for detecting critical layout issues on webpages using a headless browser","directories":{},"_nodeVersion":"23.11.1","dependencies":{"pino":"^9.7.0","tslib":"^2.8.1","globby":"^14.1.0","openai":"^4.102.0","commander":"^14.0.0","ts-results":"^3.3.0","pino-pretty":"^13.0.0","playwright-core":"^1.41.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","husky":"^9.1.7","eslint":"^9.27.0","vitest":"^3.1.3","prettier":"^3.5.3","@eslint/js":"^9.27.0","typescript":"^5.8.3","@types/node":"^22.15.17","lint-staged":"^16.0.0","@vitest/coverage-v8":"^3.1.3","eslint-plugin-sonarjs":"^3.0.2","eslint-plugin-unicorn":"^59.0.1","eslint-config-prettier":"^10.1.5","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe_0.1.10_1747891058406_0.012356553600878506","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@alexberriman/vibe","version":"0.1.11","keywords":["dom","audit","cli","website","layout","visual","bugs","playwright"],"author":{"name":"Alex Berriman"},"license":"MIT","_id":"@alexberriman/vibe@0.1.11","maintainers":[{"name":"alexberriman","email":"alexb@bezz.com.au"}],"homepage":"https://github.com/alexberriman/vibe#readme","bugs":{"url":"https://github.com/alexberriman/vibe/issues"},"bin":{"vibe":"dist/index.js"},"dist":{"shasum":"483326f6cfe1c7a1e4e13cbcbf6e48572975d95f","tarball":"https://registry.npmjs.org/@alexberriman/vibe/-/vibe-0.1.11.tgz","fileCount":3,"integrity":"sha512-yBqHP9fZ+Ba00sT3kgC4W2i6ttyqdfKEnygADkuX7cIHyUxhe80K8yVf1WLz7O9ENVXycPPAApdAqpR5V51GQg==","signatures":[{"sig":"MEYCIQD6su9AEk0KTtaLLayet21vjOKj93HXQDIHRsXy9Yf43AIhAI5pqwUw3McMoTzvDZr0CYNqheP1wyrJBewxcLckrRzI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147471},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"35f1236edb1912d6a83f441c9d5685513bd3a027","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --treeshake --external playwright-core","check":"npm run lint && npm run typecheck && npm run test","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"npm run check && npm version patch && git push && git push --tags && echo '\\nTo publish to npm, run:\\nnpm publish --access public'","lint:fix":"eslint src/ --fix","typecheck":"tsc --noEmit","test:watch":"vitest --watch","lint-staged":"lint-staged","format:check":"prettier --check src/","test:coverage":"vitest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexberriman","email":"alexb@bezz.com.au"},"repository":{"url":"git+https://github.com/alexberriman/vibe.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool for detecting critical layout issues on webpages using a headless browser","directories":{},"_nodeVersion":"23.11.1","dependencies":{"pino":"^9.7.0","tslib":"^2.8.1","globby":"^14.1.0","openai":"^4.102.0","commander":"^14.0.0","ts-results":"^3.3.0","pino-pretty":"^13.0.0","playwright-core":"^1.41.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","husky":"^9.1.7","eslint":"^9.27.0","vitest":"^3.1.3","prettier":"^3.5.3","@eslint/js":"^9.27.0","typescript":"^5.8.3","@types/node":"^22.15.17","lint-staged":"^16.0.0","@vitest/coverage-v8":"^3.1.3","eslint-plugin-sonarjs":"^3.0.2","eslint-plugin-unicorn":"^59.0.1","eslint-config-prettier":"^10.1.5","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe_0.1.11_1747891699706_0.19608490495860642","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@alexberriman/vibe","version":"0.1.12","keywords":["dom","audit","cli","website","layout","visual","bugs","playwright"],"author":{"name":"Alex Berriman"},"license":"MIT","_id":"@alexberriman/vibe@0.1.12","maintainers":[{"name":"alexberriman","email":"alexb@bezz.com.au"}],"homepage":"https://github.com/alexberriman/vibe#readme","bugs":{"url":"https://github.com/alexberriman/vibe/issues"},"bin":{"vibe":"dist/index.js"},"dist":{"shasum":"8672b5bd2272719a1aba8f1e668b21954ebff2e6","tarball":"https://registry.npmjs.org/@alexberriman/vibe/-/vibe-0.1.12.tgz","fileCount":3,"integrity":"sha512-3Jj8M+cHUo0OI/vLZhJbCcixXBNFpUc70RYgqaZ+WOey8FgpszMo337d7PGK+q8xZK0WZ1Zn9qXjFYddSfBi2w==","signatures":[{"sig":"MEUCIG7UuMe9RLtkg8lFX809zqK36Er71NX4/2HqApYhl/JVAiEAukLdnS3yIgiuW9JUswqjM47QSi9K4389liXX3n8AxEM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147105},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"bc536aa0555f220461c5474a2cfb878cbac9e4ce","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --treeshake --external playwright-core","check":"npm run lint && npm run typecheck && npm run test","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"npm run check && npm version patch && git push && git push --tags && echo '\\nTo publish to npm, run:\\nnpm publish --access public'","lint:fix":"eslint src/ --fix","typecheck":"tsc --noEmit","test:watch":"vitest --watch","lint-staged":"lint-staged","format:check":"prettier --check src/","test:coverage":"vitest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexberriman","email":"alexb@bezz.com.au"},"repository":{"url":"git+https://github.com/alexberriman/vibe.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool for detecting critical layout issues on webpages using a headless browser","directories":{},"_nodeVersion":"23.11.1","dependencies":{"pino":"^9.7.0","tslib":"^2.8.1","globby":"^14.1.0","openai":"^4.102.0","commander":"^14.0.0","ts-results":"^3.3.0","pino-pretty":"^13.0.0","playwright-core":"^1.41.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","husky":"^9.1.7","eslint":"^9.27.0","vitest":"^3.1.3","prettier":"^3.5.3","@eslint/js":"^9.27.0","typescript":"^5.8.3","@types/node":"^22.15.17","lint-staged":"^16.0.0","@vitest/coverage-v8":"^3.1.3","eslint-plugin-sonarjs":"^3.0.2","eslint-plugin-unicorn":"^59.0.1","eslint-config-prettier":"^10.1.5","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe_0.1.12_1747892669146_0.295575753655001","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@alexberriman/vibe","version":"0.1.13","keywords":["dom","audit","cli","website","layout","visual","bugs","playwright"],"author":{"name":"Alex Berriman"},"license":"MIT","_id":"@alexberriman/vibe@0.1.13","maintainers":[{"name":"alexberriman","email":"alexb@bezz.com.au"}],"homepage":"https://github.com/alexberriman/vibe#readme","bugs":{"url":"https://github.com/alexberriman/vibe/issues"},"bin":{"vibe":"dist/index.js"},"dist":{"shasum":"bda0886b33df7175d7d25cf8dcd8b6d0b031e9b7","tarball":"https://registry.npmjs.org/@alexberriman/vibe/-/vibe-0.1.13.tgz","fileCount":3,"integrity":"sha512-FGHUt7g9gAHMQBdi7ewk0bFoOq6RaWTT/RoQI2bqfJJEvDFdZCX59N+K2ppHr41e6724D0mqGWrXeraT7wUR7w==","signatures":[{"sig":"MEQCIBtMUkZhl8j8ayOX5rgYtRYEQF8iDLX5OoNwDv/fYmpzAiAkYwR35Et4MUmy+6ehPNrOwdZmKce79RdE0d+d1agm+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147636},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"8a079940c0a5070d76642751c3d4ddc27e9d7a06","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --treeshake --external playwright-core","check":"npm run lint && npm run typecheck && npm run test","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"npm run check && npm version patch && git push && git push --tags && echo '\\nTo publish to npm, run:\\nnpm publish --access public'","lint:fix":"eslint src/ --fix","typecheck":"tsc --noEmit","test:watch":"vitest --watch","lint-staged":"lint-staged","format:check":"prettier --check src/","test:coverage":"vitest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexberriman","email":"alexb@bezz.com.au"},"repository":{"url":"git+https://github.com/alexberriman/vibe.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool for detecting critical layout issues on webpages using a headless browser","directories":{},"_nodeVersion":"23.11.1","dependencies":{"pino":"^9.7.0","tslib":"^2.8.1","globby":"^14.1.0","openai":"^4.102.0","commander":"^14.0.0","ts-results":"^3.3.0","pino-pretty":"^13.0.0","playwright-core":"^1.41.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","husky":"^9.1.7","eslint":"^9.27.0","vitest":"^3.1.3","prettier":"^3.5.3","@eslint/js":"^9.27.0","typescript":"^5.8.3","@types/node":"^22.15.17","lint-staged":"^16.0.0","@vitest/coverage-v8":"^3.1.3","eslint-plugin-sonarjs":"^3.0.2","eslint-plugin-unicorn":"^59.0.1","eslint-config-prettier":"^10.1.5","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe_0.1.13_1747893010709_0.8481075856673204","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@alexberriman/vibe","version":"0.1.14","keywords":["dom","audit","cli","website","layout","visual","bugs","playwright"],"author":{"name":"Alex Berriman"},"license":"MIT","_id":"@alexberriman/vibe@0.1.14","maintainers":[{"name":"alexberriman","email":"alexb@bezz.com.au"}],"homepage":"https://github.com/alexberriman/vibe#readme","bugs":{"url":"https://github.com/alexberriman/vibe/issues"},"bin":{"vibe":"dist/index.js"},"dist":{"shasum":"af7d90f94e91a758aa31e7d7e785f9f02a0439bf","tarball":"https://registry.npmjs.org/@alexberriman/vibe/-/vibe-0.1.14.tgz","fileCount":3,"integrity":"sha512-L+jmNTu6RkkFgwcJf53g1ehL+gW5XAI7WxfV6rPtgjjM717RsfnQo6wMAO2CxW1gzTvGW5Z7TeJvEJ5S+gbu2A==","signatures":[{"sig":"MEUCIQCaX8L7Rdq51YawBnojQ4+CROk1P6X1hk4x08888chF7AIga0rUcjVdyPBcYPgpcSfoX1EWh1wJAVKbd+HqSIFlg5w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":148304},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"c6576faf1004caf03c0bf909d58e7e74ee1822b1","scripts":{"dev":"tsx watch src/index.ts","lint":"eslint src/","test":"vitest run","build":"tsup src/index.ts --format esm --treeshake --external playwright-core","check":"npm run lint && npm run typecheck && npm run test","format":"prettier --write \"src/**/*.ts\"","prepare":"husky","release":"npm run check && npm version patch && git push && git push --tags && echo '\\nTo publish to npm, run:\\nnpm publish --access public'","lint:fix":"eslint src/ --fix","typecheck":"tsc --noEmit","test:watch":"vitest --watch","lint-staged":"lint-staged","format:check":"prettier --check src/","test:coverage":"vitest --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"alexberriman","email":"alexb@bezz.com.au"},"repository":{"url":"git+https://github.com/alexberriman/vibe.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI tool for detecting critical layout issues on webpages using a headless browser","directories":{},"_nodeVersion":"23.11.1","dependencies":{"pino":"^9.7.0","tslib":"^2.8.1","globby":"^14.1.0","openai":"^4.102.0","commander":"^14.0.0","ts-results":"^3.3.0","pino-pretty":"^13.0.0","playwright-core":"^1.41.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","husky":"^9.1.7","eslint":"^9.27.0","vitest":"^3.1.3","prettier":"^3.5.3","@eslint/js":"^9.27.0","typescript":"^5.8.3","@types/node":"^22.15.17","lint-staged":"^16.0.0","@vitest/coverage-v8":"^3.1.3","eslint-plugin-sonarjs":"^3.0.2","eslint-plugin-unicorn":"^59.0.1","eslint-config-prettier":"^10.1.5","@typescript-eslint/parser":"^8.32.1","@typescript-eslint/eslint-plugin":"^8.32.1"},"_npmOperationalInternal":{"tmp":"tmp/vibe_0.1.14_1747893871781_0.8505785645015489","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@alexberriman/vibe","version":"0.1.15","description":"CLI tool for detecting critical layout issues on webpages using a headless browser","main":"dist/index.js","types":"dist/index.d.ts","bin":{"vibe":"dist/index.js"},"type":"module","engines":{"node":">=18.0.0"},"scripts":{"dev":"tsx watch src/index.ts","build":"tsup src/index.ts --format esm --treeshake --external playwright-core","test":"vitest run","test:watch":"vitest --watch","test:coverage":"vitest --coverage","prepare":"husky","lint":"eslint src/","lint:fix":"eslint src/ --fix","format":"prettier --write \"src/**/*.ts\"","format:check":"prettier --check src/","typecheck":"tsc --noEmit","check":"npm run lint && npm run typecheck && npm run test","lint-staged":"lint-staged","prepublishOnly":"npm run build","release":"npm run check && npm version patch && git push && git push --tags && echo '\\nTo publish to npm, run:\\nnpm publish --access public'"},"repository":{"type":"git","url":"git+https://github.com/alexberriman/vibe.git"},"author":{"name":"Alex Berriman"},"license":"MIT","bugs":{"url":"https://github.com/alexberriman/vibe/issues"},"homepage":"https://github.com/alexberriman/vibe#readme","dependencies":{"commander":"^14.0.0","globby":"^14.1.0","openai":"^4.102.0","pino":"^9.7.0","pino-pretty":"^13.0.0","playwright-core":"^1.41.0","prompts":"^2.4.2","simple-git":"^3.27.0","ts-results":"^3.3.0","tslib":"^2.8.1"},"devDependencies":{"@eslint/js":"^9.27.0","@types/node":"^22.15.17","@types/prompts":"^2.4.9","@typescript-eslint/eslint-plugin":"^8.32.1","@typescript-eslint/parser":"^8.32.1","@vitest/coverage-v8":"^3.1.3","eslint":"^9.27.0","eslint-config-prettier":"^10.1.5","eslint-plugin-sonarjs":"^3.0.2","eslint-plugin-unicorn":"^59.0.1","husky":"^9.1.7","lint-staged":"^16.0.0","prettier":"^3.5.3","tsup":"^8.0.0","tsx":"^4.7.0","typescript":"^5.8.3","vitest":"^3.1.3"},"keywords":["dom","audit","cli","website","layout","visual","bugs","playwright"],"_id":"@alexberriman/vibe@0.1.15","gitHead":"aa6acbbe4d07ba6d11dd505b659800a3dd52b772","_nodeVersion":"24.1.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-grrIkzzK7RJawveHFWl3rOntmzBScRPjlG6ZPR6GYJjMs+IYaPGM50c0u5Nnp321cyMQB+dPukXMPgtlRaCcjg==","shasum":"a46ecca7b2463664b154fbd98e9f7399fb816e6f","tarball":"https://registry.npmjs.org/@alexberriman/vibe/-/vibe-0.1.15.tgz","fileCount":3,"unpackedSize":203740,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAukk32ezpvCCpvsM+wd95wLaMq798YGdthgFYGAP7KEAiEAisfZpnup11lhLvPGNCOoWhUURL1slUPF8ZV6uiuWXt0="}]},"_npmUser":{"name":"alexberriman","email":"alexb@bezz.com.au"},"directories":{},"maintainers":[{"name":"alexberriman","email":"alexb@bezz.com.au"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vibe_0.1.15_1747972552222_0.909177040928256"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-22T00:31:38.113Z","modified":"2025-05-23T03:55:52.639Z","0.1.3":"2025-05-22T00:31:38.386Z","0.1.5":"2025-05-22T00:39:12.943Z","0.1.7":"2025-05-22T02:45:34.196Z","0.1.8":"2025-05-22T02:51:39.121Z","0.1.9":"2025-05-22T02:55:22.676Z","0.1.10":"2025-05-22T05:17:38.596Z","0.1.11":"2025-05-22T05:28:19.862Z","0.1.12":"2025-05-22T05:44:29.330Z","0.1.13":"2025-05-22T05:50:10.895Z","0.1.14":"2025-05-22T06:04:31.983Z","0.1.15":"2025-05-23T03:55:52.432Z"},"bugs":{"url":"https://github.com/alexberriman/vibe/issues"},"author":{"name":"Alex Berriman"},"license":"MIT","homepage":"https://github.com/alexberriman/vibe#readme","keywords":["dom","audit","cli","website","layout","visual","bugs","playwright"],"repository":{"type":"git","url":"git+https://github.com/alexberriman/vibe.git"},"description":"CLI tool for detecting critical layout issues on webpages using a headless browser","maintainers":[{"name":"alexberriman","email":"alexb@bezz.com.au"}],"readme":"<div align=\"center\">\n\n# Vibe ⚡\n\nA collection of CLI tools to enhance my development workflow.\n\n</div>\n\n## 🚀 Quick Start\n\n```bash\n# Use without installation\nnpx @alexberriman/vibe [command] [options]\n\n# Or install globally for frequent use\nnpm install -g @alexberriman/vibe\nvibe [command] [options]\n```\n\n## 📋 Commands\n\n| Command                               | Category             | Description                                            |\n| ------------------------------------- | -------------------- | ------------------------------------------------------ |\n| [`scaffold`](#scaffold)               | 🚀 Project Setup     | Create new projects from pre-configured templates      |\n| [`storybook-urls`](#storybook-urls)   | 📱 Route Discovery   | Generate JSON arrays of Storybook story URLs           |\n| [`react-routes`](#react-routes)       | 📱 Route Discovery   | Discover all routes in React applications              |\n| [`nextjs-routes`](#nextjs-routes)     | 📱 Route Discovery   | Analyze Next.js apps and extract page/API routes       |\n| [`server-run`](#server-run)           | 🖥️ Server Management | Orchestrate server lifecycle with automated testing    |\n| [`screenshot`](#screenshot)           | 🎨 Visual QA         | Capture high-quality screenshots with device emulation |\n| [`dom-audit`](#dom-audit)             | 🎨 Visual QA         | Detect visual and accessibility issues                 |\n| [`design-feedback`](#design-feedback) | 🎨 Visual QA         | Get AI-powered design feedback and suggestions         |\n| [`tmux`](#tmux)                       | 🖥️ Server Management | Manage tmux sessions with write, read, and ensure     |\n| [`openai`](#openai)                   | 🤖 AI Assistance     | Prompt OpenAI/ChatGPT with structured JSON responses   |\n\n## 🔥 Commands\n\n### 🚀 Project Setup\n\n#### `scaffold`\nCreate new projects from pre-configured templates with intelligent prompts and automatic setup.\n\n```bash\n# Interactive mode - choose template and configure project\nnpx @alexberriman/vibe scaffold\n\n# Quick React project with defaults\nnpx @alexberriman/vibe scaffold --template vibe-react --output my-app --defaults\n\n# Non-interactive with all options\nnpx @alexberriman/vibe scaffold \\\n  --template vibe-react \\\n  --output ./my-startup \\\n  --project-name \"my-startup\" \\\n  --description \"The next big thing in SaaS\" \\\n  --author-name \"John Doe\" \\\n  --license MIT\n\n# Preview mode (dry run)\nnpx @alexberriman/vibe scaffold --template vibe-react --dry-run\n```\n\n**Available Templates:**\n- **vibe-react** - Modern React application with TypeScript, Vite, Tailwind CSS, Storybook, testing, and comprehensive tooling\n\n**Features:**\n- ⚡ Interactive template selection with descriptions\n- 📝 Smart prompts with validation (project name, author, license)\n- 🔄 Automatic file processing with placeholder replacement\n- 📦 Dependency installation and git repository initialization  \n- 🎯 Non-interactive mode for CI/automation\n- 🔍 Dry run mode for preview without execution\n- 🔧 Template development support with configuration system\n\n> 📚 **[Full Documentation](src/commands/scaffold/README.md)** - Complete guide with detailed examples and template creation.\n\n### 📱 Route Discovery\n\n#### `storybook-urls`\nGenerate JSON arrays of Storybook story URLs for automated testing and quality assurance.\n\n```bash\n# Scan current directory for stories\nnpx @alexberriman/vibe storybook-urls\n\n# Scan custom path with specific port\nnpx @alexberriman/vibe storybook-urls --path ./src --port 6006\n\n# Generate iframe URLs and filter by pattern\nnpx @alexberriman/vibe storybook-urls --frame-url --filter \"Button*\"\n\n# Save to file with pretty formatting\nnpx @alexberriman/vibe storybook-urls --output stories.json --pretty\n```\n\n> 📚 **[Full Documentation](src/commands/storybook-urls/README.md)** - Complete guide with all options and examples.\n\n#### `react-routes`\nDiscover all routes in your React application and generate testable URLs.\n\n```bash\n# Scan React app routes\nnpx @alexberriman/vibe react-routes\n\n# Custom port and output file\nnpx @alexberriman/vibe react-routes --port 5173 --output routes.json\n\n# Filter routes by pattern\nnpx @alexberriman/vibe react-routes --filter \"/admin*\" --pretty\n```\n\n> 📚 **[Full Documentation](src/commands/react-routes/README.md)** - Complete guide with all options and examples.\n\n#### `nextjs-routes`\nAnalyze Next.js applications and extract both page and API routes.\n\n```bash\n# Scan all Next.js routes\nnpx @alexberriman/vibe nextjs-routes\n\n# Filter by route type\nnpx @alexberriman/vibe nextjs-routes --type page\nnpx @alexberriman/vibe nextjs-routes --type api\n\n# Custom Next.js port\nnpx @alexberriman/vibe nextjs-routes --port 3000 --pretty\n```\n\n> 📚 **[Full Documentation](src/commands/nextjs-routes/README.md)** - Complete guide with all options and examples.\n\n### 🖥️ Server Management\n\n#### `server-run`\nOrchestrate server lifecycle: start, wait for readiness, execute commands, and cleanup.\n\n```bash\n# Start server and run tests\nnpx @alexberriman/vibe server-run \\\n  --command \"npm run dev\" \\\n  --port 3000 \\\n  --run-command \"npm test\"\n\n# Custom environment and keep alive\nnpx @alexberriman/vibe server-run \\\n  --command \"npm start\" \\\n  --url \"http://localhost:8080/health\" \\\n  --env \"NODE_ENV=test,PORT=8080\" \\\n  --keep-alive\n\n# With custom error and success messages\nnpx @alexberriman/vibe server-run \\\n  --command \"npm run dev\" \\\n  --port 3000 \\\n  --run-command \"npm run test:e2e\" \\\n  --error-message \"❌ Tests failed! Run 'npm run test:e2e:debug' for details.\" \\\n  --success-message \"✅ All tests passed!\"\n```\n\n> 📚 **[Full Documentation](src/commands/server-run/README.md)** - Complete guide with all options and examples.\n\n#### `tmux`\nPowerful tmux session management with three subcommands: write, read, and ensure.\n\n```bash\n# Send text to tmux session\nnpx @alexberriman/vibe tmux write \"npm start\" --session dev\n\n# Send special keys\nnpx @alexberriman/vibe tmux write --keys \"ctrl-c,enter\" --session dev\n\n# Read session content\nnpx @alexberriman/vibe tmux read --session dev --lines 100\n\n# Ensure session exists (idempotent)\nnpx @alexberriman/vibe tmux ensure dev --directory ~/project --command \"npm run dev\"\n```\n\n> 📚 **[Full Documentation](src/commands/tmux/README.md)** - Complete guide with all subcommands and examples.\n\n### 🎨 Visual Quality Assurance\n\n#### `screenshot`\nCapture high-quality screenshots of web pages with device emulation.\n\n```bash\n# Basic screenshot\nnpx @alexberriman/vibe screenshot https://example.com\n\n# Custom output and mobile viewport\nnpx @alexberriman/vibe screenshot https://example.com -o ./screenshots/homepage.png -v mobile\n\n# Advanced screenshot with multiple options\nnpx @alexberriman/vibe screenshot https://example.com \\\n  -v tablet \\\n  --format jpeg \\\n  --quality 85 \\\n  -w 2 \\\n  --wait-for \"#main-content\"\n```\n\n> **Powered by:** [@alexberriman/screenshotter](https://www.npmjs.com/package/@alexberriman/screenshotter) - See package docs for full options and advanced usage.\n\n#### `dom-audit`\nDetect visual and accessibility issues in your web applications.\n\n```bash\n# Basic audit\nnpx @alexberriman/vibe dom-audit --url https://example.com\n\n# Mobile viewport with custom output\nnpx @alexberriman/vibe dom-audit \\\n  --url https://example.com \\\n  --viewport mobile \\\n  --save ./reports/audit.json\n\n# Custom viewport size\nnpx @alexberriman/vibe dom-audit --url https://example.com --viewport 1366x768\n```\n\n> **Powered by:** [@alexberriman/visual-dom-auditor](https://www.npmjs.com/package/@alexberriman/visual-dom-auditor) - See package docs for full options and advanced usage.\n\n#### `design-feedback`\nGet AI-powered design feedback and suggestions for UI screenshots.\n\n```bash\n# Basic analysis\nnpx @alexberriman/vibe design-feedback https://example.com\n\n# Mobile viewport analysis\nnpx @alexberriman/vibe design-feedback https://example.com --viewport mobile\n\n# Custom viewport with JSON output\nnpx @alexberriman/vibe design-feedback https://example.com \\\n  --viewport 1024x768 \\\n  --output screenshot.png \\\n  --format json\n```\n\n> **Powered by:** [@alexberriman/openai-designer-feedback](https://www.npmjs.com/package/@alexberriman/openai-designer-feedback) - See package docs for full options and advanced usage.\n\n### 🤖 AI Assistance\n\n#### `openai`\nPrompt OpenAI/ChatGPT with support for system prompts, structured JSON responses, and file inputs.\n\n```bash\n# Simple prompt\nnpx @alexberriman/vibe openai --user \"Explain quantum computing in simple terms\"\n\n# With system prompt and different model\nnpx @alexberriman/vibe openai \\\n  --system \"You are a helpful coding assistant\" \\\n  --user \"Write a Python function to reverse a string\" \\\n  --model gpt-4\n\n# Structured JSON response\nnpx @alexberriman/vibe openai \\\n  --user \"Analyze this text sentiment\" \\\n  --json-schema '{\"type\":\"object\",\"properties\":{\"sentiment\":{\"type\":\"string\"},\"confidence\":{\"type\":\"number\"}}}'\n\n# File-based prompts\nnpx @alexberriman/vibe openai --system-file ./system-prompt.txt --user-file ./user-prompt.txt\n```\n\n> 📚 **[Full Documentation](src/commands/openai/README.md)** - Complete guide with all options and examples.\n\n## 🛠️ Common Patterns\n\n### Testing Workflow\n\n```bash\n# 1. Start your app server\nnpx @alexberriman/vibe server-run --command \"npm run dev\" --port 3000 --run-command \"\n  # 2. Generate all testable URLs\n  npx @alexberriman/vibe react-routes --output routes.json &&\n  npx @alexberriman/vibe storybook-urls --output stories.json &&\n\n  # 3. Run visual tests\n  npx @alexberriman/vibe dom-audit --url-list routes.json\n\"\n```\n\n### Quality Assurance Pipeline\n\n```bash\n# Generate routes and audit them\nnpx @alexberriman/vibe nextjs-routes --pretty > routes.json\ncat routes.json | jq -r '.[]' | while read url; do\n  npx @alexberriman/vibe screenshot \"$url\" -o \"screenshots/$(basename $url).png\"\n  npx @alexberriman/vibe dom-audit --url \"$url\"\ndone\n```\n\n## 🎯 Key Features\n\n- **🔍 Smart Discovery**: Automatically detect and extract routes from popular frameworks\n- **⚡ Zero Config**: Works out of the box with sensible defaults\n- **🔧 Flexible Output**: JSON arrays, pretty printing, and file output options\n- **🚀 Fast Execution**: Optimized for CI/CD pipelines and large projects\n- **🎨 Visual Testing**: Integrated screenshot and design feedback capabilities\n- **🔄 Server Orchestration**: Reliable server lifecycle management\n\n## 📋 Global Options\n\nMost commands support these common options:\n\n- `--output <file>` (`-o`): Save output to file\n- `--pretty`: Pretty print JSON output\n- `--filter <pattern>` (`-f`): Filter results by pattern\n- `--help`: Show command-specific help\n\n## 🧠 Claude Guidelines\n\nThis project includes a collection of modular coding guidelines that can be combined to create project-specific AI assistant configurations. These guidelines ensure consistent, high-quality code generation across different technology stacks.\n\n> 📚 **[Browse Guidelines](claude/md/README.md)** - Select and combine guidelines for your project's needs.\n\n### 📋 Claude Prompts\n\nIn addition to guidelines, this project provides specialized prompts for handling specific development tasks:\n\n> 📚 **[Browse Prompts](claude/prompts/README.md)** - Task-specific prompts for error resolution and development workflow.\n\n","readmeFilename":"README.md"}