{"_id":"git-rewrite-commits","_rev":"16-707a554f9e22fb578373b14ee9c900ab","name":"git-rewrite-commits","dist-tags":{"latest":"0.7.3"},"versions":{"0.3.1":{"name":"git-rewrite-commits","version":"0.3.1","keywords":["git","commit","conventional-commits","openai","ai","rewrite","history","cli","npx"],"author":"","license":"MIT","_id":"git-rewrite-commits@0.3.1","maintainers":[{"name":"fkadev","email":"fatihkadirakin@gmail.com"}],"homepage":"https://github.com/f/git-rewrite-commits#readme","bugs":{"url":"https://github.com/f/git-rewrite-commits/issues"},"bin":{"git-rewrite-commits":"dist/cli.js"},"dist":{"shasum":"908e4cfd029c179225ac4763d0c8d9a02e69339e","tarball":"https://registry.npmjs.org/git-rewrite-commits/-/git-rewrite-commits-0.3.1.tgz","fileCount":16,"integrity":"sha512-e2YP8xB1Ag17nyWLEzxGNwos+WdWwnXc37yjOillwM5dYww4QuUnHi5kz4pZ7Mh+g4/TzZn22mwiDboEqCzJcw==","signatures":[{"sig":"MEYCIQCEv4Xs2bz+cr4qE9iosQ1J3MNApORKT+Z/DuMw4UDggwIhAJnTnJs6FZpffK6tSBkDQFfbjN7rVi5awjJyd4Vpsc+U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90052},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"07cc51e82b9f3c6b8c7806c0e9e3a6eb788e4fbf","scripts":{"dev":"tsx src/cli.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fkadev","email":"fatihkadirakin@gmail.com"},"repository":{"url":"git+https://github.com/f/git-rewrite-commits.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-powered git commit message rewriter using OpenAI - rewrite your entire git history with better conventional commit messages","directories":{},"_nodeVersion":"18.20.8","dependencies":{"ora":"^7.0.1","chalk":"^5.3.0","openai":"^4.20.0","commander":"^11.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.6.2","typescript":"^5.3.2","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/git-rewrite-commits_0.3.1_1762735567773_0.09989698822687387","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"git-rewrite-commits","version":"0.3.2","keywords":["git","commit","conventional-commits","openai","ai","rewrite","history","cli","npx"],"author":"","license":"MIT","_id":"git-rewrite-commits@0.3.2","maintainers":[{"name":"fkadev","email":"fatihkadirakin@gmail.com"}],"homepage":"https://github.com/f/git-rewrite-commits#readme","bugs":{"url":"https://github.com/f/git-rewrite-commits/issues"},"bin":{"git-rewrite-commits":"dist/cli.js"},"dist":{"shasum":"aa1928d67f652e6ec4ac0ffc663f923e7e29087c","tarball":"https://registry.npmjs.org/git-rewrite-commits/-/git-rewrite-commits-0.3.2.tgz","fileCount":16,"integrity":"sha512-8aMLJRZZBRP6NMgC363GK21Z0mrcGAFmSI0uGvYoqp7DET4BNVtl1sSDW07IljifVtmKzClj6kIlV5C3dP84RA==","signatures":[{"sig":"MEQCIFsa02JP9z9zrR6yYese6G7FtTtnwag06hp+yAAJSUBPAiBr8nfX3i10HoHgbMMXCEf/tDvb1a+bfoJ/xSMBWkR+vg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90443},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"2623a270d5a99e95a64671ed7212580070f64717","scripts":{"dev":"tsx src/cli.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fkadev","email":"fatihkadirakin@gmail.com"},"repository":{"url":"git+https://github.com/f/git-rewrite-commits.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-powered git commit message rewriter using OpenAI - rewrite your entire git history with better conventional commit messages","directories":{},"_nodeVersion":"18.20.8","dependencies":{"ora":"^7.0.1","chalk":"^5.3.0","openai":"^4.20.0","commander":"^11.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.6.2","typescript":"^5.3.2","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/git-rewrite-commits_0.3.2_1762739020651_0.9226246429753713","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"git-rewrite-commits","version":"0.5.0","keywords":["git","commit","conventional-commits","openai","ai","rewrite","history","cli","npx"],"author":"","license":"MIT","_id":"git-rewrite-commits@0.5.0","maintainers":[{"name":"fkadev","email":"fatihkadirakin@gmail.com"}],"homepage":"https://github.com/f/git-rewrite-commits#readme","bugs":{"url":"https://github.com/f/git-rewrite-commits/issues"},"bin":{"git-rewrite-commits":"dist/cli.js"},"dist":{"shasum":"b8201ef740627fbcf87e7a96284750577701fbe3","tarball":"https://registry.npmjs.org/git-rewrite-commits/-/git-rewrite-commits-0.5.0.tgz","fileCount":32,"integrity":"sha512-suBBii67civ5Yt+UrGo97XB8J2K/L5CjJg17Vk36Ieb5oCcQYBw179J8g8Zzngo2PEVjXFa7d7G5DeVKdK9i0A==","signatures":[{"sig":"MEUCIEme33zsgB4EiZycmMevdl8ImKTgR5BRJ4JmEfmwACEUAiEAr0+uejoazMHiTR2sDRFeMy0a5Ddr9pExaDVGDjZgXvI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103644},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"0322c3dc3c238d90ef3d24c8752d17d868ba588d","scripts":{"dev":"tsx src/cli.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fkadev","email":"fatihkadirakin@gmail.com"},"repository":{"url":"git+https://github.com/f/git-rewrite-commits.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-powered git commit message rewriter using OpenAI - rewrite your entire git history with better conventional commit messages","directories":{},"_nodeVersion":"18.20.8","dependencies":{"ora":"^7.0.1","chalk":"^5.3.0","openai":"^4.20.0","commander":"^11.1.0","node-fetch":"^3.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.6.2","typescript":"^5.3.2","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/git-rewrite-commits_0.5.0_1763165391774_0.5828107330683365","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"git-rewrite-commits","version":"0.6.2","keywords":["git","commit","conventional-commits","openai","ai","rewrite","history","cli","npx","grc","git-rewrite-commits"],"author":"","license":"MIT","_id":"git-rewrite-commits@0.6.2","maintainers":[{"name":"fkadev","email":"fatihkadirakin@gmail.com"}],"homepage":"https://github.com/f/git-rewrite-commits#readme","bugs":{"url":"https://github.com/f/git-rewrite-commits/issues"},"bin":{"git-rewrite-commits":"dist/cli.js"},"dist":{"shasum":"43858e4ead7b473b6ae2a700238c924061afc9e1","tarball":"https://registry.npmjs.org/git-rewrite-commits/-/git-rewrite-commits-0.6.2.tgz","fileCount":33,"integrity":"sha512-yKdDihwJzO2K5OPIGZQR+AGErFKDqCdv/mgJ08QPgNK4vId+81qNyNgLRgReTsDJwf7tFlwQd77ampYRzcxc7g==","signatures":[{"sig":"MEQCIGcuMS2zy2ohBUCzk1T55gH3B0uVnAuYnF1iiQSkdTFTAiAGSN1duyDypF+MttqaQM0B35AdX7+fo3tTprP9cy4GQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128378},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"251561db90ff8b0004353da1eb9b70b0ce746574","scripts":{"dev":"tsx src/cli.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish:grc":"cd packages/grc && npm publish --access public","prepublishOnly":"npm run build"},"_npmUser":{"name":"fkadev","email":"fatihkadirakin@gmail.com"},"repository":{"url":"git+https://github.com/f/git-rewrite-commits.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-powered git commit message rewriter using OpenAI - rewrite your entire git history with better conventional commit messages","directories":{},"_nodeVersion":"18.20.8","dependencies":{"ora":"^7.0.1","chalk":"^5.3.0","openai":"^4.20.0","commander":"^11.1.0","node-fetch":"^3.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.6.2","typescript":"^5.3.2","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/git-rewrite-commits_0.6.2_1763170198567_0.007510609205600538","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"git-rewrite-commits","version":"0.6.3","keywords":["git","commit","conventional-commits","openai","ai","rewrite","history","cli","npx","grec","git-rewrite-commits"],"author":"","license":"MIT","_id":"git-rewrite-commits@0.6.3","maintainers":[{"name":"fkadev","email":"fatihkadirakin@gmail.com"}],"homepage":"https://github.com/f/git-rewrite-commits#readme","bugs":{"url":"https://github.com/f/git-rewrite-commits/issues"},"bin":{"git-rewrite-commits":"dist/cli.js"},"dist":{"shasum":"81d54e11b6146f2dc990d79c8ff30d42bb930ce6","tarball":"https://registry.npmjs.org/git-rewrite-commits/-/git-rewrite-commits-0.6.3.tgz","fileCount":33,"integrity":"sha512-Jjob8RHykVND01i29CCxQO+FN+rAlmofif1iMWz1AlE8q3kxaP3ev8xBhUfFOqF9vwiV6JEGzEOOL6+Q3uSgVg==","signatures":[{"sig":"MEUCICZ7az0ehqXqiqNrCP93jcaQWt7WoZDa3C0ZW1+d8R3tAiEA3qAUxnOutlHqzRm8Gb+yoYYv6U9I2SvP55K5ZY8oFgA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128397},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"1bebbcc158a6745b36f67cc621e0b1f6fc0ed2de","scripts":{"dev":"tsx src/cli.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish:grec":"cd packages/grec && npm publish --access public","prepublishOnly":"npm run build"},"_npmUser":{"name":"fkadev","email":"fatihkadirakin@gmail.com"},"repository":{"url":"git+https://github.com/f/git-rewrite-commits.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-powered git commit message rewriter using OpenAI - rewrite your entire git history with better conventional commit messages","directories":{},"_nodeVersion":"18.20.8","dependencies":{"ora":"^7.0.1","chalk":"^5.3.0","openai":"^4.20.0","commander":"^11.1.0","node-fetch":"^3.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.6.2","typescript":"^5.3.2","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/git-rewrite-commits_0.6.3_1763170563623_0.044958987385615545","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"git-rewrite-commits","version":"0.6.4","keywords":["git","commit","conventional-commits","openai","ai","rewrite","history","cli","npx","grec","git-rewrite-commits"],"author":"","license":"MIT","_id":"git-rewrite-commits@0.6.4","maintainers":[{"name":"fkadev","email":"fatihkadirakin@gmail.com"}],"homepage":"https://github.com/f/git-rewrite-commits#readme","bugs":{"url":"https://github.com/f/git-rewrite-commits/issues"},"bin":{"git-rewrite-commits":"dist/cli.js"},"dist":{"shasum":"49dcfcfc6498010501828a58711bd3f5bc64bca2","tarball":"https://registry.npmjs.org/git-rewrite-commits/-/git-rewrite-commits-0.6.4.tgz","fileCount":33,"integrity":"sha512-HChjbQRk3sxqmRYzc1ndYtOdUg2h+h/1gQA+o/bQ1M+7q0a5KB/y+0T+DuvOsMJmFQjV8PVHN2+zn2CeDLuXMg==","signatures":[{"sig":"MEQCIGua/VT4BKjLBuZbi/UK7Ak+7VoceLIDBELYtWT7ntvDAiA182HdjJheFqmfCGkGUqoRoBrgBd3CaUO4c6k/RA6anQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128326},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"e16c865a47431d3f004d58131a93d7d9d8c890d8","scripts":{"dev":"tsx src/cli.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fkadev","email":"fatihkadirakin@gmail.com"},"repository":{"url":"git+https://github.com/f/git-rewrite-commits.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-powered git commit message rewriter using OpenAI - rewrite your entire git history with better conventional commit messages","directories":{},"_nodeVersion":"18.20.8","dependencies":{"ora":"^7.0.1","chalk":"^5.3.0","openai":"^4.20.0","commander":"^11.1.0","node-fetch":"^3.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.6.2","typescript":"^5.3.2","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/git-rewrite-commits_0.6.4_1763170888140_0.9428704822008982","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"git-rewrite-commits","version":"0.6.5","keywords":["git","commit","conventional-commits","openai","ai","rewrite","history","cli","npx","grec","git-rewrite-commits"],"author":"","license":"MIT","_id":"git-rewrite-commits@0.6.5","maintainers":[{"name":"fkadev","email":"fatihkadirakin@gmail.com"}],"homepage":"https://github.com/f/git-rewrite-commits#readme","bugs":{"url":"https://github.com/f/git-rewrite-commits/issues"},"bin":{"git-rewrite-commits":"dist/cli.js"},"dist":{"shasum":"1ff691002f76b1e086859fdb7cf6eb6df023c521","tarball":"https://registry.npmjs.org/git-rewrite-commits/-/git-rewrite-commits-0.6.5.tgz","fileCount":33,"integrity":"sha512-HAKusrCsyaZnVzBsgJ432TObx306kxV2ld16MQL239aUXutw/b/yfSprhw5PajM0M4Fem4D1SghCjzXQt2Vk1Q==","signatures":[{"sig":"MEUCIQCfl3mTuHJ7dyhRXYUk2OBcC2ccrUvIzkGg7mDnPlnKnAIgKh7ss3x/piVT770NjCwj+xWdEDc16YRLxw2Xsl7qcPI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127884},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"c56936a7295d30df2b976e437bdeda167ec847f1","scripts":{"dev":"tsx src/cli.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fkadev","email":"fatihkadirakin@gmail.com"},"repository":{"url":"git+https://github.com/f/git-rewrite-commits.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-powered git commit message rewriter using OpenAI - rewrite your entire git history with better conventional commit messages","directories":{},"_nodeVersion":"18.20.8","dependencies":{"ora":"^7.0.1","chalk":"^5.3.0","openai":"^4.20.0","commander":"^11.1.0","node-fetch":"^3.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.6.2","typescript":"^5.3.2","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/git-rewrite-commits_0.6.5_1763171230547_0.8982018531398082","host":"s3://npm-registry-packages-npm-production"}},"0.6.6":{"name":"git-rewrite-commits","version":"0.6.6","keywords":["git","commit","conventional-commits","openai","ai","rewrite","history","cli","npx","grec","git-rewrite-commits"],"author":"","license":"MIT","_id":"git-rewrite-commits@0.6.6","maintainers":[{"name":"fkadev","email":"fatihkadirakin@gmail.com"}],"homepage":"https://github.com/f/git-rewrite-commits#readme","bugs":{"url":"https://github.com/f/git-rewrite-commits/issues"},"bin":{"git-rewrite-commits":"dist/cli.js"},"dist":{"shasum":"066efb85fa5eaabc04f315b5e2bbf7e5b01cd251","tarball":"https://registry.npmjs.org/git-rewrite-commits/-/git-rewrite-commits-0.6.6.tgz","fileCount":33,"integrity":"sha512-4M029RXiQI14e51Md5Q9mD4j/MMsQMWIy7UlfpAcv+xQx8PEytKBWKu3RA9yRnof1eoCj4kXUH266dO/2M8bFA==","signatures":[{"sig":"MEQCIDaxesWWr/XqX9W3WlWV8+nAqRsxsHLjMZgSnc00nKiEAiBl18nZjYDT7SrQ/fd0w+79zlzZjnEwOtr01rf9ao2ewg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127884},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"85598362bdc784457b9904f9b9b3b693a860bbee","scripts":{"dev":"tsx src/cli.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fkadev","email":"fatihkadirakin@gmail.com"},"repository":{"url":"git+https://github.com/f/git-rewrite-commits.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-powered git commit message rewriter using OpenAI - rewrite your entire git history with better conventional commit messages","directories":{},"_nodeVersion":"18.20.8","dependencies":{"ora":"^7.0.1","chalk":"^5.3.0","openai":"^4.20.0","commander":"^11.1.0","node-fetch":"^3.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.6.2","typescript":"^5.3.2","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/git-rewrite-commits_0.6.6_1763171685217_0.670968355744983","host":"s3://npm-registry-packages-npm-production"}},"0.6.8":{"name":"git-rewrite-commits","version":"0.6.8","keywords":["git","commit","conventional-commits","openai","ai","rewrite","history","cli","npx","grec","git-rewrite-commits"],"author":"","license":"MIT","_id":"git-rewrite-commits@0.6.8","maintainers":[{"name":"fkadev","email":"fatihkadirakin@gmail.com"}],"homepage":"https://github.com/f/git-rewrite-commits#readme","bugs":{"url":"https://github.com/f/git-rewrite-commits/issues"},"bin":{"git-rewrite-commits":"dist/cli.js"},"dist":{"shasum":"b1bb59a5863b203ff5cee5408f00dcd2f8f076c9","tarball":"https://registry.npmjs.org/git-rewrite-commits/-/git-rewrite-commits-0.6.8.tgz","fileCount":33,"integrity":"sha512-h+wziqhMpSpw4OXmdILWGCMyMU7PdQLXZnPLlS7b6Ug0P2ISor0AnBBxDVqVHuwWP8TqYVjlsYfHR3wXuHVx3g==","signatures":[{"sig":"MEYCIQCV3gSrr2aIzhFXNU2P3opqJ9L68QXC4T6uVgh5NP2uVgIhAIszvQZ+IgoLd1ifSZjtMoKvWuXcpHr0wsOpNFcvT9LF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127884},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"4defea38990f45281a3402215add32e490c73652","scripts":{"dev":"tsx src/cli.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fkadev","email":"fatihkadirakin@gmail.com"},"repository":{"url":"git+https://github.com/f/git-rewrite-commits.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-powered git commit message rewriter using OpenAI - rewrite your entire git history with better conventional commit messages","directories":{},"_nodeVersion":"18.20.8","dependencies":{"ora":"^7.0.1","chalk":"^5.3.0","openai":"^4.20.0","commander":"^11.1.0","node-fetch":"^3.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.6.2","typescript":"^5.3.2","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/git-rewrite-commits_0.6.8_1763171845611_0.38684543251193704","host":"s3://npm-registry-packages-npm-production"}},"0.6.9":{"name":"git-rewrite-commits","version":"0.6.9","keywords":["git","commit","conventional-commits","openai","ai","rewrite","history","cli","npx","grec","git-rewrite-commits"],"author":"","license":"MIT","_id":"git-rewrite-commits@0.6.9","maintainers":[{"name":"fkadev","email":"fatihkadirakin@gmail.com"}],"homepage":"https://github.com/f/git-rewrite-commits#readme","bugs":{"url":"https://github.com/f/git-rewrite-commits/issues"},"bin":{"git-rewrite-commits":"dist/cli.js"},"dist":{"shasum":"1be5c3a91f6a3d09f6dcc9a30060ef0a4a106959","tarball":"https://registry.npmjs.org/git-rewrite-commits/-/git-rewrite-commits-0.6.9.tgz","fileCount":33,"integrity":"sha512-5PD6pQaGAAsE0iuAFDgIdLUinWT0tfg0oF5Xbmm+dI7dSZEWtqU4PlodJvdDQSlNC9byiAJEL87Cihfh9EqlhQ==","signatures":[{"sig":"MEUCIQD/SCq8Yk8nH8mT0hcvGWSbT0OgmXEXI/Nh1yHy11RSaQIgCtVFIWGRos7IE/i1D4KqJii0EHsa8OOMlZB53uzKwvc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127884},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"6488d11989ac6b35e6f394d1bd8fde4637b8ae8b","scripts":{"dev":"tsx src/cli.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fkadev","email":"fatihkadirakin@gmail.com"},"repository":{"url":"git+https://github.com/f/git-rewrite-commits.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-powered git commit message rewriter using OpenAI - rewrite your entire git history with better conventional commit messages","directories":{},"_nodeVersion":"18.20.8","dependencies":{"ora":"^7.0.1","chalk":"^5.3.0","openai":"^4.20.0","commander":"^11.1.0","node-fetch":"^3.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.6.2","typescript":"^5.3.2","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/git-rewrite-commits_0.6.9_1763172581703_0.4757142208149274","host":"s3://npm-registry-packages-npm-production"}},"0.6.91":{"name":"git-rewrite-commits","version":"0.6.91","keywords":["git","commit","conventional-commits","openai","ai","rewrite","history","cli","npx","grec","git-rewrite-commits"],"author":"","license":"MIT","_id":"git-rewrite-commits@0.6.91","maintainers":[{"name":"fkadev","email":"fatihkadirakin@gmail.com"}],"homepage":"https://github.com/f/git-rewrite-commits#readme","bugs":{"url":"https://github.com/f/git-rewrite-commits/issues"},"bin":{"git-rewrite-commits":"dist/cli.js"},"dist":{"shasum":"0a3d746cb4db05602a4f35ca19eac4a96cb0e460","tarball":"https://registry.npmjs.org/git-rewrite-commits/-/git-rewrite-commits-0.6.91.tgz","fileCount":33,"integrity":"sha512-tlcwy6JBRHEGnMUElHrC/XlyimlN5OeoaYAIjghmLEyn4QglCTUMd0jrcy5i25psYzV3pRM+6flxCGb++UuTDw==","signatures":[{"sig":"MEYCIQDILy2AlUgNqfdQQkrjrptiL1PmJ/Z9opHRNUG4T1sj+wIhAKymyCM2FCdgQxQCMXlU4v95pGDfNUTH8bxnJU8hHPQX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129520},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"1cdc2f3d6e50a6c2ec87c47cd01c10be314663ff","scripts":{"dev":"tsx src/cli.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fkadev","email":"fatihkadirakin@gmail.com"},"repository":{"url":"git+https://github.com/f/git-rewrite-commits.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-powered git commit message rewriter using OpenAI - rewrite your entire git history with better conventional commit messages","directories":{},"_nodeVersion":"18.20.8","dependencies":{"ora":"^7.0.1","chalk":"^5.3.0","openai":"^4.20.0","commander":"^11.1.0","node-fetch":"^3.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.6.2","typescript":"^5.3.2","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/git-rewrite-commits_0.6.91_1763281213381_0.8828870861677411","host":"s3://npm-registry-packages-npm-production"}},"0.6.92":{"name":"git-rewrite-commits","version":"0.6.92","keywords":["git","commit","conventional-commits","openai","ai","rewrite","history","cli","npx","grec","git-rewrite-commits"],"author":"","license":"MIT","_id":"git-rewrite-commits@0.6.92","maintainers":[{"name":"fkadev","email":"fatihkadirakin@gmail.com"}],"homepage":"https://github.com/f/git-rewrite-commits#readme","bugs":{"url":"https://github.com/f/git-rewrite-commits/issues"},"bin":{"git-rewrite-commits":"dist/cli.js"},"dist":{"shasum":"fd90a5bf41e8243624e15354f6b18d880b9194ae","tarball":"https://registry.npmjs.org/git-rewrite-commits/-/git-rewrite-commits-0.6.92.tgz","fileCount":33,"integrity":"sha512-hkCSlpSoDAgpCYUrzYxgF4IAim5MwYkYa3jnUTEq6hQUOAqPix59mS44OczdO1GSJQ4oFc+HWvqcW090beOHiA==","signatures":[{"sig":"MEUCICI9VVixAnXslWWNJJW6TqKCK36X/KO7zj4q0Qyu8V3qAiEApuHALbCJ3gRN9cDxx4X1fZUuAySKQAjHkzIrxSKR+ow=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129990},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"340ae955a4ebc3803eb58205f6fdcba65a5e1523","scripts":{"dev":"tsx src/cli.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fkadev","email":"fatihkadirakin@gmail.com"},"repository":{"url":"git+https://github.com/f/git-rewrite-commits.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-powered git commit message rewriter using OpenAI - rewrite your entire git history with better conventional commit messages","directories":{},"_nodeVersion":"18.20.8","dependencies":{"ora":"^7.0.1","chalk":"^5.3.0","openai":"^4.20.0","commander":"^11.1.0","node-fetch":"^3.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.6.2","typescript":"^5.3.2","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/git-rewrite-commits_0.6.92_1763282222903_0.13635080782283238","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"git-rewrite-commits","version":"0.7.0","keywords":["git","commit","conventional-commits","openai","ai","rewrite","history","cli","npx","grec","git-rewrite-commits"],"author":"","license":"MIT","_id":"git-rewrite-commits@0.7.0","maintainers":[{"name":"fkadev","email":"fatihkadirakin@gmail.com"}],"homepage":"https://github.com/f/git-rewrite-commits#readme","bugs":{"url":"https://github.com/f/git-rewrite-commits/issues"},"bin":{"git-rewrite-commits":"dist/cli.js"},"dist":{"shasum":"5c2b8474c8cc169ec92d5f305084293ec4cd27f1","tarball":"https://registry.npmjs.org/git-rewrite-commits/-/git-rewrite-commits-0.7.0.tgz","fileCount":33,"integrity":"sha512-E6zPjparBp7F58HOj7+SExAIXfitDyU31x3kj5ahvpQMIiM5csXnLmMjqyv7SD4aBa/dzLxfrkp3neUBCQBB5A==","signatures":[{"sig":"MEUCIGhkOEQdHEeKyLmMcMwERc23L7g/E+bQtclmYP3mrK4YAiEA3kauPoDn9n+rMDc4wsxjvh3H5alSMOB2Qzvr1OeP7Nc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137937},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"08ac3a1c40206650cca50d6554ec6654408f1dc9","scripts":{"dev":"tsx src/cli.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fkadev","email":"fatihkadirakin@gmail.com"},"repository":{"url":"git+https://github.com/f/git-rewrite-commits.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-powered git commit message rewriter using OpenAI - rewrite your entire git history with better conventional commit messages","directories":{},"_nodeVersion":"18.20.8","dependencies":{"ora":"^7.0.1","chalk":"^5.3.0","openai":"^4.20.0","commander":"^11.1.0","node-fetch":"^3.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.6.2","typescript":"^5.3.2","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/git-rewrite-commits_0.7.0_1763290581916_0.5182046572674996","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"git-rewrite-commits","version":"0.7.1","keywords":["git","commit","conventional-commits","openai","ai","rewrite","history","cli","npx","grec","git-rewrite-commits"],"author":"","license":"MIT","_id":"git-rewrite-commits@0.7.1","maintainers":[{"name":"fkadev","email":"fatihkadirakin@gmail.com"}],"homepage":"https://github.com/f/git-rewrite-commits#readme","bugs":{"url":"https://github.com/f/git-rewrite-commits/issues"},"bin":{"git-rewrite-commits":"dist/cli.js"},"dist":{"shasum":"5d06936b951348e55d3f486031b60db3e2d41ae6","tarball":"https://registry.npmjs.org/git-rewrite-commits/-/git-rewrite-commits-0.7.1.tgz","fileCount":33,"integrity":"sha512-e4RsYW10QD6SIhTUH0YSsDmcK2m1v7eiWSbEAhrbRS0OLYdXj1+cX5lC4c1SUDRWyuI/uVhXcR9zpSdfs69RUA==","signatures":[{"sig":"MEUCIQDFrFJO2xRgGjuPbW2vWAIpfGbcYkSgNF/z2XXGPxBKsQIgST9siPxHI4uHytjwZXXpzLhGl4SoFhYIHA0mIdCT5fs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141932},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"3bd2e3e5b863dea8076e5b4bba454823a8dcee1f","scripts":{"dev":"tsx src/cli.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fkadev","email":"fatihkadirakin@gmail.com"},"repository":{"url":"git+https://github.com/f/git-rewrite-commits.git","type":"git"},"_npmVersion":"10.8.2","description":"AI-powered git commit message rewriter using OpenAI - rewrite your entire git history with better conventional commit messages","directories":{},"_nodeVersion":"18.20.8","dependencies":{"ora":"^7.0.1","chalk":"^5.3.0","openai":"^4.20.0","commander":"^11.1.0","node-fetch":"^3.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.6.2","typescript":"^5.3.2","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/git-rewrite-commits_0.7.1_1763334833610_0.02130787461844652","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"git-rewrite-commits","version":"0.7.2","keywords":["git","commit","conventional-commits","openai","ai","rewrite","history","cli","npx","grec","git-rewrite-commits"],"author":"","license":"MIT","_id":"git-rewrite-commits@0.7.2","maintainers":[{"name":"fkadev","email":"fatihkadirakin@gmail.com"}],"homepage":"https://github.com/f/git-rewrite-commits#readme","bugs":{"url":"https://github.com/f/git-rewrite-commits/issues"},"bin":{"git-rewrite-commits":"dist/cli.js"},"dist":{"shasum":"719cb3c2f6f1c9d54251af544d4eac6d2243c411","tarball":"https://registry.npmjs.org/git-rewrite-commits/-/git-rewrite-commits-0.7.2.tgz","fileCount":37,"integrity":"sha512-Ss6tlILm5LWGT0eSoQyX+2qfPGQhycVgxAFLAlgvHrhzUSesBJ0LkfCLdAqWYgyTAxtlEE6XKTy1DMUKIZdjyA==","signatures":[{"sig":"MEQCIBS7NEBBuoGgnOTQBBSFdaYp9UE0oJbTrKloujW5I+J0AiBcThpXd5xJ3oAs7o5QTfToskTTd0wfI6E1lImWlO24Lw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":155123},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"067db72db4b52a9c7c50b0829ee1538cb682d89e","scripts":{"dev":"tsx src/cli.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"fkadev","email":"fatihkadirakin@gmail.com"},"repository":{"url":"git+https://github.com/f/git-rewrite-commits.git","type":"git"},"_npmVersion":"10.9.2","description":"AI-powered git commit message rewriter using OpenAI - rewrite your entire git history with better conventional commit messages","directories":{},"_nodeVersion":"23.10.0","dependencies":{"ora":"^7.0.1","chalk":"^5.3.0","openai":"^4.20.0","commander":"^11.1.0","node-fetch":"^3.3.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.6.2","typescript":"^5.3.2","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/git-rewrite-commits_0.7.2_1763360391050_0.6963083817971771","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"git-rewrite-commits","version":"0.7.3","description":"AI-powered git commit message rewriter using OpenAI - rewrite your entire git history with better conventional commit messages","type":"module","main":"./dist/index.js","bin":{"git-rewrite-commits":"dist/cli.js"},"scripts":{"build":"tsc","dev":"tsx src/cli.ts","prepublishOnly":"npm run build","test":"echo \"Error: no test specified\" && exit 1"},"keywords":["git","commit","conventional-commits","openai","ai","rewrite","history","cli","npx","grec","git-rewrite-commits"],"author":"","license":"MIT","repository":{"type":"git","url":"git+https://github.com/f/git-rewrite-commits.git"},"bugs":{"url":"https://github.com/f/git-rewrite-commits/issues"},"homepage":"https://github.com/f/git-rewrite-commits#readme","engines":{"node":">=16.0.0"},"dependencies":{"openai":"^4.20.0","commander":"^11.1.0","chalk":"^5.3.0","ora":"^7.0.1","node-fetch":"^3.3.2"},"devDependencies":{"@types/node":"^20.10.0","typescript":"^5.3.2","tsx":"^4.6.2"},"publishConfig":{"access":"public"},"_id":"git-rewrite-commits@0.7.3","gitHead":"424b0113ba9a1570810e3622dbb8411e9410d201","types":"./dist/index.d.ts","_nodeVersion":"23.10.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-V6Yil2Y8n6fXCv79Dkp6sgGI/+yInDYFWkmweRJzlQRgVHX6RE9gW1uAsfSmX6cglqe/FvYjhakEI+pdWQFY3g==","shasum":"eab86c25778076d626373fe8b839f950d4d838b7","tarball":"https://registry.npmjs.org/git-rewrite-commits/-/git-rewrite-commits-0.7.3.tgz","fileCount":37,"unpackedSize":158777,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBD4gr3HgWU+Sd5L5u77UzmVbUvkFi10DdpnHNSUkb6OAiEA7OMl/HqOx/uSrsLoX+Fswxjz9Eds04X2L8lUAl6iz+s="}]},"_npmUser":{"name":"fkadev","email":"fatihkadirakin@gmail.com"},"directories":{},"maintainers":[{"name":"fkadev","email":"fatihkadirakin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/git-rewrite-commits_0.7.3_1763361680079_0.1639825118903102"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-10T00:46:07.609Z","modified":"2025-11-17T06:41:20.456Z","0.3.1":"2025-11-10T00:46:07.975Z","0.3.2":"2025-11-10T01:43:40.844Z","0.5.0":"2025-11-15T00:09:51.954Z","0.6.2":"2025-11-15T01:29:58.764Z","0.6.3":"2025-11-15T01:36:03.847Z","0.6.4":"2025-11-15T01:41:28.341Z","0.6.5":"2025-11-15T01:47:10.731Z","0.6.6":"2025-11-15T01:54:45.407Z","0.6.8":"2025-11-15T01:57:25.801Z","0.6.9":"2025-11-15T02:09:41.915Z","0.6.91":"2025-11-16T08:20:13.612Z","0.6.92":"2025-11-16T08:37:03.111Z","0.7.0":"2025-11-16T10:56:22.107Z","0.7.1":"2025-11-16T23:13:53.828Z","0.7.2":"2025-11-17T06:19:51.236Z","0.7.3":"2025-11-17T06:41:20.267Z"},"bugs":{"url":"https://github.com/f/git-rewrite-commits/issues"},"license":"MIT","homepage":"https://github.com/f/git-rewrite-commits#readme","keywords":["git","commit","conventional-commits","openai","ai","rewrite","history","cli","npx","grec","git-rewrite-commits"],"repository":{"type":"git","url":"git+https://github.com/f/git-rewrite-commits.git"},"description":"AI-powered git commit message rewriter using OpenAI - rewrite your entire git history with better conventional commit messages","maintainers":[{"name":"fkadev","email":"fatihkadirakin@gmail.com"}],"readme":"# $ npx git-rewrite-commits\n\n> AI-powered git commit message rewriter using AI\n\n![](./git-rewrite-commits.png)\n\n[![npm version](https://img.shields.io/npm/v/git-rewrite-commits.svg)](https://www.npmjs.com/package/git-rewrite-commits)\n[![Documentation](https://img.shields.io/badge/docs-live-blue)](https://f.github.io/git-rewrite-commits/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Blog Post](https://img.shields.io/badge/blog-read-orange)](https://blog.fka.dev/blog/2025-11-16-git-rewrite-commits-fix-your-messy-commit-history-with-ai/)\n\nAutomatically rewrite your entire git commit history with better, conventional commit messages using AI. Perfect for cleaning up messy commit histories before open-sourcing projects or improving repository maintainability.\n\n📖 **[Read the blog post: Fix Your Messy Commit History with AI](https://blog.fka.dev/blog/2025-11-16-git-rewrite-commits-fix-your-messy-commit-history-with-ai/)**\n\n## Important Disclaimer\n\n> **This tool rewrites git history, which is generally NOT recommended for shared repositories!**\n> \n> **When to use:**\n> - Personal projects before making them public\n> - Feature branches before merging (with team agreement)\n> - Cleaning up local commits before pushing\n> - Preparing repositories for open-sourcing\n> \n> **When NOT to use:**\n> - On shared branches without team coordination\n> - After pushing commits that others have pulled\n> - On main/master branches of team projects\n> - In repositories where commit hashes are referenced\n> \n> **Remember:** Rewriting history changes commit hashes and requires force-pushing, which can disrupt your team's workflow.\n\n## Security & Privacy\n\n🔒 **Important Privacy Notice**: When using remote AI providers (OpenAI), this tool sends your file lists and diffs to external APIs. \n\n**Security Features:**\n- ✅ **Explicit consent required** before sending data to remote providers\n- ✅ **Automatic redaction** of API keys, passwords, and private keys\n- ✅ **Local processing option** via Ollama (no data leaves your machine)\n- ✅ **Opt-in hooks** - all hooks require explicit enabling via git config\n- ✅ **Secure argument handling** - prevents shell injection attacks\n- ✅ **Always creates backups** before history rewrites\n\n**Recommended for sensitive repositories:**\n```bash\n# Use local Ollama instead of remote APIs\ngit config hooks.commitProvider ollama\ngit config hooks.providerModel gemma3\n\nollama pull gemma3\nollama serve\n```\n\n> 📖 See [SECURITY.md](SECURITY.md) for complete security documentation\n\n## Features\n- **AI-powered commit message generation** using OpenAI GPT or local Ollama models\n- **Rewrite entire git history** with better commit messages\n- **Conventional commits** format (feat, fix, chore, etc.)\n- **Multi-language support** - generate commits in any language\n- **Smart filtering** - skip already well-formed commits\n- **Local AI option** with Ollama - no data leaves your machine\n- **Git hooks integration** - automatic AI messages on every commit\n- **Intelligent analysis** of code changes to generate meaningful messages\n- **Batch processing** with rate limiting\n- **Safe operation** with automatic backup branches\n- **Custom templates** for team-specific formats\n- **Quality scoring** to identify commits that need improvement\n- **Verbose mode** with diff preview and detailed processing information\n- **Custom prompts** - Override AI behavior with `--prompt` for unique styles\n- **Efficient processing** - Process only the last N commits with `--max-commits`\n- **Dry-run mode** - Preview changes before applying them\n- **Progress tracking** - Real-time progress indicators with colored output\n- **Custom context** - Project-specific guidelines via `COMMIT_MESSAGE.md` file\n\n## Installation\n\n### Quick Start (No Installation Required)\n```bash\nnpx git-rewrite-commits\n# or shorter:\nnpx grec\n```\n\n### Global Installation\n```bash\n# Full command name\nnpm install -g git-rewrite-commits\n\n# Or install the short alias (grec = git-rewrite-commits)\nnpm install -g grec\n\n# Both work identically:\ngit-rewrite-commits --help\ngrec --help  # Same thing, just shorter!\n```\n\n> ✅ **Works on all platforms**: Windows, macOS, Linux  \n> 💡 **Tip**: `grec` is a shorter alias for `git-rewrite-commits` - use whichever you prefer!\n\n## Quick Hook Installation\n\n**Step 1: Install or update the AI commit message hooks**\n\n```bash\nnpx git-rewrite-commits --install-hooks\n# or with the short alias:\nnpx grec --install-hooks\n```\n\n> 💡 **Updates existing hooks**: If hooks already exist, they'll be updated to the latest version. Non-git-rewrite-commits hooks are backed up before replacement.\n\n**Step 2: Enable the hooks you want (opt-in required for security):**\n\n```bash\n# Option A: Enable message preview before commit\ngit config hooks.preCommitPreview true\n\n# Option B: Enable automatic message generation\ngit config hooks.prepareCommitMsg true\n\n# Or enable both for the full experience!\n\n# For privacy: use local Ollama instead of remote OpenAI\ngit config hooks.commitProvider ollama\ngit config hooks.providerModel llama3.2  # Optional: specify model\n```\n\n**Step 3: Configure your AI provider:**\n\n```bash\n# Option A: OpenAI (sends data to remote API)\nexport OPENAI_API_KEY=\"your-api-key\"  # Unix/macOS\n# set OPENAI_API_KEY=\"your-api-key\"    # Windows\n\n# Option B: Ollama (local processing, recommended for sensitive repos)\nollama pull llama3.2\nollama serve\n\n# Option C: Ollama on a custom server/port\nexport OLLAMA_URL=\"http://192.168.1.100:11434\"  # Unix/macOS\n# set OLLAMA_URL=http://192.168.1.100:11434     # Windows\n```\n\n> **See [QUICK_START.md](QUICK_START.md) for detailed setup guide**\n\n### Additional Configuration (Optional)\n\n```bash\n# Set your template format\ngit config hooks.commitTemplate \"[JIRA-XXX] feat: message\"\n\n# Set language\ngit config hooks.commitLanguage \"es\"  # Spanish, French, etc.\n\n# Set specific model\ngit config hooks.providerModel \"gpt-4\"  # or \"gpt-3.5-turbo\", \"llama3.2\", etc.\n\n# Set custom Ollama server URL (if not using localhost:11434)\ngit config hooks.ollamaUrl \"http://192.168.1.100:11434\"\n```\n\n### Custom Project Guidelines with `COMMIT_MESSAGE.md`\n\nYou can provide project-specific commit message guidelines that the AI will follow by creating a `COMMIT_MESSAGE.md` file. The tool searches for this file in the following locations (in order):\n\n1. **Project root** - `./COMMIT_MESSAGE.md`\n2. **Git directory** - `./.git/COMMIT_MESSAGE.md`\n3. **GitHub directory** - `./.github/COMMIT_MESSAGE.md`\n\nExample `COMMIT_MESSAGE.md`:\n```markdown\n# Project Commit Guidelines\n\n## Requirements\n- Use conventional commits with these scopes: auth, api, ui, db\n- Include ticket numbers when available (e.g., JIRA-123)\n- Security changes must be clearly marked\n- Breaking changes need BREAKING CHANGE in the message\n\n## Project Context\nThis is a financial services API that handles sensitive data.\nEmphasize security, compliance, and performance in commit messages.\n```\n\nSee [`COMMIT_MESSAGE.md.example`](COMMIT_MESSAGE.md.example) in this repository for a complete example.\n\n## Usage\n\n### Command Examples\n\n```bash\n# Using the full command name\nnpx git-rewrite-commits [options]\n\n# Or using the short alias (grec)\nnpx grec [options]\n```\n\nCommon use cases:\n\n```bash\n# Rewrite entire git history\nnpx git-rewrite-commits\n\n# Preview changes without applying (dry run)\nnpx git-rewrite-commits --dry-run\n\n# Generate commit message for staged changes\nnpx git-rewrite-commits --staged\n\n# Process only last 10 commits\nnpx git-rewrite-commits --max-commits 10\n\n# Use custom AI model\nnpx git-rewrite-commits --model gpt-4\n\n# Use local AI with Ollama\nnpx git-rewrite-commits --provider ollama\n\n# Install/update git hooks\nnpx git-rewrite-commits --install-hooks\n```\n\n## Real-World Examples\n\n### Automatic Commit Message Generation\n\n**Two Smart Hooks**: \n1. **pre-commit**: Preview AI message and optionally replace bad commit messages\n2. **prepare-commit-msg**: Automatically generate or use approved messages\n\n```bash\n# Install the hooks (using either command)\nnpx git-rewrite-commits --install-hooks\n# or\nnpx grec --install-hooks\n\n# Enable them (opt-in for security)\ngit config hooks.preCommitPreview true    # Preview before commit\ngit config hooks.prepareCommitMsg true    # Auto-generate in editor\n\n# Configure provider\ngit config hooks.commitProvider ollama  # or use OpenAI with OPENAI_API_KEY\ngit config hooks.providerModel llama3.2  # Optional: specify model\n```\n\nNow when you run `git commit`:\n- With pre-commit: You'll see a preview of the AI message first\n- With prepare-commit-msg: The AI message appears in your editor\n\n### Manual Rewriting for Existing Commits\n\n```bash\n# Clean up the last 5 commits before pushing\necho \"🔧 Improving commit messages before push...\"\nnpx git-rewrite-commits --max-commits 5 --dry-run\n\necho \"Apply changes? (y/n)\"\nread answer\nif [ \"$answer\" = \"y\" ]; then\n```\n\n### Alias for Quick Fixes\n\nAdd to your `~/.gitconfig` or `~/.zshrc`/`~/.bashrc`:\n\n```bash\n# Git alias\ngit config --global alias.fix-commits '!npx git-rewrite-commits --max-commits'\n\n# Usage: git fix-commits 3\n```\n\n```bash\n# Shell alias\nalias fix-last-commit='npx git-rewrite-commits --max-commits 1 --skip-backup'\nalias fix-branch='npx git-rewrite-commits --max-commits 20'\n\n# Usage: fix-last-commit\n```\n\n### Team Workflow: Feature Branch Cleanup\n\nBefore creating a pull request:\n\n```bash\n# 1. Check what needs fixing\nnpx git-rewrite-commits --dry-run --max-commits 10\n\n# 2. Apply improvements\nnpx git-rewrite-commits --max-commits 10\n\n# 3. Force push to your feature branch\ngit push --force-with-lease origin feature-branch\n```\n\n### CI/CD Integration\n\nAdd to your CI pipeline (e.g., GitHub Actions) for PR validation:\n\n```yaml\n- name: Check Commit Quality\n  run: |\n    npx git-rewrite-commits --dry-run --max-commits ${{ github.event.pull_request.commits }}\n    # This will show which commits would be improved\n```\n\n### Preparing for Open Source\n\nBefore making a private repo public:\n\n```bash\n# Fix all commits with custom template\nnpx git-rewrite-commits \\\n  --template \"feat(scope): message\" \\\n  --language en \\\n  --no-skip-well-formed\n\n# Review the changes\ngit log --oneline -20\n\n# If satisfied, force push\ngit push --force-with-lease origin main\n```\n\n## How It Works\n\n1. **Analyze**: Reads your staged changes or commit history\n2. **Generate**: Uses AI to create meaningful, conventional commit messages\n3. **Apply**: Updates your commits with better messages\n\n### Smart Message Replacement\nWhen you use `git commit -m \"bad message\"`, pre-commit can:\n- Suggest a better AI-generated message\n- **Replace your bad message** when you approve it\n- Show what was replaced in the commit editor\n\n### History Rewriting Process\n1. **Creates backup**: Saves current branch state\n2. **Rewrites history**: Uses `git filter-branch` to apply new messages\n3. **Provides recovery**: Keeps backup branch for restoration if needed\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (using conventional commits!)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Bug Reports\n\nIf you discover any bugs, please create an issue [here](https://github.com/f/git-rewrite-commits/issues).\n\n## Contact\n\nFor questions and support, please open an issue in the GitHub repository.\n\n---\n\n**Remember: Always backup your repository before rewriting history!** 🔒\n","readmeFilename":"README.md"}