{"_id":"@abdo-el-mobayad/claude-code-fast-permission-hook","_rev":"11-2b8c71cca2237714e83d197a1e27080e","name":"@abdo-el-mobayad/claude-code-fast-permission-hook","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.0":{"name":"@abdo-el-mobayad/claude-code-fast-permission-hook","version":"0.1.0","keywords":["claude","claude-code","hooks","auto-approve","permission","ai","automation"],"author":{"name":"ClaudeFast"},"license":"MIT","_id":"@abdo-el-mobayad/claude-code-fast-permission-hook@0.1.0","maintainers":[{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"}],"homepage":"https://github.com/claudefast/permission-hook#readme","bugs":{"url":"https://github.com/claudefast/permission-hook/issues"},"bin":{"cf-approve":"bin/cf-approve.js"},"dist":{"shasum":"af8440a9ec2f1225018d1f2279c5b7a1375df5ee","tarball":"https://registry.npmjs.org/@abdo-el-mobayad/claude-code-fast-permission-hook/-/claude-code-fast-permission-hook-0.1.0.tgz","fileCount":35,"integrity":"sha512-4/AKQQw6i5RbVBgkfz7q+sda37TRu2WEbiHsQOLlEIZ7ekWgk6jyteqZit/vNW2MjylR+RLm7N4eIVRVpTs75A==","signatures":[{"sig":"MEUCIQDIKSj6J50rOBsEQjQV6TJMOINOaFLvZwPDBU7xWezpUwIgDMOxzhs0klbsaEuJo/anzKVAsLQQ3wNQr4Pp+gTzaio=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73877},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"90b7524b71a5153f077e67d9384fa12ef1dd6b21","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"},"repository":{"url":"git+https://github.com/claudefast/permission-hook.git","type":"git"},"_npmVersion":"11.5.1","description":"Intelligent auto-approval hook for Claude Code using PermissionRequest","directories":{},"_nodeVersion":"22.17.1","dependencies":{"zod":"^3.23.8","pino":"^9.0.0","chalk":"^5.3.0","openai":"^4.52.0","inquirer":"^9.2.23","commander":"^12.1.0","pino-pretty":"^11.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","vitest":"^1.6.0","typescript":"^5.4.5","@types/node":"^20.14.0","@types/inquirer":"^9.0.7","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-fast-permission-hook_0.1.0_1763984166038_0.04204603027951692","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@abdo-el-mobayad/claude-code-fast-permission-hook","version":"0.1.1","keywords":["claude","claude-code","hooks","auto-approve","permission","ai","automation"],"author":{"name":"ClaudeFast"},"license":"MIT","_id":"@abdo-el-mobayad/claude-code-fast-permission-hook@0.1.1","maintainers":[{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"}],"homepage":"https://github.com/claudefast/permission-hook#readme","bugs":{"url":"https://github.com/claudefast/permission-hook/issues"},"bin":{"cf-approve":"bin/cf-approve.js"},"dist":{"shasum":"e31670ca1b230ba7824f8f6946e430ae9637bd65","tarball":"https://registry.npmjs.org/@abdo-el-mobayad/claude-code-fast-permission-hook/-/claude-code-fast-permission-hook-0.1.1.tgz","fileCount":35,"integrity":"sha512-lcmMBXwqloaMkP91rQROr75JQnZKx+N3/za4HgBGenAjpERvrux6gGYxOXIZztavKoKwkz0070RJmhauLm9acw==","signatures":[{"sig":"MEYCIQCTKwyVOLbJWu6qMg3UPWvWpkkq29K31b48luL+zZ6TUgIhAOjzaapABAZJjNVtMMiylN2ihxqp38RyghvgP1v55lMN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74369},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"c694fd5d5afd60aba5e26a78e554cea662d2a5a2","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"},"repository":{"url":"git+https://github.com/claudefast/permission-hook.git","type":"git"},"_npmVersion":"11.5.1","description":"Intelligent auto-approval hook for Claude Code using PermissionRequest","directories":{},"_nodeVersion":"22.17.1","dependencies":{"zod":"^3.23.8","pino":"^9.0.0","chalk":"^5.3.0","openai":"^4.52.0","inquirer":"^9.2.23","commander":"^12.1.0","pino-pretty":"^11.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","vitest":"^1.6.0","typescript":"^5.4.5","@types/node":"^20.14.0","@types/inquirer":"^9.0.7","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-fast-permission-hook_0.1.1_1763985881793_0.28392948875886614","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@abdo-el-mobayad/claude-code-fast-permission-hook","version":"0.1.2","keywords":["claude","claude-code","hooks","auto-approve","permission","ai","automation"],"author":{"name":"ClaudeFast"},"license":"MIT","_id":"@abdo-el-mobayad/claude-code-fast-permission-hook@0.1.2","maintainers":[{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"}],"homepage":"https://github.com/claudefast/permission-hook#readme","bugs":{"url":"https://github.com/claudefast/permission-hook/issues"},"bin":{"cf-approve":"bin/cf-approve.js"},"dist":{"shasum":"d9b3d589f787ab25edbab2685c2d734f20c5b172","tarball":"https://registry.npmjs.org/@abdo-el-mobayad/claude-code-fast-permission-hook/-/claude-code-fast-permission-hook-0.1.2.tgz","fileCount":35,"integrity":"sha512-kRzyZngxLzKzlKmtbVQu+N+jQAkeI4DJyZ1sT0wiKiUq3IzzytCMdmUdWFy4UlQojQIgaC21H8pitzXGJaNMTg==","signatures":[{"sig":"MEYCIQC0GcOOIKRCDToY3Srn9faIwpE6HrT0MeoU4DPJpxZN9wIhAL3Rg8GuRkIZNrhDrGXXmo8ufWpCplUI0JjcgKZ0X2VZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78610},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"c694fd5d5afd60aba5e26a78e554cea662d2a5a2","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"},"repository":{"url":"git+https://github.com/claudefast/permission-hook.git","type":"git"},"_npmVersion":"11.5.1","description":"Intelligent auto-approval hook for Claude Code using PermissionRequest","directories":{},"_nodeVersion":"22.17.1","dependencies":{"zod":"^3.23.8","pino":"^9.0.0","chalk":"^5.3.0","openai":"^4.52.0","inquirer":"^9.2.23","commander":"^12.1.0","pino-pretty":"^11.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","vitest":"^1.6.0","typescript":"^5.4.5","@types/node":"^20.14.0","@types/inquirer":"^9.0.7","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-fast-permission-hook_0.1.2_1763986786240_0.4030304991605089","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@abdo-el-mobayad/claude-code-fast-permission-hook","version":"0.1.3","keywords":["claude","claude-code","hooks","auto-approve","permission","ai","automation"],"author":{"name":"ClaudeFast"},"license":"MIT","_id":"@abdo-el-mobayad/claude-code-fast-permission-hook@0.1.3","maintainers":[{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"}],"homepage":"https://github.com/claudefast/permission-hook#readme","bugs":{"url":"https://github.com/claudefast/permission-hook/issues"},"bin":{"cf-approve":"bin/cf-approve.js"},"dist":{"shasum":"7cff86d9ec7e8b8fb2a42673159d62bd72d0f4f1","tarball":"https://registry.npmjs.org/@abdo-el-mobayad/claude-code-fast-permission-hook/-/claude-code-fast-permission-hook-0.1.3.tgz","fileCount":35,"integrity":"sha512-84JsH8QaN5I+2qs/qaAKHky8ej/3jvjQx2XapJ5aG4C5PIjuuiSJKwZjuwJMzqXlqNwr12P0BFDnQ8RRPszoGQ==","signatures":[{"sig":"MEUCIQCL5TV8kCJ9kz1OcvRup1O87n6LIlelt9+oNW/HHdjYIwIgSNQm2E+x4OI/+pgF77jc6sBOPMNJk/WKfj5KE/5fpDw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78622},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"c694fd5d5afd60aba5e26a78e554cea662d2a5a2","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"},"repository":{"url":"git+https://github.com/claudefast/permission-hook.git","type":"git"},"_npmVersion":"11.5.1","description":"Intelligent auto-approval hook for Claude Code using PermissionRequest","directories":{},"_nodeVersion":"22.17.1","dependencies":{"zod":"^3.23.8","pino":"^9.0.0","chalk":"^5.3.0","openai":"^4.52.0","inquirer":"^9.2.23","commander":"^12.1.0","pino-pretty":"^11.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","vitest":"^1.6.0","typescript":"^5.4.5","@types/node":"^20.14.0","@types/inquirer":"^9.0.7","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-fast-permission-hook_0.1.3_1763987009835_0.3362320436077084","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@abdo-el-mobayad/claude-code-fast-permission-hook","version":"0.1.4","keywords":["claude","claude-code","hooks","auto-approve","permission","ai","automation"],"author":{"name":"ClaudeFast"},"license":"MIT","_id":"@abdo-el-mobayad/claude-code-fast-permission-hook@0.1.4","maintainers":[{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"}],"homepage":"https://github.com/claudefast/permission-hook#readme","bugs":{"url":"https://github.com/claudefast/permission-hook/issues"},"bin":{"cf-approve":"bin/cf-approve.js"},"dist":{"shasum":"9e25ba39da11b5a03b716149f742aa92622b8f09","tarball":"https://registry.npmjs.org/@abdo-el-mobayad/claude-code-fast-permission-hook/-/claude-code-fast-permission-hook-0.1.4.tgz","fileCount":35,"integrity":"sha512-IeSyQ0zRYeOMluMNqdSu8RfqqCz3KjZoz5ItfDY2Sr0eJXgXuhGNJozei8Do5D4nMp122Rks+QvTyTGn+C98+Q==","signatures":[{"sig":"MEYCIQCyLUZs23ujCNebVADtANn52Zf0pwhsrhPRssqBVgRtSQIhAIdm2wYuHRF6zpOuTk24bkzaVVIied5kZZPieqwtqvrb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81736},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"c694fd5d5afd60aba5e26a78e554cea662d2a5a2","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"},"repository":{"url":"git+https://github.com/claudefast/permission-hook.git","type":"git"},"_npmVersion":"11.5.1","description":"Intelligent auto-approval hook for Claude Code using PermissionRequest","directories":{},"_nodeVersion":"22.17.1","dependencies":{"zod":"^3.23.8","pino":"^9.0.0","chalk":"^5.3.0","openai":"^4.52.0","inquirer":"^9.2.23","commander":"^12.1.0","pino-pretty":"^11.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","vitest":"^1.6.0","typescript":"^5.4.5","@types/node":"^20.14.0","@types/inquirer":"^9.0.7","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-fast-permission-hook_0.1.4_1763987525367_0.2898690695109112","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@abdo-el-mobayad/claude-code-fast-permission-hook","version":"0.1.5","keywords":["claude","claude-code","hooks","auto-approve","permission","ai","automation"],"author":{"name":"ClaudeFast"},"license":"MIT","_id":"@abdo-el-mobayad/claude-code-fast-permission-hook@0.1.5","maintainers":[{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"}],"homepage":"https://github.com/claudefast/permission-hook#readme","bugs":{"url":"https://github.com/claudefast/permission-hook/issues"},"bin":{"cf-approve":"bin/cf-approve.js"},"dist":{"shasum":"1e5d03a70be367838c5c4396db3ca4942df77e29","tarball":"https://registry.npmjs.org/@abdo-el-mobayad/claude-code-fast-permission-hook/-/claude-code-fast-permission-hook-0.1.5.tgz","fileCount":35,"integrity":"sha512-vTDmW73kE619iYfK6fbUy2VVn4+JzTOI7V9bCwtIbMqqKN/W/j7EtCgPJ/FyGHLZSiM/Mw5aWfeTFi5HaeiXMw==","signatures":[{"sig":"MEUCIE1TI6b/0TifaI00RqSnjF0EYwJUvexRloqU6LGiiaIUAiEAlXoMg7mSzbVjI/z3KY0D86n/agJ2Y70AHiOemEpi6lw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79246},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"59e32083e4ab72f038a13171dd34aa6cabf950ed","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"},"repository":{"url":"git+https://github.com/claudefast/permission-hook.git","type":"git"},"_npmVersion":"11.5.1","description":"Intelligent auto-approval hook for Claude Code using PermissionRequest","directories":{},"_nodeVersion":"22.17.1","dependencies":{"zod":"^3.23.8","pino":"^9.0.0","chalk":"^5.3.0","openai":"^4.52.0","inquirer":"^9.2.23","commander":"^12.1.0","pino-pretty":"^11.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","vitest":"^1.6.0","typescript":"^5.4.5","@types/node":"^20.14.0","@types/inquirer":"^9.0.7","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-fast-permission-hook_0.1.5_1763988333515_0.6301718215436192","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@abdo-el-mobayad/claude-code-fast-permission-hook","version":"0.1.6","keywords":["claude","claude-code","hooks","auto-approve","permission","ai","automation"],"author":{"name":"ClaudeFast"},"license":"MIT","_id":"@abdo-el-mobayad/claude-code-fast-permission-hook@0.1.6","maintainers":[{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"}],"homepage":"https://github.com/claudefast/permission-hook#readme","bugs":{"url":"https://github.com/claudefast/permission-hook/issues"},"bin":{"cf-approve":"bin/cf-approve.js"},"dist":{"shasum":"e70e0ed6e475306245946090a6e18c2c0fc9e9e5","tarball":"https://registry.npmjs.org/@abdo-el-mobayad/claude-code-fast-permission-hook/-/claude-code-fast-permission-hook-0.1.6.tgz","fileCount":35,"integrity":"sha512-cmoXYMKtAjqYj1RgXA0OJ/5ciNT3heAVKgeq3WCyyD1Q36SwaT2D4BrHhfe6W7quP2Z/cqutXykMBdMXyqJNVg==","signatures":[{"sig":"MEUCIBdYUek5um4DpnLRFAiT8gm0Fi7AIUJjx2Iy+XD24NznAiEAnUR5qSanrC7dXgDQT5RPLqq83cC8Y2d9vO1FGcP//p0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81881},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"12efca6f4e0c42342246216587bc11037d3bf1a2","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"},"repository":{"url":"git+https://github.com/claudefast/permission-hook.git","type":"git"},"_npmVersion":"11.5.1","description":"Intelligent auto-approval hook for Claude Code using PermissionRequest","directories":{},"_nodeVersion":"22.17.1","dependencies":{"zod":"^3.23.8","pino":"^9.0.0","chalk":"^5.3.0","openai":"^4.52.0","inquirer":"^9.2.23","commander":"^12.1.0","pino-pretty":"^11.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","vitest":"^1.6.0","typescript":"^5.4.5","@types/node":"^20.14.0","@types/inquirer":"^9.0.7","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-fast-permission-hook_0.1.6_1764266546423_0.5189986948598349","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@abdo-el-mobayad/claude-code-fast-permission-hook","version":"0.1.7","keywords":["claude","claude-code","hooks","auto-approve","permission","ai","automation"],"author":{"name":"ClaudeFast"},"license":"MIT","_id":"@abdo-el-mobayad/claude-code-fast-permission-hook@0.1.7","maintainers":[{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"}],"homepage":"https://github.com/claudefast/permission-hook#readme","bugs":{"url":"https://github.com/claudefast/permission-hook/issues"},"bin":{"cf-approve":"bin/cf-approve.js"},"dist":{"shasum":"599fbfbc42fd9bb5c5a7ce93a8d838f6e5b0884c","tarball":"https://registry.npmjs.org/@abdo-el-mobayad/claude-code-fast-permission-hook/-/claude-code-fast-permission-hook-0.1.7.tgz","fileCount":36,"integrity":"sha512-EWzKsh6VN3HozacqxX+8NkcDhnGNOoSe9x578z3RwHhkKdycYE/q9zvLcINJjmhuWa30jBq03N+DyV6bRjvyLA==","signatures":[{"sig":"MEYCIQCR6gvWrNT+zshnpOnogiOMHLsDPCRGueQRRTx5xXOjfQIhANsGu7/uuDx0mmmiZueVQbQJtXUeUsX5DLqnQssjm9cA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":404404},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"19ffb529075e203f126f082034507e37b1985429","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"},"repository":{"url":"git+https://github.com/claudefast/permission-hook.git","type":"git"},"_npmVersion":"11.5.1","description":"Intelligent auto-approval hook for Claude Code using PermissionRequest","directories":{},"_nodeVersion":"22.17.1","dependencies":{"zod":"^3.23.8","pino":"^9.0.0","chalk":"^5.3.0","openai":"^4.52.0","inquirer":"^9.2.23","commander":"^12.1.0","pino-pretty":"^11.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","vitest":"^1.6.0","typescript":"^5.4.5","@types/node":"^20.14.0","@types/inquirer":"^9.0.7","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-fast-permission-hook_0.1.7_1765184960371_0.3965119024177026","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@abdo-el-mobayad/claude-code-fast-permission-hook","version":"0.2.0","keywords":["claude","claude-code","hooks","auto-approve","permission","ai","automation"],"author":{"name":"ClaudeFast"},"license":"MIT","_id":"@abdo-el-mobayad/claude-code-fast-permission-hook@0.2.0","maintainers":[{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"}],"homepage":"https://github.com/claudefast/permission-hook#readme","bugs":{"url":"https://github.com/claudefast/permission-hook/issues"},"bin":{"cf-approve":"bin/cf-approve.js"},"dist":{"shasum":"93becfdbd24770ab53fd5bd04ddf54156d9e007d","tarball":"https://registry.npmjs.org/@abdo-el-mobayad/claude-code-fast-permission-hook/-/claude-code-fast-permission-hook-0.2.0.tgz","fileCount":36,"integrity":"sha512-V7xaE9MPQBNcki4JoBAvxlhtpfYop5YSgjNUkNLmHh9tu+nE2vJHk1huCRYdYZyqeojZZeGhDYzpufeGLzLg5w==","signatures":[{"sig":"MEYCIQCl7Q35QWgWot9D/fHb05h25LER04YyBqtFA9oNFzap4AIhAPC1bJZw3HQCOhBfanBqpR8+EhTIerNBwTNwJHrVReMR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":407287},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"19ffb529075e203f126f082034507e37b1985429","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"},"repository":{"url":"git+https://github.com/claudefast/permission-hook.git","type":"git"},"_npmVersion":"11.5.1","description":"Intelligent auto-approval hook for Claude Code using PermissionRequest","directories":{},"_nodeVersion":"22.17.1","dependencies":{"zod":"^3.23.8","pino":"^9.0.0","chalk":"^5.3.0","openai":"^4.52.0","inquirer":"^9.2.23","commander":"^12.1.0","pino-pretty":"^11.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","vitest":"^1.6.0","typescript":"^5.4.5","@types/node":"^20.14.0","@types/inquirer":"^9.0.7","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-fast-permission-hook_0.2.0_1767630057057_0.3809595978559672","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@abdo-el-mobayad/claude-code-fast-permission-hook","version":"0.2.1","keywords":["claude","claude-code","hooks","auto-approve","permission","ai","automation"],"author":{"name":"ClaudeFast"},"license":"MIT","_id":"@abdo-el-mobayad/claude-code-fast-permission-hook@0.2.1","maintainers":[{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"}],"homepage":"https://github.com/claudefast/permission-hook#readme","bugs":{"url":"https://github.com/claudefast/permission-hook/issues"},"bin":{"cf-approve":"bin/cf-approve.js"},"dist":{"shasum":"a1129bbeebf522ec8f430eb601a0150e24071556","tarball":"https://registry.npmjs.org/@abdo-el-mobayad/claude-code-fast-permission-hook/-/claude-code-fast-permission-hook-0.2.1.tgz","fileCount":36,"integrity":"sha512-X8PNQ02x2jX+mFujpdTxgbk4FIDuaApKSugS0P4ywQhIvPdh8uen+edpw8Qr6d8HGe1eWWaZXWRPi/fjtO43Ow==","signatures":[{"sig":"MEUCIHsXqMZKBgoKU+TqZOAbqPcTCOiL7jtRHNSTFOC8P1RSAiEAhxXaZn339Mb05TV3MzU1vy/DhsIMtAmY1DsWOJKNNSQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":408698},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"19ffb529075e203f126f082034507e37b1985429","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"},"repository":{"url":"git+https://github.com/claudefast/permission-hook.git","type":"git"},"_npmVersion":"11.5.1","description":"Intelligent auto-approval hook for Claude Code using PermissionRequest","directories":{},"_nodeVersion":"22.17.1","dependencies":{"zod":"^3.23.8","pino":"^9.0.0","chalk":"^5.3.0","openai":"^4.52.0","inquirer":"^9.2.23","commander":"^12.1.0","pino-pretty":"^11.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.57.0","vitest":"^1.6.0","typescript":"^5.4.5","@types/node":"^20.14.0","@types/inquirer":"^9.0.7","@typescript-eslint/parser":"^7.0.0","@typescript-eslint/eslint-plugin":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/claude-code-fast-permission-hook_0.2.1_1767630668791_0.5243429538749185","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@abdo-el-mobayad/claude-code-fast-permission-hook","version":"0.2.2","description":"Intelligent auto-approval hook for Claude Code using PermissionRequest","type":"module","main":"dist/index.js","types":"dist/index.d.ts","bin":{"cf-approve":"bin/cf-approve.js"},"scripts":{"build":"tsc","dev":"tsc --watch","test":"vitest","lint":"eslint src/","prepublishOnly":"npm run build"},"keywords":["claude","claude-code","hooks","auto-approve","permission","ai","automation"],"author":{"name":"ClaudeFast"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/claudefast/permission-hook.git"},"engines":{"node":">=18.0.0"},"dependencies":{"chalk":"^5.3.0","commander":"^12.1.0","inquirer":"^9.2.23","openai":"^4.52.0","pino":"^9.0.0","pino-pretty":"^11.0.0","zod":"^3.23.8"},"devDependencies":{"@types/inquirer":"^9.0.7","@types/node":"^20.14.0","@typescript-eslint/eslint-plugin":"^7.0.0","@typescript-eslint/parser":"^7.0.0","eslint":"^8.57.0","typescript":"^5.4.5","vitest":"^1.6.0"},"_id":"@abdo-el-mobayad/claude-code-fast-permission-hook@0.2.2","gitHead":"19ffb529075e203f126f082034507e37b1985429","bugs":{"url":"https://github.com/claudefast/permission-hook/issues"},"homepage":"https://github.com/claudefast/permission-hook#readme","_nodeVersion":"22.17.1","_npmVersion":"11.5.1","dist":{"integrity":"sha512-+a3+lMGvvVI1fCohQB2CsK86SE9AWoJfd3VC+xhxNc90yu57ok/CRlSvDfNSiuWVA+SPUA7SdR9OaUxb3M3Gyw==","shasum":"9019e7a222feddd53e88d16d8a3303c76cab981d","tarball":"https://registry.npmjs.org/@abdo-el-mobayad/claude-code-fast-permission-hook/-/claude-code-fast-permission-hook-0.2.2.tgz","fileCount":36,"unpackedSize":407146,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIE4g/cWhxZ5fbk98UpTkzn9ZpmKXwHytmbUIBjXaJj/BAiEAyzwmfOFyOOWUX3UUwBjOg2kdXKyhVcwEdL9q3w0tuew="}]},"_npmUser":{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"},"directories":{},"maintainers":[{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/claude-code-fast-permission-hook_0.2.2_1767631085340_0.04863412334367445"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-24T11:36:05.944Z","modified":"2026-01-05T16:38:05.712Z","0.1.0":"2025-11-24T11:36:06.205Z","0.1.1":"2025-11-24T12:04:41.971Z","0.1.2":"2025-11-24T12:19:46.419Z","0.1.3":"2025-11-24T12:23:30.013Z","0.1.4":"2025-11-24T12:32:05.550Z","0.1.5":"2025-11-24T12:45:33.757Z","0.1.6":"2025-11-27T18:02:26.614Z","0.1.7":"2025-12-08T09:09:20.567Z","0.2.0":"2026-01-05T16:20:57.235Z","0.2.1":"2026-01-05T16:31:08.975Z","0.2.2":"2026-01-05T16:38:05.527Z"},"bugs":{"url":"https://github.com/claudefast/permission-hook/issues"},"author":{"name":"ClaudeFast"},"license":"MIT","homepage":"https://github.com/claudefast/permission-hook#readme","keywords":["claude","claude-code","hooks","auto-approve","permission","ai","automation"],"repository":{"type":"git","url":"git+https://github.com/claudefast/permission-hook.git"},"description":"Intelligent auto-approval hook for Claude Code using PermissionRequest","maintainers":[{"name":"abdo-el-mobayad","email":"abdoelmobayad@gmail.com"}],"readme":"# ClaudeFast Permission Hook\n\nIntelligent auto-approval for Claude Code that reduces friction and maintains security.\n\n- Auto-approve safe dev operations (less clicking, more coding)\n- Block destructive commands automatically (no LLM needed)\n- Uses the new PermissionRequest hook type\n- Cache decisions to minimize API costs\n\n> **Cost**: Using GPT-4o-mini via OpenRouter, **$1 USD = ~5,000+ LLM decisions**. Most operations use fast allow/deny (no LLM), so $1 can last 6+ months of heavy use.\n\n---\n\n**This Hook is part of the [Claude Fast CC Starterkit](https://claudefa.st).** The ultimate Claude Code development kit. Built on Anthropic's official recommendations, resources, and best practices. Constantly evolving. Updated with every release.\n\n<p align=\"center\">\n  <img src=\"https://unpkg.com/@abdo-el-mobayad/claude-code-fast-permission-hook@latest/assets/screenshot.png\" alt=\"Claude Fast Starterkit\" width=\"800\">\n</p>\n\n---\n\n## Quick Start\n\n```bash\nnpm install -g @abdo-el-mobayad/claude-code-fast-permission-hook\ncf-approve install\ncf-approve config\n```\n\n## Installation\n\n**Prerequisites**: Node.js 18+ and Claude Code installed\n\n```bash\n# Step 1: Install globally\nnpm install -g @abdo-el-mobayad/claude-code-fast-permission-hook\n\n# Step 2: Run the install command to set up the hook\ncf-approve install\n\n# Step 3: Configure your API key\ncf-approve config\n```\n\nThe `cf-approve install` command will:\n1. Locate your Claude Code settings\n2. Add the PermissionRequest hook automatically\n3. Verify the setup works\n\n### Manual Installation\n\nIf you prefer to add the hook manually, add this to your Claude Code `settings.json`:\n\n```json\n{\n  \"hooks\": {\n    \"PermissionRequest\": [\n      {\n        \"matcher\": \"*\",\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"cf-approve permission\"\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\nSettings file locations:\n- **User settings**: `~/.claude/settings.json`\n- **Project settings**: `.claude/settings.json`\n- **Project local**: `.claude/settings.local.json`\n\n## How It Works\n\nClaudeFast uses Claude Code's PermissionRequest hook to intercept tool calls before execution:\n\n```\nClaude Code Tool Request → cf-approve → Decision → Execute/Block\n```\n\n### Three-Tier Decision System\n\n1. **Fast approval** for obviously safe operations (Read, Write, Glob, Edit)\n2. **Fast deny** for destructive patterns (rm -rf /, force push to protected branches)\n3. **LLM analysis** for complex operations with intelligent caching\n\n### Authentication Options\n\n- **OpenRouter** (recommended for latency/speed)\n- **OpenAI API** (direct or compatible endpoints)\n- **Anthropic API** (direct Claude access)\n\n## Configuration\n\n### Quick Setup\n\n```bash\n# Interactive configuration\ncf-approve config\n\n# Check current setup\ncf-approve doctor\n```\n\n### Manual Configuration\n\nConfig is stored at `~/.claude-code-fast-permission-hook/config.json`:\n\n```json\n{\n  \"llm\": {\n    \"provider\": \"openai\",\n    \"model\": \"gpt-4o-mini\",\n    \"apiKey\": \"sk-...\",\n    \"baseUrl\": \"https://openrouter.ai/api/v1\"\n  },\n  \"cache\": {\n    \"enabled\": true,\n    \"ttlHours\": 168\n  },\n  \"logging\": {\n    \"enabled\": true,\n    \"level\": \"info\"\n  }\n}\n```\n\n### OpenRouter Setup (Recommended)\n\n```json\n{\n  \"llm\": {\n    \"provider\": \"openai\",\n    \"model\": \"openai/gpt-4o-mini\",\n    \"apiKey\": \"sk-or-v1-your-key\",\n    \"baseUrl\": \"https://openrouter.ai/api/v1\"\n  },\n  \"cache\": {\n    \"enabled\": true,\n    \"ttlHours\": 168\n  }\n}\n```\n\n### Environment Variables\n\nYou can also use environment variables instead of config file:\n\n```bash\nexport OPENAI_API_KEY=sk-your-key\nexport OPENAI_BASE_URL=https://openrouter.ai/api/v1\n```\n\n## What Gets Auto-Approved?\n\n### Always Allowed (No LLM call)\n- **Read operations**: Read, Glob, Grep, LS, WebFetch, WebSearch\n- **Write operations**: Write, Edit, MultiEdit, NotebookEdit\n- **Interaction tools**: TodoWrite, Task, AskUserQuestion\n- **MCP tools**: All `mcp__*` prefixed tools\n\n### Always Blocked (No LLM call)\n- **System destruction**: `rm -rf /`, `rm -rf /usr`, `rm -rf ~`\n- **Protected git branches**: `git push --force origin main/master/production/staging/develop`\n- **Disk operations**: `mkfs`, `fdisk --delete`, `dd` to raw devices, `format C:`\n- **Windows destruction**: `rmdir /s /q C:\\`, `del /f /s /q C:\\`\n- **Malicious patterns**: Fork bombs, credential theft attempts\n\n### LLM Analysis Required\n- **Bash commands**: npm, git (non-force), docker, curl, etc.\n- **Unknown tools**: Any tool not in the allow/deny lists\n\n## CLI Commands\n\n```bash\ncf-approve permission     # Handle PermissionRequest hook (reads stdin)\ncf-approve install        # Add hook to Claude Code settings\ncf-approve uninstall      # Remove hook from settings\ncf-approve config         # Interactive configuration\ncf-approve doctor         # Diagnose configuration and connectivity\ncf-approve clear-cache    # Clear all cached decisions\ncf-approve status         # Show current configuration\n```\n\n## Caching Behavior\n\n- **Enabled by default** for optimal performance\n- **Working directory scoped** for safety across projects\n- **TTL expiration** (default 168 hours / 1 week)\n- **Caches only definitive decisions** (allow/deny from LLM)\n- **Instant responses** for repeated operations\n\n```bash\n# Clear cache if needed\ncf-approve clear-cache\n\n# Disable caching in config\n{\n  \"cache\": {\n    \"enabled\": false\n  }\n}\n```\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n---\n\n```bash\nnpm install -g @abdo-el-mobayad/claude-code-fast-permission-hook && cf-approve install && cf-approve config\n```\n","readmeFilename":"README.md"}