{"_id":"@buffbirb/unclaude","_rev":"28-28d05218381175f9e8ee9159f9543c5a","name":"@buffbirb/unclaude","dist-tags":{"latest":"1.0.29"},"versions":{"1.0.0":{"name":"@buffbirb/unclaude","version":"1.0.0","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.0","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"38a7bde19b71b02ea38fcc1b7bac5f3cdb9fa666","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.0.tgz","fileCount":7,"integrity":"sha512-4KiDjtD7bl8YXUBltDCMOUhEourk5evJQrqsVfAx8rz5+pXb1QlOEh8nVKwqCkws5vTKKfxFWgqF+RZnus5C4g==","signatures":[{"sig":"MEQCICLJqTr6/kNuIex+TdNU5WoL5Q8gGZCrBjIfzfEqGgVdAiA6fsLcLL0d9B+jB7Uu3KCuHPP95bIfAk825dNLoOWGug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103699},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"5f7e6d4bcdce4377e04e63367c028f9c11c82257","scripts":{"dev":"tsx src/cli.tsx","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.0_1779635273511_0.9053099551709127","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.1":{"name":"@buffbirb/unclaude","version":"1.0.1","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.1","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"363f88a5e9ea49817661ae1807c278dd73c7c3d8","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.1.tgz","fileCount":7,"integrity":"sha512-pBdmrRocJNJbCMM/QWPntpKr21YqYTAczMZndKyLf1z3ckgEHk88dZxbIj8FM+voTM9ICQHL7xMafrt2MDvHNA==","signatures":[{"sig":"MEYCIQCDtpdc++MpddmDhHJyidvzdzdKgUrd5L3pggrfQ1PhQQIhAPTw/lPdc7RF7aSVN48FU4U6JIk4iZFSEaPl8zggOjFU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100906},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"7e7276e38b185d933ab722710a60374699b21543","scripts":{"dev":"tsx src/cli.tsx","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.1_1779656258007_0.8956681327529212","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.2":{"name":"@buffbirb/unclaude","version":"1.0.2","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.2","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"d57c785ef2ec706c4fede211d388784672b8d815","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.2.tgz","fileCount":7,"integrity":"sha512-qD/rSOeXHmzr5O+/hKj4IpW3G5nu90LSXG8QyPoLq8nfR8QK0KrC6KgQ84V74zoM+EpIm/QhmoIrbTUVHOvaYQ==","signatures":[{"sig":"MEYCIQCVXhHhBnaFJmZ4NFCLQ2zrjg0Kwf9np+dBLcazBL1vvAIhAKJKaeuZyvvexqSg5e89bGBSQ3bbGoIMF/llPMMbdAhf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102002},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"af9473f7966c48901f6dfaad5698a4aac2288ced","scripts":{"dev":"tsx src/cli.tsx","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.2_1779657635806_0.19851435789166505","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.3":{"name":"@buffbirb/unclaude","version":"1.0.3","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.3","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"0501dde878d24f57635e7bff6ae82a8463e6f5b6","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.3.tgz","fileCount":7,"integrity":"sha512-CYYIManqiMJ7eI6kSqTYyMqDgVVm++jete/OAzjqhBeBzwadqAYFghaT1lWQDCJD9mZqM5Gubtydeket5TO4CQ==","signatures":[{"sig":"MEUCIQC3SdTvSOQ4kN+nblZvrUoJxB3B7QZIFyjmAvB1ld1KdAIgVif2gGANV/hmoeUcH+bQy7yu3YSPkgha75VQSjZN8yc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102182},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"0e9599a490e942601baed51334e28ae2e26d930d","scripts":{"dev":"tsx src/cli.tsx","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.3_1779661140750_0.34413984276841214","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.4":{"name":"@buffbirb/unclaude","version":"1.0.4","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.4","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"aaec2276fac26d19d68ef34e843d77a1aa15e163","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.4.tgz","fileCount":7,"integrity":"sha512-FCWDKppz2HWgdOtlcSND0Hj0xyUjGx+z9kfLrNNQa22ai1W9hOd7QvpL9oRHoei/RKFBRhkBwD9z8cBY0RDeWA==","signatures":[{"sig":"MEUCIQD2n0kloixD3+hu7ONo/nPz3SIn+Xcub+66d7yWGuXT2AIgdTdImBbR40Mh+986UqrpzI2IZTQJvIm9HJAPggusbvI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113526},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"0e9599a490e942601baed51334e28ae2e26d930d","scripts":{"dev":"tsx src/cli.tsx","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.4_1779719164395_0.21737199712976074","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.5":{"name":"@buffbirb/unclaude","version":"1.0.5","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.5","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"c83012db65509f6300488e166b1597e66be35b4d","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.5.tgz","fileCount":7,"integrity":"sha512-72TWbphsaJVutnY6MfQLqTp5t5askJTFH3QmhNRLWSeHoOwMtzhId6AXNuBeW86WDb7kSwzCtcm8Lm20G9fCgA==","signatures":[{"sig":"MEQCIB8u1VQt/MRTUrPSytNwWqntDD6U4FYNcdGA45LxSouyAiBELHLBpC9F/6Z3gWJMrglIlo5Na8JQJBh4x837sMck5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113526},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"23391d9bb86c74b71e2597797574189dabc8f989","scripts":{"dev":"tsx src/cli.tsx","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.5_1779720431196_0.457475042845944","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.6":{"name":"@buffbirb/unclaude","version":"1.0.6","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.6","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"1f5aab75f00332295f6c50b874bc323380c234a9","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.6.tgz","fileCount":7,"integrity":"sha512-XWBLYZvC7movUrtCBgkcMpCATXXoCxZcIP7P6nzD0qQ/tLcNWMhCpeDlqI3w6WaCzicI4HZPwyb3LeklSpAucg==","signatures":[{"sig":"MEQCICXk4EPSmxhnvbmr4f/ZqB7HC4t7aagy4jAPBr+81OXOAiADMDY0XcaKCHTM/X+fir7hjhxrYnlg9+c2V2hcNlukiw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108543},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"53102b47a5309b1485470f8174f0a43c492d2e12","scripts":{"dev":"tsx src/cli.tsx","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.6_1779726640729_0.5062898948094943","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.7":{"name":"@buffbirb/unclaude","version":"1.0.7","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.7","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"187bc89363db3bd6a7496bf02e3ed220e586317d","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.7.tgz","fileCount":7,"integrity":"sha512-qLpr4OVQD1ngrrm1wa1qWcFSIkdUpuafR6etMRsAkyYl53DbUlM6ySOeR2IajggFdxEl25nhQdxI7ox1cYEFoQ==","signatures":[{"sig":"MEYCIQD1c905li2VM1Eh5DcSec44XDtzCxTIXQNlXAGMpE3F0gIhAL/z+xV7wzYNShWqpxT45S7nzvyGNdwFd+tU4LARY3xx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":108543},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"6f9ba009463d6af5e6e5695ab3c78179f631c5ac","scripts":{"dev":"tsx src/cli.tsx","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.7_1779726866571_0.8578002949980739","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.8":{"name":"@buffbirb/unclaude","version":"1.0.8","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.8","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"4a534a80f581cf5fbd127e364a1c68aa9495b24e","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.8.tgz","fileCount":7,"integrity":"sha512-lFZChVSgrXRd/ISobQeukf/Y9bdeg/8UW0kBtgmjXaKLOxwLEZ2BqSPfRrRE0vHNWYQ2eH3uYobzJqvfPVSEFw==","signatures":[{"sig":"MEQCICAuF1Pdfd2dTez6t/DzoZoO57UsMKC8i1D11odIAkTjAiBL4KGBUI79g1hoPHrH/w37NUX6kX102ZLoYNXMigDyIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113720},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"87b9cafac3760b77135f4d258f2e14ccf5347a2e","scripts":{"dev":"tsx src/cli.tsx","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.8_1779730728840_0.45237448482055953","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.9":{"name":"@buffbirb/unclaude","version":"1.0.9","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.9","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"8dbba371cdc68dcdf95f5d0466bfcfc87e70d1ac","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.9.tgz","fileCount":8,"integrity":"sha512-qCBbn56/Eged9J/8Lxy/wIe6fguwVT5931EVGNHyLd/IN59WWO1EtNbYk0euvY6aZgIMe3c0SzYsVOMdQWklXA==","signatures":[{"sig":"MEQCIAmnbxmUBCA415heT3reJM8pcxgJbeskF1WIZdiUpdSfAiARwctHvJieluCgdKd2ojcTNpwhDzQW/NLK0vPsmi14uQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":115840},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"5f52891c2bb88068e8e360024ecb179d5dcffd51","scripts":{"dev":"tsx src/cli.tsx","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.9_1779807427685_0.7722841884795808","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.10":{"name":"@buffbirb/unclaude","version":"1.0.10","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.10","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"1310b7cca77de0505d6ea3e24b222da5d1f92f3f","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.10.tgz","fileCount":8,"integrity":"sha512-0sLvAaAsRr3HzIB+mYVrHchX8cmJHiG1Az/Y4jBkrhv5pYvMNbmhVwM+2ZEkw1YgVzPreJV1CZHEdAK2HGW2IQ==","signatures":[{"sig":"MEUCIQDSVrMskCD42ALuZ15qsNfLcSq+XYBqI84ZfTZa+Sz2oQIgcalLuVtEGAYq0RiEEjuG2ZLLv6nA7e1voceIRTddXbE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118228},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"4ec7c96d7d9caa8fce4b207f9da6b6bda91f4cf3","scripts":{"dev":"tsx src/cli.tsx","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.10_1779940237369_0.9282283088050423","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.12":{"name":"@buffbirb/unclaude","version":"1.0.12","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.12","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"a97443b6d5b3c0132d5beb04e2b4616f92833a16","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.12.tgz","fileCount":9,"integrity":"sha512-QD1FI5QyysA2s0rE/P01wW/Bfn2kyuWiA+yZDkVJEbXDS5nlNcptJu71V6eDrE0W/NBfg9lFMQoO5K0yQhg8Qw==","signatures":[{"sig":"MEUCIQCe1/LIqMnd3q4tWmIVTJsF3kxr60dMpMPMPxcX3go0wAIgb5yDxpXthTMflW01j5FlThV0bM8ilx+ldygbo4HbqFQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145826},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"bc549bb86ba14d24b1fbaf6bcb95ea654be52f91","scripts":{"dev":"tsx src/cli.tsx","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.12_1780151976276_0.48459843659105206","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.13":{"name":"@buffbirb/unclaude","version":"1.0.13","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.13","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"b6d32cba82fdc188ff75de97f8a694ac456d4fc5","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.13.tgz","fileCount":9,"integrity":"sha512-T6rwSBkP4kKzYbs7FlXmNpYCV883oFqwVCzNrXFxFUp4e4nug02Im8zr+ZZd66PmVGKO97Dy/WNvcIrYnxBTQQ==","signatures":[{"sig":"MEUCIACp+ESaIpmW+1UsYteelfZqhoT0+IVQ9o2QpiaRl77eAiEArrHIPHUsSmXlLtzlRLzJa35eL/hWLe7qWrF/2q8LzJQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":148498},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"46a07d85ec09923b20af2d22a1f250c3786aff37","scripts":{"dev":"tsx src/cli.tsx","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.13_1780155953773_0.07384038473747201","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.16":{"name":"@buffbirb/unclaude","version":"1.0.16","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.16","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"c5acb462f15b6740c69810abe373c046cbddb61b","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.16.tgz","fileCount":9,"integrity":"sha512-AWXMWYIN7A8RwbLL+oeaGzdrEB0rIEMLebfYf+ICWeNY4ucZMytj8f1vo3RDqS2MqL5J3XEjsnOCxuv2JoSJdA==","signatures":[{"sig":"MEQCIHkdCGbeDM8G6J1lvZpi0JHLcMbjA/IE1j9AUJ896JO/AiAsVWyWg46PsnqZVKrJUpB5gsJ3V0siUrwE/XvHaxoHzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149856},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"5a90f29f15817acf2a7c624ab2e6b013178c1e80","scripts":{"r":"npm version patch && git push --follow-tags && npm publish --access public","dev":"tsx src/cli.tsx","build":"tsc","release":"npm version patch && git push --follow-tags","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.16_1783271500594_0.1399384049649035","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.17":{"name":"@buffbirb/unclaude","version":"1.0.17","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.17","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"8ceeb9dc123b4f947b30dfe6245596f5402b0769","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.17.tgz","fileCount":9,"integrity":"sha512-rOOWZMuyiNBGsRChv1au7D5604/SPHrc30chsG2ry6y3QbarXKJzYbg+it6VC0vT6PMHxrGoAweU40zLbCEuEQ==","signatures":[{"sig":"MEUCIQDkzrnpSPuuR+rOrioEAbyv8wYh8X3xbJr+SoPJHaoaygIgchayFdZpuxTJFu/ZQB3VM/VZjTgNboIPC5GttJn4xHE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146512},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"16dc535e8f56af5316139e3025162c3167364a58","scripts":{"r":"npm version patch && git push --follow-tags && npm publish --access public","dev":"tsx src/cli.tsx","build":"tsc","release":"npm version patch && git push --follow-tags","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.17_1783273264509_0.9565384202069374","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.18":{"name":"@buffbirb/unclaude","version":"1.0.18","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.18","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"9a8db8ca3fde24eeea7d2a627ae6a208f54e5642","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.18.tgz","fileCount":9,"integrity":"sha512-ZYd421BV9PDMzhX5wILCjA+fybnYYlTenSIZFGUDN8EWvmXw9bNZwOPx8KbfvQqBmKb37qy49rD0Y8Y0FUONSg==","signatures":[{"sig":"MEUCIQD640rMNuH6Er+mfkzIFCalmUsfqYs7ZNmQByqd67ruUwIgLM2h9a8g7mgC/Kn5rkzolSEt6c+YQ93h2Tl7oF25U/g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145503},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"ac1559ae0e4521fd8d0da98325412a6a0b6cda1f","scripts":{"r":"npm version patch && git push --follow-tags && npm publish --access public","dev":"tsx src/cli.tsx","build":"tsc","release":"npm version patch && git push --follow-tags","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.18_1783275740050_0.2632784190733999","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.19":{"name":"@buffbirb/unclaude","version":"1.0.19","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.19","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"312e4474d8f3623280bcc498eb2ef43df3fb7cc9","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.19.tgz","fileCount":9,"integrity":"sha512-Zo6tJt+49rfQMfXgQYyrVTKb2MaEEbkFyZvyuTqoXnDPCembVh/Zftkq3m2QikVWYL3agRwrj83kH2scsYpaRw==","signatures":[{"sig":"MEUCIQC9uoB0irYvPbnYITno7+D7bw3dHI15jm0ZBRKKToCA2gIgaQVk6+htDzU8HFrgqm/nyfj8ogMSw+gzBxEVuoZZXw4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145528},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"86f22311e715e21e8a1a411e1fa494e30b41d1d0","scripts":{"r":"npm version patch && git push --follow-tags && npm publish --access public","dev":"tsx src/cli.tsx","build":"tsc","release":"npm version patch && git push --follow-tags","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.19_1783275959760_0.09766836761785447","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.20":{"name":"@buffbirb/unclaude","version":"1.0.20","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.20","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"92e30398fc902c8b73477fcbf35dab4cc80cab17","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.20.tgz","fileCount":9,"integrity":"sha512-KzP8UZWCLFFSl4gWNc8D5E0uQ8LaqA8zIs31R9Xe/c1MqIYuzNTK/ECkiAp/ucCbSMB1FWdDXYxDwe5Wf3VJGQ==","signatures":[{"sig":"MEUCIQDUi07bTE6rlC2yqFGPlam/QsgZeu777M1Pw6AycZ2RdwIgKQes1tQLHiUQ9vo3qJiZHqUswGKl/xTvZ2KXfyXGKdQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151056},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"35c77ae86aa4441fd861d7a106b15141eac0e875","scripts":{"r":"npm version patch && git push --follow-tags && npm publish --access public","dev":"tsx src/cli.tsx","build":"tsc","release":"npm version patch && git push --follow-tags","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.20_1783297745774_0.69116709355367","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.21":{"name":"@buffbirb/unclaude","version":"1.0.21","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.21","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"984aaf72025b1c8feb8451c43b7033c4137a2700","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.21.tgz","fileCount":9,"integrity":"sha512-YnsrFBLgyB73g6noWAIMzsb1nyaw84cPUYa34dw7LrrFWIxdjfJH5vo6LSW1sBBTs20eDoX5dQUAl8mNtxofKw==","signatures":[{"sig":"MEYCIQDiN86PepojJ89yx4gHbw7TzbHsKDqu77RMcfQLsGcokQIhAIXSSYyQNHQW3ibe9gvgyWrJLSQuw2YQ41XbzUY3G8NO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158365},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"e6a951c5be69ea03592cf3a005ac0695875d9b49","scripts":{"r":"npm version patch && git push --follow-tags && npm publish --access public","dev":"tsx src/cli.tsx","build":"tsc","release":"npm version patch && git push --follow-tags","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.21_1783636842553_0.6118935800797611","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.22":{"name":"@buffbirb/unclaude","version":"1.0.22","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.22","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"58b4754292e7c5166ec7dda527cf6293e60da131","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.22.tgz","fileCount":9,"integrity":"sha512-d+Rie35leueKKlFWAn7zDVxPJ4H7Org+QqiPu/x6je4wXpu/aOmiFHeZLLwpiA5dhfdPdwYFrKKOeRb9JPlGNg==","signatures":[{"sig":"MEUCIGWRRVa5nP9Di5LAQynt8VS/KY7UAWFULkqkfmtBrKuiAiEA58xQP6zsx/mAafPMy+nCmR7rj3z8G69LwEVi1v/hCf8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":159576},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"c1014338c8b6378432b88c7e03972588fdd5d7e6","scripts":{"r":"npm version patch && git push --follow-tags && npm publish --access public","dev":"tsx src/cli.tsx","build":"tsc","release":"npm version patch && git push --follow-tags","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.22_1783646121270_0.6786692707009638","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.23":{"name":"@buffbirb/unclaude","version":"1.0.23","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.23","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"9e734a26f9ba7ad3e5b2d058ffa1ab27d9081e95","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.23.tgz","fileCount":9,"integrity":"sha512-W8151Y7FAhb6MRSegH5OTkcMURX+zfm2PsbsoFcZb77dPKaM0cKY0zRwBcNy26dK2nGlEbIP5e08AGp5stYOXg==","signatures":[{"sig":"MEUCIG0Qh3gDJVWBAn9L+IlkkkS5hktC/9N+DM1aUsVvAiIXAiEAinOLsZAc0wuqS0wVApXnAFSu1CaK68n0r/lEV04kB6s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":161316},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"7ad795cfe2e203cabe88067ce3f67264f799129c","scripts":{"r":"npm version patch && git push --follow-tags && npm publish --access public","dev":"tsx src/cli.tsx","build":"tsc","release":"npm version patch && git push --follow-tags","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.23_1783647302268_0.18821207717676924","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.24":{"name":"@buffbirb/unclaude","version":"1.0.24","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.24","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"69ca1346e22f1acc1cd3b2aa336cc29b3ec012be","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.24.tgz","fileCount":9,"integrity":"sha512-V45kNL4RwBRqpF5yKAWpAxaUo93hU6I04Cvt/zANWdNmc2ehhqhvCp699a60J4gAkmOyNJtrhn/6w2DRMksDig==","signatures":[{"sig":"MEYCIQCx+2C0kRJdLqQ5PQQDQCBoXO9dv/VD/PbTr4vZUXVjuwIhAOvH4cbgHTEo61WdmyEs0cuz6WWX5KXxVgjoIVJuNr8V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158641},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"b5d8eef3d84634be7888818074ff4820e1cc5e76","scripts":{"r":"npm version patch && git push --follow-tags && npm publish --access public","dev":"tsx src/cli.tsx","build":"tsc","release":"npm version patch && git push --follow-tags","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.24_1783718534354_0.1541243883591903","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.25":{"name":"@buffbirb/unclaude","version":"1.0.25","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.25","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"15c39b2ecb348316330ff25288471b0d97d3f6b1","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.25.tgz","fileCount":9,"integrity":"sha512-s8nnAz/EFkqcaOjalhiBGJpScVl35C8ohlNqgPWCmvlMbG7/rxfIeTlgfnka/nln8Wj2EYBltSpDg4by8oNzzg==","signatures":[{"sig":"MEUCICsu9Rznxj9giMcXkUfjWB9D4S18Ec6YCoKGaWuZy2ZOAiEA6j75vJrDt0nhoj/PymXI9EBWx96KdKk4Pe0gfh1MY2U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":159423},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"1c68e6221fab7e48da71351a513be18e63f8f09f","scripts":{"r":"npm version patch && git push --follow-tags && npm publish --access public","dev":"tsx src/cli.tsx","build":"tsc","release":"npm version patch && git push --follow-tags","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.25_1783721040324_0.07286141855755024","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.26":{"name":"@buffbirb/unclaude","version":"1.0.26","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.26","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"048c2d90ad3deff32cd4eda83b1f46c8b9e0c945","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.26.tgz","fileCount":9,"integrity":"sha512-kWFm8tSp/KMGp2PJss04v3L0PtK2Iek+1EPszTcSiLaQ/QdJBMpgMpnSMfW/sOn9fScPh7vjKq9ngqmxBc6rCA==","signatures":[{"sig":"MEUCIQCro+1qZAVXNN/3WxZ5rVHUmWEVALRgO4nVYz/KIW51kAIgJaIkGXKJjiRq7DTplFhyebg+7Yud+kdE99zFmMvDACQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":156815},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"6b7a6612791e623d570ab5cff760db86d8ad1a5f","scripts":{"r":"npm version patch && git push --follow-tags && npm publish --access public","dev":"tsx src/cli.tsx","build":"tsc","release":"npm version patch && git push --follow-tags","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.26_1783738067008_0.9951144568344104","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.27":{"name":"@buffbirb/unclaude","version":"1.0.27","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.27","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"f7f2aa3dc47eb56d6b99ddadd1204227752a15a2","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.27.tgz","fileCount":9,"integrity":"sha512-xSR0XRyLZpagCNNCoDbSbBApiaHJjNFSWKiMcMN0+4AEDt2ZASWu9iHDLdhNlp/q0PqI8Q9htKKWJOzY8i04KQ==","signatures":[{"sig":"MEQCIEtSPrXT9HxkIrdzbFHV+9HC9A3PUS08fudsxOkJv+8gAiB6LpyxUlp09SRY93ti9Ikp8fQb7YDnPcYJ354iy7BNQQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":159101},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"eca62807c3f33518ee64f0536e649fe911ec6868","scripts":{"r":"npm version patch && git push --follow-tags && npm publish --access public","dev":"tsx src/cli.tsx","build":"tsc","release":"npm version patch && git push --follow-tags","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"11.13.0","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.27_1783819875501_0.6172648931043703","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.28":{"name":"@buffbirb/unclaude","version":"1.0.28","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.28","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"3aeeb0217aa2b52cc88590061504703b793981cf","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.28.tgz","fileCount":12,"integrity":"sha512-VtP8hvAjw6cCCk9xsg++RYHxzLKy2oNhkpeD4zVgjsb6aHjVSKBtEErFBx00qv/1DxUug0pnjs6t4WCEXbZKCw==","signatures":[{"sig":"MEUCIQDtaPHFakZ81QqjwWv/S9t2PJn0306wXFdgBXYOe1YdNwIgF2Fo1RjQzgqHaQaqrAOHLyPn1zHS0c62auMiYOtQMrc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176915},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"410e1ff532a3b4e6c501f844c62a695d66dac479","scripts":{"r":"npm version patch && git push --follow-tags && npm publish --access public","dev":"tsx src/cli.tsx","build":"tsc","release":"npm version patch && git push --follow-tags","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"12.0.1","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.28_1783881681115_0.38925491872197404","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"},"1.0.29":{"name":"@buffbirb/unclaude","version":"1.0.29","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"license":"MIT","_id":"@buffbirb/unclaude@1.0.29","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"bin":{"unclaude":"dist/cli.js"},"dist":{"shasum":"b503758c4e4da977588ad505d4a38ccafd96ae73","tarball":"https://registry.npmjs.org/@buffbirb/unclaude/-/unclaude-1.0.29.tgz","fileCount":12,"integrity":"sha512-BP34tRZZ4ZQyY9HcqO78JBDz7z+Bj35FegM7+GHVp4YAXpyN2eX3quczavDxGxDCHrtWp0aCl+r9HzU03ydcbA==","signatures":[{"sig":"MEQCIGb7csO7/9fWHKuhLKHECcQQG5mIhOvmOB2OZdWYw6HpAiBkdmx2QVncOFVEaxy0mfqbkBjDdVXBw7Dq14/5hPNzOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170222},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"43ebf1fdf3ca26615e6d5e18af42dc56545a5968","scripts":{"r":"npm version patch && git push --follow-tags && npm publish --access public","dev":"tsx src/cli.tsx","build":"tsc","release":"npm version patch && git push --follow-tags","release:major":"npm version major && git push --follow-tags","release:minor":"npm version minor && git push --follow-tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"wizaru","email":"mp3242@columbia.edu"},"_npmVersion":"12.0.1","description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.0.1","react":"^18.3.1","commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0","@types/react":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/unclaude_1.0.29_1783891042875_0.11761575013615966","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Unmaintained"}},"time":{"created":"2026-05-24T15:07:53.396Z","modified":"2026-09-23T12:33:36.753Z","1.0.0":"2026-05-24T15:07:53.627Z","1.0.1":"2026-05-24T20:57:38.144Z","1.0.2":"2026-05-24T21:20:35.996Z","1.0.3":"2026-05-24T22:19:00.894Z","1.0.4":"2026-05-25T14:26:04.555Z","1.0.5":"2026-05-25T14:47:11.331Z","1.0.6":"2026-05-25T16:30:40.869Z","1.0.7":"2026-05-25T16:34:26.714Z","1.0.8":"2026-05-25T17:38:49.021Z","1.0.9":"2026-05-26T14:57:07.861Z","1.0.10":"2026-05-28T03:50:37.549Z","1.0.12":"2026-05-30T14:39:36.417Z","1.0.13":"2026-05-30T15:45:53.916Z","1.0.16":"2026-07-05T17:11:40.727Z","1.0.17":"2026-07-05T17:41:04.647Z","1.0.18":"2026-07-05T18:22:20.179Z","1.0.19":"2026-07-05T18:25:59.958Z","1.0.20":"2026-07-06T00:29:06.003Z","1.0.21":"2026-07-09T22:40:42.709Z","1.0.22":"2026-07-10T01:15:21.420Z","1.0.23":"2026-07-10T01:35:02.407Z","1.0.24":"2026-07-10T21:22:14.482Z","1.0.25":"2026-07-10T22:04:00.458Z","1.0.26":"2026-07-11T02:47:47.167Z","1.0.27":"2026-07-12T01:31:15.646Z","1.0.28":"2026-07-12T18:41:21.281Z","1.0.29":"2026-07-12T21:17:23.015Z"},"license":"MIT","keywords":["ai","claude","opencode","cli","terminal","setup","developer-tools","privacy","lsp","headroom","openspec"],"description":"An opinionated AI dev tool setup script with a terminal UI. Configure privacy, code intelligence, and tool wrappers for Claude Code and OpenCode.","maintainers":[{"name":"wizaru","email":"mp3242@columbia.edu"}],"readme":"# unclaude\n\nAn AI sanitizer and setup script with a TUI and CLI.\n\n## Why?\n\nDo you make VSCode your commit author? Do you write \"sent from my Dell XPS\" in your PRs?\n\nIf not, then maybe you don't want AI agents leaving their dirty footprints all over your git history. This package will clean up commits from your local environment or Claude Code Web.\n\nWant local sandboxes with better default sanitization? Try the `sbx` Apple Container wrapper.\n\nI also added opt-in support headroom and openspec, which I consider broadly useful.\n\n## Quick start\n\n```sh\n# ───────── Installing ──────────\n\n# Launch the TUI anywhere\nnpx @buffbirb/unclaude@latest\n\n# Certain features (clangd on linux, apple container) may require sudo\nsudo -v && npx @buffbirb/unclaude@latest\n\n# ───────── Extras ───────────\n\n# After installation:\n# Run opencode in sandbox with --dangerously-skip-permissions and headroom token compression\nheadroom-start sbx opencode\n\n```\n\n## Presets\n\nLocal environments are very simple to set up, but managed/remote environments employ a lot of tricks to make their attributions stick:\n- system prompt overrides `CLAUDE.md`\n- container/environment overrides git config and `settings.json`\n- GitHub PRs use MCP, most likely remote, which is not interceptable\n- tracked files are reverted between the pre-install script and session start, potentially scrubbing `.claude/*` and `.gitignore`\n- sometimes the setup script is skipped\n\nThis script offers two preset solutions:\n- **Local preset (default)** — minimal setup for local repos; no commits.\n- **Hybrid preset** — setup for local and managed environments; some items are committed and pulled into the remote environment to control attribution.\n\nI could not make a purely remote setup work without relying on any committed items. There is nothing special about claude code web so feel free to explore other options.\n\n## Features\n\n| Feature | What it does |\n|---|---|\n| **Stop Telemetry** | Exports `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1` in `~/.unclaude/airc` |\n| **Agent JSON config for git commits** | Sets `attribution: { commit: '', pr: '', sessionUrl: false }` in Claude Code `settings.json` |\n| **Agent SessionStart hook for git commits** | Registers a Claude Code `SessionStart` hook that installs a bash `commit-msg` hook in `.git/hooks` (and sets local git identity) at the start of every session |\n| **Git branch rename (immediate + pre-push)** | Renames the current `claude/*` or `claude-*` branch immediately, and installs a `pre-push` hook in `.git/hooks/` that intercepts any `claude/*` push, rewrites it to the stripped name on the remote, deletes the old remote branch, and aborts the original push |\n| **GitHub Action for PR body** | Writes a workflow that strips Claude attribution from PR bodies on `opened`/`edited` |\n| **LSP** | Installs Claude Code plugins for C++, Swift, Python, TypeScript, Go, and Rust LSP support (`claude-plugins-official`). Language servers themselves are not installed — see [LSP Install Details](#lsp-install-details). |\n| **Headroom** | Installs headroom via uv; writes a `headroom-start` wrapper script to `~/.local/bin/` that starts the proxy and `exec`s its arguments (e.g. `headroom-start claude`) |\n| **OpenSpec** | Installs `@fission-ai/openspec` globally via npm; optionally runs `openspec init` in the current directory |\n| **Playwright CLI** | Global. Installs the `playwright` npm package and its Chromium browser so the agent can drive a headless browser directly through its shell tool (`playwright open`, `playwright screenshot`, `playwright codegen`, or scripting against the `playwright` package) — no MCP server, no per-repo registration. |\n| **Apple Container Sandbox** | Writes an `sbx` wrapper script to `~/.local/bin/` that runs Claude or OpenCode inside an Apple Container (macOS only). The sandbox images ship the same Playwright CLI and headless browser pre-installed, run entirely inside the container (no exposed port, isolated profile) so it never touches a browser outside the sandbox. |\n\n### Feature matrix\n\n| Feature | Agents | Scope | Local default | Hybrid default |\n|---|---|---|---|---|\n| Stop Telemetry | Claude Code | Global | ✓ | ✓ |\n| Agent config for git commits | Claude Code | Project | ✓ | ✓ |\n| Agent SessionStart hook for git commits | Claude Code | Project |  | ✓ |\n| Git branch rename (immediate + pre-push) | Claude Code, OpenCode | Project |  | ✓ |\n| GitHub Action for PR body | Claude Code, OpenCode | Project |  | ✓ |\n| LSP | Claude Code | Global |  |  |\n| Headroom | Claude Code, OpenCode | Global |  |  |\n| OpenSpec | Claude Code, OpenCode | Global (install), Project (init) |  |  |\n| Playwright CLI | Claude Code, OpenCode | Global |  |  |\n| Apple Container Sandbox | Claude Code, OpenCode | Global |  |  |\n\n### Personalization\n\nIf you select **Agent SessionStart hook for git commits** or **Git branch rename**, a second screen asks whether to personalize the setup to your identity.\n\n| Field | Purpose |\n|---|---|\n| **Git user** | Your `user.name` (prefilled from `git config --global user.name`). Used by **Agent SessionStart hook for git commits**. |\n| **Git email** | Your `user.email` (prefilled from `git config --global user.email`). Used by **Agent SessionStart hook for git commits**. |\n| **Branch prefix** | Prepended to renamed `claude/*` branches (e.g., `username/foo`). Used by **Git branch rename (immediate + pre-push)**. |\n\nThis is most useful in **managed/remote environments** (e.g., Claude Code Web) where the AI does not have access to your local git configuration. By embedding your identity, commits and branch metadata are authored under your name rather than an AI-generated default.\n\n> **Note:** Commits will still show as **unverified** on GitHub / GitLab because most managed providers do not offer a secure place to store a GPG or SSH signing key.\n\n### Git Settings\n\nCurrently only `.gitignore` is amended with a section covering generated attribution-related files.\n\n## Optional Tools\n\n### LSP Install Details\n\nWhen the **LSP** feature is selected, `unclaude` runs `claude plugin marketplace update claude-plugins-official` followed by `claude plugin install <plugin>@claude-plugins-official` for each plugin below. Claude Code only — OpenCode isn't supported for this feature.\n\n**Language servers are not installed.** Each plugin expects the corresponding server on `PATH`; install it yourself however you normally manage toolchains. If a server is missing, Claude Code surfaces it in the `/plugin` command's Errors tab.\n\n| Language | Claude Plugin |\n|---|---|\n| C++ | `clangd-lsp` |\n| Swift | `swift-lsp` |\n| Python | `pyright-lsp` |\n| TypeScript | `typescript-lsp` |\n| Go | `gopls-lsp` |\n| Rust | `rust-analyzer-lsp` |\n\n### Headroom helper\n\n`headroom-start <command>` starts the headroom proxy if it isn't already running, then `exec`s its arguments. On each invocation it:\n\n- **Starts the proxy if needed** — checks port 8787 with `lsof`; if nothing is there, launches `headroom proxy --port 8787` in the background with `HEADROOM_CODE_AWARE_ENABLED=1` and `HEADROOM_HOST=0.0.0.0`, then waits briefly for it to bind.\n- **Sets LLM base URLs** — exports `ANTHROPIC_BASE_URL=http://localhost:8787` and `OPENAI_BASE_URL=http://localhost:8787/v1` so any agent started after it automatically routes through the proxy.\n- **Execs the rest of the command** — replaces itself with `\"$@\"`, so `headroom-start claude` is equivalent to running claude directly, just with the proxy in front.\n\nIf called with no arguments it just starts the proxy and sets the env vars, which is useful when sourced in a pre-session script.\n\n### Playwright CLI\n\nSelecting **Playwright CLI** installs the `playwright` npm package globally and downloads its headless Chromium build. There's no MCP server and nothing is registered into `.mcp.json` or `opencode.json` — the agent gets browser automation the same way it gets any other CLI tool: by invoking `playwright` directly through its shell tool (`playwright open <url>`, `playwright screenshot`, `playwright codegen`, `playwright pdf`, or a one-off script requiring the `playwright` package). Because it's a plain global install rather than a per-repo registration, it works out of the box in every project without a prompt to approve a server, and it can't collide with a separately-registered MCP server the way the old project/user-scope split could.\n\nThe `sbx` sandbox ships the same CLI and browser baked into its image (see [Sandbox](#sandbox-macos-only)) — no extra setup needed inside the container.\n\n## Sandbox (macOS only)\n\n`sbx claude` / `sbx opencode` runs the agent inside an Apple Container. On each launch it:\n\n- **Fetches the image** — pulls the latest sandbox image from GHCR if a newer version is available; falls back to the locally cached image when offline.\n- **Skips the directory trust warning** — the working directory is bind-mounted into the container at `/workspace`, so the agent starts there without prompting.\n- **Skips the permissions warning** — `--dangerously-skip-permissions` is passed automatically; you never see the interactive prompt.\n- **Copies auth from the host** — forwards your LLM credentials (see [AI agent auth](#ai-agent-auth)) and a GitHub token (see [GitHub auth](#github-auth)), so you don't log in again inside the container.\n\nThe sandbox image is based on `node:22-bookworm-slim` and comes with `git`, `curl`, `sudo`, `jq`, `python3`, `gh`, the agent CLI, and the Playwright CLI with a headless Chromium (contained in the sandbox — no exposed port; drive it via `playwright ...` through the agent's shell tool, no MCP registration needed) pre-installed. `git` is pre-configured to use the forwarded token for HTTPS operations and to rewrite SSH remotes to HTTPS, so the agent can clone and push without an SSH key. Language toolchains aren't baked into the image but are bootstrapped on demand for repos that opt in — see [On-demand language toolchains](#on-demand-language-toolchains-makey).\n\n### AI agent auth\n\nHow your LLM credentials reach the agent inside the sandbox, and whether they expire:\n\n**Claude Code** (priority order):\n\n1. **`ANTHROPIC_API_KEY`** from the host environment, forwarded as-is — **never expires** (until revoked).\n2. **Claude subscription** — on macOS the OAuth **access token** is read from the `Claude Code-credentials` Keychain entry and forwarded as `CLAUDE_CODE_OAUTH_TOKEN`. Only the access token is passed (not the refresh token), so it **can't refresh inside the container**. These tokens last **~8 hours**; when one lapses, re-run `sbx` to grab a fresh one (your host app keeps the Keychain refreshed in the background).\n\n**OpenCode:**\n\n- **Provider API keys** are forwarded from the host environment (a curated allowlist — `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, `GEMINI_API_KEY`, `OPENROUTER_API_KEY`, AWS / Azure / Bedrock / Vertex, …). **Never expire.**\n- **OAuth providers** (`/connect` logins) live in `~/.config/opencode` and `~/.local/share/opencode`, which are **bind-mounted read-write**. Since that credential store is shared with the host, OpenCode refreshes an expired token in place — so it doesn't hard-expire like the Claude Keychain token.\n\nIn short: API-key auth never expires; the **Claude subscription token is the one that lapses (~8h)** and is renewed by re-running `sbx`.\n\n### GitHub auth\n\nThe sandbox runs the agent with `--dangerously-skip-permissions`, so any GitHub token forwarded into it can be used unattended. To keep the blast radius minimal, `sbx` can optionally mint a **short-lived, single-repo token** from a **GitHub App** instead of forwarding your full `gh` login.\n\n```sh \n# One-time setup after install step:\nnpx @buffbirb/unclaude container-gh-app\n```\n\nFollow the instructions and set up a GitHub app. The process is mostly automatic.\n\nGitHub Apps are private by default, and a private App can only ever be installed on the single account (your personal account, or one org) that owns it. So one App does not cover both your personal repos and an org's repos — `container-gh-app` supports multiple Apps side by side, one per account, stored under `~/.unclaude/github-apps/<owner>.json` (Keychain entries are similarly keyed per App). Run `npx @buffbirb/unclaude container-gh-app` from inside a repo whose owning account isn't configured yet, and it'll ask which account to create the App on (personal or a specific org) and set one up for it. Run it again from a repo whose account is already configured and it skips the questions, reusing that account's App and just reopening its install page so you can authorize the new repo.\n\nHow it works on each `sbx claude` launch:\n\n1. `sbx` reads the working directory's `origin` remote to determine `owner/repo`, then looks for a configured App for `owner`.\n2. If one exists, it signs a JWT with that App's private key **read straight from the macOS Keychain** (the key never enters the container) and mints an installation token scoped to **only that repo**, with `contents` / `pull_requests` / `workflows` / `issues` = write. There is no `administration` permission, so the token **cannot delete repositories** or touch any other repo.\n3. That ~1-hour token is forwarded as `GITHUB_TOKEN` / `GH_TOKEN`. `gh` and `git push` over HTTPS both use it (SSH `github.com` remotes are auto-rewritten to HTTPS inside the image).\n\n> The token lasts up to 1 hour and cannot be refreshed from inside the container (the key stays on the host). For a session longer than an hour, re-run `sbx` to mint a fresh one.\n\nIf you choose not to configure a GitHub app, `sbx` falls back to forwarding your host's existing GitHub credentials as-is:\n\n1. `gh auth token`, if `gh` is installed and logged in on the host.\n2. Otherwise, the `GITHUB_TOKEN` environment variable, if set.\n\nThat token carries whatever scopes your host login already has — it isn't limited to the current repo — so the agent inside the sandbox can act on any repo (or org) your login can reach.\n\n### Headroom in the sandbox\n\nIf headroom is already running on the host when `sbx` launches, the container's LLM base URL is automatically pointed at it:\n\n- **Claude** → `ANTHROPIC_BASE_URL=http://<host>:8787`\n- **OpenCode** → additionally `OPENAI_BASE_URL=http://<host>:8787/v1`\n\nThe host address is derived from Apple Container's bridge network (`192.168.64.0/24` by default; the host is its `.1` address). `headroom-start` binds to `0.0.0.0` so it's reachable from the container.\n\nHeadroom is a **transparent proxy** — it forwards the client's real credentials upstream and injects none of its own, so the container still needs the genuine credentials described in [AI agent auth](#ai-agent-auth). If headroom is not running at launch time, the container talks to the Anthropic API directly using those same credentials.\n\n### Image paste (Claude only)\n\nClaude Code reads a pasted image by shelling out to `xclip` — but the container has neither `xclip` nor an X clipboard, and it's fully isolated from the macOS pasteboard. `sbx` bridges the gap so **Ctrl+V pastes your macOS clipboard image straight into the sandboxed agent**.\n\n- **In the container** — an `xclip` shim is mounted at `/usr/local/bin/xclip`. When Claude reads the clipboard, the shim fetches the current image from the host over a forwarded Unix socket instead of a real X clipboard. Text/copy calls are no-op'd.\n- **On the host** — `sbx` starts an in-process HTTP server bound to a Unix socket in a per-launch temp directory (`mktemp -d`, mode `700`) and reads the pasteboard directly via `osascript`/JXA (`NSPasteboard`), normalizing whatever's on it (PNG, TIFF, JPEG, GIF, HEIC, PDF, or a copied image file) to PNG.\n- **Forwarded via `container run --ssh`** — the socket is passed into the sandbox by repurposing SSH agent forwarding as a generic tunnel (`SSH_AUTH_SOCK` → `/var/host-services/ssh-auth.sock` in the guest); nothing SSH-specific actually runs on either end. No port is opened, nothing is network- or LAN-reachable, and no token is needed — the socket is a private per-launch file only the `container` process can reach.\n- **Nothing resident** — the HTTP server and its temp directory live only for the duration of that one `sbx claude` session; both are torn down as soon as the container exits.\n\nSelf-installing on `sbx claude` — no separate setup step, no files written to `~/.cache/unclaude/` for this feature. Requires macOS + a `container` CLI build that supports `run --ssh` (both checked; the whole block is skipped otherwise — on an older `container` CLI or a non-Mac host, `sbx` just runs without image paste). Reading the clipboard via `osascript` needs no special permission prompt.\n\nTo copy an image on macOS: Cmd+C in most apps, or screenshot to clipboard with **Cmd+Ctrl+Shift+4**. Then Ctrl+V in the sandboxed agent.\n\n### On-demand language toolchains (makey)\n\nLanguage toolchains aren't baked into the image (unlike `python3` — see the Dockerfiles). Instead they're bootstrapped **on demand** via makey — a project's own `Makefile` defines just a `venv` target with its install commands; the shared plumbing in `~/.makey/common.mk` supplies `prepare`/`finalize`/`install` around it, so the project `Makefile` stays boilerplate-free.\n\n- **Detection** — before launching the container, `sbx` checks the repo root for a `Makefile` with a `venv:` target.\n- **In-container install** — if found, the container's entrypoint becomes a small init script instead of the CLI directly: it runs `make install` (which drives `prepare` → `venv` → `finalize`) *inside* the container, so anything it downloads matches the container's Linux/arch, not the host's, then sources `.makey/activate` before `exec`-ing into `claude`/`opencode`.\n- **`~/.makey` is mounted read-only** — the project `Makefile` does `include $(HOME)/.makey/common.mk`, which needs to resolve at container-runtime too, so `sbx` bind-mounts your host `~/.makey/` into the container at the same path.\n- **Per-project, host-persisted cache** — `make venv`'s output lands in `.makey/` inside the project directory itself (via `$(MAKEY_DIR)`, which defaults to `./.makey`). Since the whole project directory is already bind-mounted into the container, no extra `-v` flag is needed for it — `.makey/` is just part of the repo on the host and survives across runs for that project.\n\nProjects without a `Makefile`/`venv` target never trigger any of this. See `makey/Makefile` and `~/.makey/common.mk` for the rustup/cargo example this pattern replaced.\n\n### Viewing a dev server from the sandbox\n\n`sbx` publishes no ports by default — the image runs with none exposed, and the Playwright browser inside must never be reachable from outside the sandbox. A dev server (`dx serve`, `vite`, etc.) you start *inside* the container is a different thing, though, and it's often useful to watch its live-reloading output in a real browser on the host instead of through agent-driven Playwright screenshots.\n\nOpt in per-launch with `SBX_PORTS`, a comma-separated list of container ports to publish:\n\n```sh\nSBX_PORTS=8080 sbx claude          # dx serve --addr 0.0.0.0 --port 8080 inside the container\nSBX_PORTS=8080,5173 sbx claude     # multiple dev servers at once\n```\n\nEach port is published to `127.0.0.1` on the host only — never the LAN — so `http://localhost:8080` on your Mac reaches the dev server running inside the container. The server itself still needs to bind `0.0.0.0` (not `127.0.0.1`) *inside* the container, since the publish only forwards the port, not the loopback interface.\n\n## CLI arguments\n\nRunning with no arguments launches the interactive TUI. Pass a subcommand for non-interactive use:\n\n```sh\nunclaude install   [--preset <name>] [--agents <list>] [--scopes <list>] [--features <list>] [--no-gitignore]\n                   [--git-user <name>] [--git-email <email>] [--branch-prefix <prefix>]\nunclaude uninstall [--preset <name>] [--agents <list>] [--scopes <list>] [--features <list>] [--no-gitignore]\n```\n\nEach list option takes a comma-separated value. Omitting `--scopes` or `--agents` defaults to all valid values; omitting `--features` uses the preset's defaults.\n\n| Option | Description |\n|---|---|\n| `--preset` | `local`, `hybrid` (default: `local`; `hybrid` must be selected manually) |\n| `--agents` | `claudeCode`, `openCode` |\n| `--scopes` | `global`, `project` |\n| `--features` | `stopTelemetry`, `stripCommitJSON`, `stripCommitAgentHook`, `renameBranchGit`, `stripPrWorkflow`, `lsp`, `headroom`, `openspec`, `playwrightCli` |\n| `--no-gitignore` | Skip adding generated project-scope files to `.gitignore` (default: adds them) |\n| `--git-user` | Your `user.name` — used by `stripCommitAgentHook` to set local git identity. |\n| `--git-email` | Your `user.email` — used by `stripCommitAgentHook` to set local git identity. |\n| `--branch-prefix` | Prefix for renamed `claude/*` branches (e.g. `username`) |\n\n## Development\n\n```sh\nnpm install\nnpm run dev      # run (tsx, no build step)\nnpm run build    # compile → dist/\nnpm publish      # builds automatically via prepublishOnly\n```\n\nRequires Node ≥ 18 and tsx (`npm install` handles dev dependencies).\n","readmeFilename":"README.md"}