{"_id":"little-coder","_rev":"46-f03d3e46b81344640d6f7629b213c234","name":"little-coder","dist-tags":{"latest":"1.19.0"},"versions":{"1.0.0":{"name":"little-coder","version":"1.0.0","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.0.0","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"00758e5a3feab1adc5bf7cb1b5387f52d385b54b","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.0.0.tgz","fileCount":76,"integrity":"sha512-T5znK/RIcPxrHrpT9GS06myHTdz6SUli7NhBn8sSok45rH5jZ/yN7tXeZyl6GYQw9UPLPvSUlYCqeiUEc/zwTg==","signatures":[{"sig":"MEUCIBNK5ENoXIBqy4QagcOcR+zj+NNI4EuI5csDbWFyZ/I3AiEAisncUHjuxFADn+Lz8AhDnnJ2mCQCV0DFlxtrlGJyjwU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":273120},"type":"module","engines":{"node":">=20.6.0"},"gitHead":"50becc3b4d7462d03e5ff8e41cce0b09fab2c2b8","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"11.9.0","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@mariozechner/pi-coding-agent":"^0.68.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.0.0_1777387754897_0.1597884010128785","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"little-coder","version":"1.0.1","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.0.1","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"48f2327e1f02f3c17ff4e174b070a7f064de7d13","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.0.1.tgz","fileCount":78,"integrity":"sha512-2dg5TIBzgeLcVht79ibahSw7Zkvcj3metujN26QeCwyL4FrozsrR4A3tILV/L3fUFLHGbcZOe0LdlxaRFxsMqw==","signatures":[{"sig":"MEUCICQaPmh8B/ZI4F/8qInTpaR4uEROHlXt8y70vYGzeTv+AiEA8MVGHKmcP3cB1bbo7aTvaAhM1yaJnQK7/N2GMKYzlkY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":286006},"type":"module","engines":{"node":">=20.6.0"},"gitHead":"2772f4be3687529732e41826cbdb7c8506ca3a55","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"11.9.0","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@mariozechner/pi-coding-agent":"^0.68.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.0.1_1777388336613_0.5775708091957656","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"little-coder","version":"1.0.2","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.0.2","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"9532731f05119a7bad505f0661a51c200dba9c93","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.0.2.tgz","fileCount":78,"integrity":"sha512-bdcL7j9+W/ojNoOa0dTAmB336wXaOmZ5VN7gkhrp48u+vtbk3X1MjjwV+UJK6MZZe3KsV6Taoy9RzYQurI5b1w==","signatures":[{"sig":"MEUCICMeEki0caFzZ0LsV5hePsIoNGLrhbjfJeNiVTSncL7ZAiEA3fstGwKnqS90IsnlUphP9OghukEjlXlOsY1QHIqpV3Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":286319},"type":"module","engines":{"node":">=20.6.0"},"gitHead":"2b5b79261903884971aaf507096538cfc39f3148","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"11.9.0","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@mariozechner/pi-coding-agent":"^0.68.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.0.2_1777388632945_0.3748911677580822","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"little-coder","version":"1.0.3","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.0.3","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"0f3f36db5979848ffe0d6caea2d6537e0dce0af3","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.0.3.tgz","fileCount":78,"integrity":"sha512-mK3Gg+x16SJkDG3GHembau8c5GcwBtJe79TTUCj/WgFGcO6YPGPr2TBS55bt9cW0ZM/DsGbAdGvtuTRQxQEJ0Q==","signatures":[{"sig":"MEUCICeWNVVMFq280arSPXPo0/y/f0M3lXzTa1SeBwrnTPpXAiEAkWo+pezUVcmdjLad4ySdn0E7VM4fYOHk2Kc+CJ4OzfA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":286806},"type":"module","engines":{"node":">=20.6.0"},"gitHead":"5bd4959e48165185bfd8ce13a263f936efe8a18c","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"11.9.0","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@mariozechner/pi-coding-agent":"^0.68.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.0.3_1777388998493_0.37211415501775713","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"little-coder","version":"1.1.0","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.1.0","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"710638516bf3840aaa4935f8dcdef15b5ab857ff","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.1.0.tgz","fileCount":80,"integrity":"sha512-KekTyZzpVQ9yptJRQErYExeE7eErkClwMTG8WthTdX9pUM/6OyYZNTqU+i/CwKCpDNfaXacdbQ0HSztOpSjMZA==","signatures":[{"sig":"MEUCIByFjaEhrUPfBxu3kr9ykIkEfvzyW9ZEvabdw+v9Iax1AiEAl88jvJmwgDzR4H8TZhoEkGA97v3js1+MSANMwYz/Z7s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":309522},"type":"module","engines":{"node":">=20.6.0"},"gitHead":"d16c698747ebfd41278f53e994cd5aa150bfc6e5","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"11.9.0","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@mariozechner/pi-coding-agent":"^0.68.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.1.0_1777804192282_0.8419585722795535","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"little-coder","version":"1.2.0","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.2.0","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"8646dbaa4180d71a1a491395104a7c76936962d1","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.2.0.tgz","fileCount":79,"integrity":"sha512-/GXftMQoNIDEnHtChL2QqhYZ/1V/dQ+hELAA75csXPIp+WM7MCdWxs/hDsgV9MxWdVCKUzKfVC5arY4p10iFKw==","signatures":[{"sig":"MEQCIC9i3ROqqZJaw/rTqIX2DnFD52b7BE6Y5squYcdHUQ4+AiBSRaLIL8skTP0NsGodR4Pl5MDumlHVZf7IOCOcKyLFNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":316031},"type":"module","engines":{"node":">=20.6.0"},"gitHead":"b67a2e3b4874cfaf14729d55da7172d8722cd9bd","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.8.2","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@mariozechner/pi-coding-agent":"^0.68.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.2.0_1778665626000_0.30316344987005706","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"little-coder","version":"1.2.1","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.2.1","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"d062947b4eace608f2e1223a6fd905609de8b5d5","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.2.1.tgz","fileCount":79,"integrity":"sha512-K7lT/crsXFEVP/auflbUTwIlnx41NYdCB9ni2RL1qpqmbxyZSfP270y7AsgZclwtdI6dNZDG2Y13pQD9pcHPnQ==","signatures":[{"sig":"MEYCIQDbAtdJPV8X/8/y9YuNe/A5Ret4s9ewosqc6v6PiQ6KZwIhAM0HdBV4iBKhs4aYxju2qglZx+mW2x4YecN+04S+2CuH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":320960},"type":"module","engines":{"node":">=20.6.0"},"gitHead":"37bcddbfcd4e77b6b2ef102ba269ec92c995e8d1","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.8.2","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@mariozechner/pi-coding-agent":"^0.68.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.2.1_1778950194549_0.2375664958225252","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"little-coder","version":"1.3.0","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.3.0","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"e291ed997e5af19bd41ec6df8bac2c6b628838c5","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.3.0.tgz","fileCount":80,"integrity":"sha512-fI7B44SG11eBN07T5BfSQQy2qW2RIZskJdeL9V5WJj+LdO1IVAdLCoiBOjEKWqDOmdOXN0WkSwv8Oc6J+G0Mzw==","signatures":[{"sig":"MEUCIC4E1A5rvgAXVdVGPnM5Yqe+FPq15LTNw/vRaqbvRwihAiEAs56Q7R6FO91MFPpamrZDZoAYrHrjAbPu4sTQUx2qECc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":331994},"type":"module","engines":{"node":">=20.6.0"},"gitHead":"8621b01edceb960e65d14a8cc9698229a9e48afd","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.8.2","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@mariozechner/pi-coding-agent":"^0.68.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.3.0_1778954086918_0.005477203048458001","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"little-coder","version":"1.4.0","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.4.0","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"708a752955168fd3a0dda9c626d3ffddff7cbbc2","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.4.0.tgz","fileCount":81,"integrity":"sha512-dYUfJ/DpqP3n+ToBAXSZ5jtw8RnptXHjtSihmbVFoed5ffFJ08H5sX805YJwwoc9Dvj3ki+lPJZsvvBneVEn4A==","signatures":[{"sig":"MEUCIQCr4zvB0644oiAzJ16YwJnKFA3vXAQ8YaoWct89cubcBAIgI1OVwJRW0gbLFizXXNUsvCNUH+g0ESIXMbYBFslIHLE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":337779},"type":"module","engines":{"node":">=20.6.0"},"gitHead":"8727c4b918b826c40449e874f5f626b7e0bb2ca3","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.8.2","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@mariozechner/pi-coding-agent":"^0.68.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.4.0_1778959791692_0.11353263719021967","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"little-coder","version":"1.4.1","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.4.1","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"97d10405465a6988f85966bb8d6addde3a611afd","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.4.1.tgz","fileCount":81,"integrity":"sha512-fGfg1lr90vRvntGINKErdRPO/P6yNcxlUZd5jAqf63BU4YT9oHf4QrhMAF8POMD629vc0d95XroD74wLqKpewA==","signatures":[{"sig":"MEQCIH95NNMTkUaJQBiHTIUqdBg+a4OsWAnZziKM+s2DFdiiAiBkkx8eW/5/OdKN+ssBKZxEfS/wJkOHNX+zHfhLT3bKjg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":341882},"type":"module","engines":{"node":">=20.6.0"},"gitHead":"55a83528985ed590df82cca2c478b0f206209500","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.8.2","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@mariozechner/pi-coding-agent":"^0.68.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.4.1_1778960826208_0.0663757677338428","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"little-coder","version":"1.4.2","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.4.2","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"6cefc581ea8159e30911b85203ed551f40f80241","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.4.2.tgz","fileCount":81,"integrity":"sha512-5idpq9bFqgPBzIkCeQ0vUsJT2ZGtShF2qQ8llxzblLTRaDCDKWbAY0E9UmsWHUPe0hZRRe9NYSVOEvSSYN9ylg==","signatures":[{"sig":"MEYCIQCLUefR29pbAF4zX8NQr4jS6l1MSqFEHGxdQd6lA+RgKAIhAIw2IHb/p3h0UoQdL7ha4eNOtGiLm9vjx0LTiMzh7wAa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":348262},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"943e4a04cfb4a0a1ac8c0746337298574a5c0ce0","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.8.2","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.75.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.4.2_1779177985288_0.03915321991504905","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"little-coder","version":"1.4.3","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.4.3","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"ca7fdee85bee0c8db489ed344705bc1e524b6b70","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.4.3.tgz","fileCount":83,"integrity":"sha512-pYcMuC1Y6PjLAkqS/d/zAjFjNlvYNmL9Rs95SsKYFC8x7WIyVgMkChkSnyqBJk7F74EGoDjyuWwFhvgyBwNF6w==","signatures":[{"sig":"MEUCIQD9J2C6FSiilVaqQpyQhQL26AKoYXYul1xosd30rHFQTgIga0yfAmnKRdu62uATPDS1PzWGTyoQ2mEkedewMKHETGI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":354830},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"e34df6775dc132bbfcc5ad81c3ff7f71cc5e83f7","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.7","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.75.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.4.3_1779179539772_0.1226806796614015","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"little-coder","version":"1.5.0","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.5.0","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"e73da22354dd4361a11012831ab4de735fbc5310","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.5.0.tgz","fileCount":89,"integrity":"sha512-cvw4/y+tGMz8dDzH7rASpfGsq+cI8FLMsDZXAs+crFPr0hQ3hi5sauQJngZTVNaw3eTDRLCg7JJ+Wua9bdS17A==","signatures":[{"sig":"MEQCIBqk2LVyqph3TM3XonQo5HVFMhxHju+41e4FG3yqPTJ1AiA6+0eiSVDJtaSzIltMJoRl1WgVUUbFl0K22ao6nNVPJQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":388785},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"82f16e57e4d4336f2da67b25cfadcc9e51983291","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.75.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.5.0_1779475522818_0.5134454911182991","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"little-coder","version":"1.5.1","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.5.1","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"7e27c5561b12b66c1fb034c2fcc9281834dd031b","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.5.1.tgz","fileCount":89,"integrity":"sha512-nDoC0MlFM028XGwXXA8h1XRJ2bA8dqTNqn5kYPlGZLfEziHr6ztJrEqPWwrD3freok/btxCKOci6IYnN3c796w==","signatures":[{"sig":"MEUCIQCicqtDiDTS3CYQd3jf+hHYfPzEYKFCV3P9qGwjPXuEnAIgMoq0Z8XukcgnTKF8hV+Wz7oVnUJfqqXF1bTnqguiFxo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":390930},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"3d61010617dbe77083139cbbc90609f95480a81c","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.75.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.5.1_1779479860661_0.2827502346690214","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"little-coder","version":"1.6.0","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.6.0","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"2d9b10b1e987bd86ad9087cd7b133a1ae8982fe5","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.6.0.tgz","fileCount":91,"integrity":"sha512-004EY1EzvXwO6C+TzAtEW6jxZGohdozOd1330UQV5WfFCEXRs3YQKcBPTX1GxDosKikBJJVXbF1O2vAErp/4CA==","signatures":[{"sig":"MEUCIQDDRbuSiES3ltkerB6nxriqfOdEosxVHgYtQeG8/LHDvAIgbNfrraQ0zYBgVp6o4CTH5A+O8FvvVQm5gRub9si1jaE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":407287},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"7538c4d39b48db936621e980675d7d0ef1772c32","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.75.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.6.0_1779534592528_0.2873970301358175","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"little-coder","version":"1.6.1","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.6.1","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"4405f62a22f652d1d87c776f8c11facc87ea10a8","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.6.1.tgz","fileCount":91,"integrity":"sha512-1+1MEP4kG3n34AHVmX9FdxyQdxPvj1MXQz0E8S9ByQ4SZ/w/xS/nhoyDLFc4S0dVfEieX65Ecyw9nZKtuWHBqA==","signatures":[{"sig":"MEYCIQDgwI9SruNms8JNvOOv4aMgesr5YwoRCt6BfBJReXTI6wIhAPKfHLi3lWkrAOKRpVr5X4rdSNvUDU1TEo/66kxb9FYZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":408422},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"591da0f30a6cc0cff7741d4560b75c620e2b0f70","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.75.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.6.1_1779539953555_0.7274251125445448","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"little-coder","version":"1.7.0","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.7.0","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"378a7c34ab2a15d7161238348a567f96b6bc0454","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.7.0.tgz","fileCount":91,"integrity":"sha512-hTRppcpDMEK91JAZR4t2I1dqwGJB06o3LlX7C1GslJAkfZxAp/+jtDUq8DSgmK3mbT6SVkjv79M3X7EaYrDVvQ==","signatures":[{"sig":"MEUCIQDsiYSrDO2fPGhrT/f+ZXZT4rdub9H+u23rebrhT93VGAIgRVHb6qCxz5ieLw7cbpeO+JbRK2iPbVrCed2rBvDW4Dg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":415323},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"271850301f0fde25614f935367afd4b50757e884","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.75.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.7.0_1779547152478_0.7104895127768105","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"little-coder","version":"1.8.0","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.8.0","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"b71e7f76712ff688ca721fcf130e532a840ca835","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.8.0.tgz","fileCount":91,"integrity":"sha512-8Mk3zmQ1p7LK3CsXQKlXty37gFaVcG9h+WEtxUCIDYamrkP5FdQp8oeetDC1AEz1LcwSWRnk0hxAPoIS6GRN1A==","signatures":[{"sig":"MEQCIGmi4OahlhOj+BLZwaFQRsdObHK0+tVl+CdQClw5jqODAiA6WOiPz95BVXgdTXsT48obxTL+wIiR8iW7HQayB+XZ2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":423630},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"c3a71449102dc06d085cbc9bf555fb3be9cd25a5","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.75.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.8.0_1779547966016_0.2316382252156819","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"little-coder","version":"1.8.1","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.8.1","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"4cdfb5a91284d9e36bb328fc9d6b1407a48ef956","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.8.1.tgz","fileCount":93,"integrity":"sha512-wCdpD4oUJMdg60SK+vwylEEJlfUYmfFhcM4ebz07Zslmg+rBec9BkM3LR0dYXnmDM5uM/Ky75zCgn3nTJj02bw==","signatures":[{"sig":"MEQCIDE6SIiiPmcoHclELSgLozvZ5uOjvspN+hkmsax22NtNAiAt4so0GySuqBQUYG+MDVzhG13elYkLqlDorBMYEk9RRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":433336},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"cadc8456d085ed277cb9baaa230f17e7dcdd9412","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.75.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.8.1_1779549191458_0.27632118489306623","host":"s3://npm-registry-packages-npm-production"}},"1.8.2":{"name":"little-coder","version":"1.8.2","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.8.2","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"0be1358a49e3d5cf9c64fdbf3e19de09ec6b898c","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.8.2.tgz","fileCount":93,"integrity":"sha512-1jJZDDpcRhNfsjHJwspESfRjLC91yfmsPyUvpQ09nmaNIxkX/7jX0qkzuZaZkxXhgSyJJ0YsIxkfwESCqWwUFA==","signatures":[{"sig":"MEUCIGTB6TnGdgxgraTOH1ZI9eoOPPeXvCFdja2XoCrhKm2UAiEAurhJdGMCgkjR9d1+S2KfrFn5Am9BXw8o/kStMCvivYE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":444763},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"57a4b0ad5d0d45f103e67f8f2895629b94090059","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"11.9.0","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.75.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.8.2_1780157223173_0.7985018182762611","host":"s3://npm-registry-packages-npm-production"}},"1.8.3":{"name":"little-coder","version":"1.8.3","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.8.3","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"23ddc8cd97b760fbac3f534d3a7cfc75065a84c6","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.8.3.tgz","fileCount":93,"integrity":"sha512-YCb7Dssv/+u9mwAK+J+LGlMM54w0bR0hy8T9JKL5SljNJ/VyIDMf6vLeI7BbqlfoAbxWmUwwTVE93cpBg2JX1Q==","signatures":[{"sig":"MEQCIBxldun6OoLW/E7fo6g4j3ihzS1m6MJ5EaBZvW/vkPJUAiBJWVW6ZYMchz9MYHLEEoIkLmSfLGoywf8BnCW20i/Fvw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.8.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":447376},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"4de8a4d62908d410715a823c8ca0d9c17e7b91d5","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.75.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.8.3_1780902144975_0.8492363186070397","host":"s3://npm-registry-packages-npm-production"}},"1.8.4":{"name":"little-coder","version":"1.8.4","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.8.4","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"e9aef8ea0f9beab3f6b39633d6d2267b0313988e","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.8.4.tgz","fileCount":93,"integrity":"sha512-4nPGexOrFpSSUeYrB4kxW4yghhMOlbIx7Ajo1aRRd5CkYBKRW+K+Gq4EhkKmshRiDK7c7rVEm0EdkbYYrYfhZQ==","signatures":[{"sig":"MEUCIDmQfIO3bMQEzRuAqlLd3gB58PF3PDeXRZdBl6oPPKJPAiEAuFCj7u37gw8OdM/PL/qDKS4/6nMFtpctr4SG3iNdW00=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.8.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":467011},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"5aae3f9389e1a2437ac89e5418c22b2572f42645","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.75.3"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.8.4_1780907302875_0.9965469267590565","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"little-coder","version":"1.9.0","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.9.0","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"f5cc6dfb7f7930adad72e4653f3feb24c7f61191","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.9.0.tgz","fileCount":107,"integrity":"sha512-++T3flNH3EmISDM5KZ4leA4F3sj0eETszeyXonZ29G4UnrXYRrSihNifc4B1zaaJlmsZWpNTD8mMi18oDBwrqw==","signatures":[{"sig":"MEUCIE8ZTZTNMvhs2YZuG67SNN4kNFQkGdfBzv4bd5fW+wp0AiEA84JKsj9/uLA0XILqXeCiLEN108pqZ12DcGioAkOFa9M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":549969},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"991bd42369fde9ce1009c7821f229a04881d2915","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.79.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.9.0_1781592455714_0.4485257082856233","host":"s3://npm-registry-packages-npm-production"}},"1.9.1":{"name":"little-coder","version":"1.9.1","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.9.1","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"4e09a27f505488b1fc395b9807dce044a976c3fa","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.9.1.tgz","fileCount":107,"integrity":"sha512-5G3k+++8zuyHzKrXU0i4jjGOoIaAOV7Av1dyahdLxObsrLYE/YGNZg1Uxv5YeyNooUitPuBIbC9v31T0HIqMSg==","signatures":[{"sig":"MEYCIQD787XgJ59/dbG58YU6X6vFQVcpU5J2pBhuubzQEy6sMAIhAOnLX/geCwjQzEpr7KtFs6owtGFuKCLaJK7gM5Axd+fY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":550912},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"2547bce74fa5e8e16cfdb752af84a7192d68f879","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.79.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.9.1_1781666429163_0.21132708923096666","host":"s3://npm-registry-packages-npm-production"}},"1.9.2":{"name":"little-coder","version":"1.9.2","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.9.2","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"add3d1c5170532ada5ecea3d26b5d0bfce6bb30d","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.9.2.tgz","fileCount":110,"integrity":"sha512-ErkPT9N2GB+I9AePvL5xUG5o250KJLm7VtolYEs1Ol4LvLKJzsunW64844FtyD+Jne2O3qASCmbxn2NVHPE4jA==","signatures":[{"sig":"MEUCIQCgbDgca5wuYIPpIWLP18867sXZ7o8sY3qatx6uic5ekgIgN62sl0XjvWRvlEtzxo4GP9hSkbz7eLJz0cu3oSFTEwo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":564631},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"818f0e8d115e2856a7039759fc0f8e1a5d2bd3b1","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.79.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.9.2_1781767552439_0.7795408194359561","host":"s3://npm-registry-packages-npm-production"}},"1.9.3":{"name":"little-coder","version":"1.9.3","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.9.3","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"1451c54af9e59de53c13041079fab8a789c9947a","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.9.3.tgz","fileCount":112,"integrity":"sha512-uMcwZBAEtSRB7wg6Xl98WUupv+a2RusTAQvgmdSqcZLtF0cXLkKBA3QXPo3X9hMJXPdAY7GypeW5E+lEav5ACQ==","signatures":[{"sig":"MEYCIQCos+fa11lpanQSSFDEhZ8yGdToSsa8Qb/rIYtuqn7rMAIhAKVmqSI2wR9rYxZMZfQSwxblgN4ETwfvEwPjgHPIwqd0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.9.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":573907},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"8250f002d656a5ac3e0d349787f7b968520da154","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.79.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.9.3_1781792286234_0.682330481432039","host":"s3://npm-registry-packages-npm-production"}},"1.9.4":{"name":"little-coder","version":"1.9.4","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.9.4","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"a720e5d328a2d5be38f45cc69676fab9d05b4afb","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.9.4.tgz","fileCount":113,"integrity":"sha512-T9/l8nXMFg8rVMt1NOP6Qg4BEIHmZSMNbPdONu3M8qcob9LPJAittirRZumURcnPARtNjd1ChBGNJEw4mLxmww==","signatures":[{"sig":"MEQCIBFOkXS0+HVRIX8nbIlaS3D0v6wLMttNtBuL6VnW/8CjAiAUUw1r4nCEFO0935ymkf3qJOCgu2c+rq6Jvo+3YJwuEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.9.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":578993},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"2224abce659bcf734262de179c8c12347959b3fd","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.79.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.9.4_1781800000718_0.21725107204216454","host":"s3://npm-registry-packages-npm-production"}},"1.9.5":{"name":"little-coder","version":"1.9.5","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.9.5","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"18f330aa2911e03796f79f7c3043774f949c8a1e","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.9.5.tgz","fileCount":113,"integrity":"sha512-CLsRj6WkYRreXdWx1LlzPgejM4fuiJARB7ssk3U0xJfk8nMRhNU2dhpnHTTvaGRWfsZWfh67LbvTZb0OEt50hw==","signatures":[{"sig":"MEUCIHZkPBMc0cURX77FPJV9LxD1l9uNPtfJFGUsFglCWDFGAiEArnjeOobgQaeLCReMMJE+8xlem9BG8vZel8GjrY1hWN8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.9.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":584978},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"0a57a0d33c40d741aae50d043c149a3a13495124","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.79.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.9.5_1781803131742_0.1643691673149048","host":"s3://npm-registry-packages-npm-production"}},"1.9.6":{"name":"little-coder","version":"1.9.6","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.9.6","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"43eb5d4d80e9411b8e7093c34d148910fe8d5450","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.9.6.tgz","fileCount":113,"integrity":"sha512-s/eKPrZEcxbRs7DmKf0b/ocQ27eEBpSyku3M5Q23vW4LZcu80FW9fyF1ic4qJUfgQTKfaG3aFR3YGvUlD9jWzQ==","signatures":[{"sig":"MEUCIQCULeGHycB2qW/NfozLKXGMXILiPWWCK87dhUPwW0YF3wIgY8FXskUZc9AYJKedHgJLaEz28GV9067FbiZZ7xZXobQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.9.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":588361},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"d5562a04539fe5c03276664fc24631ec8914bd87","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.79.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.9.6_1781809429784_0.19906547588727985","host":"s3://npm-registry-packages-npm-production"}},"1.9.7":{"name":"little-coder","version":"1.9.7","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.9.7","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"b887d1c84798d63156428052671cf5fd75728c85","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.9.7.tgz","fileCount":113,"integrity":"sha512-oaqNaSnS5taSabv1pgCmfXI4p0t+F6thXHq+Mqaa7GJ+g+CDVVdIvrEn6cg5XghgItrUqbcnac37YNBX79NFgA==","signatures":[{"sig":"MEQCIBsPjw4nVcqc8tx+ARX4mlb/JV7tyn+b95iW2Ioz8Ch5AiAvkH13jqWyBG11eoaEZMf7nk6ubc3Xv+CEVdwDxFk1Tg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.9.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":592516},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"37b10e9219a52a4cdd63d20df990fa50ec4c9f11","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.79.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.9.7_1781882458439_0.05404388229928592","host":"s3://npm-registry-packages-npm-production"}},"1.9.8":{"name":"little-coder","version":"1.9.8","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.9.8","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"ba1d53e33526f5ef5e5c478ce92f0036933f2b0a","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.9.8.tgz","fileCount":113,"integrity":"sha512-cDpwd+9sJdwRRCUxAxMpK2fpuVrFY0NrZIyybEgEz00dEYZgaBm2eH9fDirxwWz54zjIIHUbCnv2HLuRr5Ek6Q==","signatures":[{"sig":"MEUCIQCuR6ua56Ufkxr53c9nlp3/nY5Ue2ilx9WLQZwGHu64IgIgfyfUbOJDY+urwQXp8YxPUX5a0yGB8R+1oREFCKkfZPE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.9.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":593656},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"3e096f3be78555c7dc551b4ea973537aee360e43","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.79.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.9.8_1782140132087_0.7497973207967477","host":"s3://npm-registry-packages-npm-production"}},"1.9.9":{"name":"little-coder","version":"1.9.9","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.9.9","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"f9ce134c64004c56de689adbb9445ece3a157178","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.9.9.tgz","fileCount":113,"integrity":"sha512-sPGRFw1xrTn2nbF1qT1k8/hGxbRnXkq6blq/+9jfSjTzb94ERrfhjOGbTXmlMQyPDBFDGP7lZH2KphjmMWDyOw==","signatures":[{"sig":"MEQCIHSdy1x8J1G/5vYPKlpfN8QnpDp1it4ROprt4Vx+A97eAiBOIScsUgPFd6wfJzngNhx/DiHVL19le1+FCUx0eQd/9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.9.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":594785},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"38eacb525d0da5d8f7c22bf74d747a00b78b0ec2","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.79.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.9.9_1782159279599_0.8129577487854287","host":"s3://npm-registry-packages-npm-production"}},"1.9.10":{"name":"little-coder","version":"1.9.10","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.9.10","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"551e390cfabb47a1d90e8ac5565dd3b3311dd727","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.9.10.tgz","fileCount":115,"integrity":"sha512-8twzax6wQPtysIZu2mU6tVLmMe3JTdZB6ItMhDVQH/V9N9E4BggPwIUj56nnyQPq165CNGbRNW3XWTOcA6Eoig==","signatures":[{"sig":"MEUCIQCui7Cvbyt0k0SJ56wfuX5nHuTSNErvnrkLkiwFoPiMjAIgfhMnvrzRYFvKzBb01G5GGD0jRlMeQXjXhpcRcii/Ivs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.9.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":608849},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"f592c73b57292047a20bcfe35c38f5226b0598a3","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.79.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.9.10_1782637258302_0.5273781605650834","host":"s3://npm-registry-packages-npm-production"}},"1.9.11":{"name":"little-coder","version":"1.9.11","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.9.11","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"0065f3884f16ebc8034fcba4c90bb32ec8fb71ef","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.9.11.tgz","fileCount":116,"integrity":"sha512-3SU+JsYqG5kY26TGeE9NtaZKGys5B7SCpsuzAWMyQ3Hq97uCkEIXsA006NVqH9s0EZxEisNIKQEpXaxM82Dx4w==","signatures":[{"sig":"MEQCICQ0IOl6liHxIt04i9YU6uSrl/2KdmGGJOqRjhXScWWrAiBiVvXWwUeN/HC0YCZ+WOMX8Dpo3vW8L2tiAhtWMQn4sA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.9.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":620010},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"f5cf27b4b68b57d6377dd43b31e3b2df589f85dc","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.79.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.9.11_1782650186618_0.14042803083098665","host":"s3://npm-registry-packages-npm-production"}},"1.9.12":{"name":"little-coder","version":"1.9.12","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.9.12","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"4803983b7c922fb31d893df929e6bb2b309dd1f9","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.9.12.tgz","fileCount":120,"integrity":"sha512-Em9Dy+Lcl4XBwDIFqUqiDnnMVKAW1y0eoQb+R4vuIVUms9NGi7TNifMX5PJV8tk5uRaHqV00ecq++yUuFV9ntw==","signatures":[{"sig":"MEYCIQD13sJYwQUHn/HkkxqFDXzqSjDdNJ+7fmWkhl/7BqbVigIhALvEejkLNsAR6HIVXZilFhWW5E49T8sohALCJqelX0y+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.9.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":641979},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"4fedf265d7b92b796ce763f889bbf4732285cb1b","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.79.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.9.12_1783153837370_0.9596564473739158","host":"s3://npm-registry-packages-npm-production"}},"1.9.13":{"name":"little-coder","version":"1.9.13","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.9.13","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"c664d050f62d4a43ee4568f32415962aee96cc06","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.9.13.tgz","fileCount":120,"integrity":"sha512-asMicBzpCi+h/4Cuac7DOIwtilIKpFnTJmuH2mgaJ9YMhqiwaofGn4OYPn1DKQzr9X9Uq7VDYyUDwguZmAOM5w==","signatures":[{"sig":"MEUCIQDSttW6ZO6zF03yvdsNGKhHXhK1fEIYp3Gz8UqRzFfhIQIgIAJMSE9T1GxM4zrUnAQtI593toO/pqJGvuJou/oFH1c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.9.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":647600},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"064dfe85013f90f7b4961f30949664a44f7aa885","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.79.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.9.13_1783270825019_0.2613359819063892","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"little-coder","version":"1.10.0","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.10.0","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"592180fd1dce63a8e48e1c3e26d8fe4311aaa8c5","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.10.0.tgz","fileCount":132,"integrity":"sha512-NMWCAbmvTXJJxTgXmm36QcZ7GfQ+2GPgr0mxTfCQQwA/aelRB9sbsaEOuy5WV3hxkrZKtdlQI4xyEC84HR0cvQ==","signatures":[{"sig":"MEYCIQCmEOwerDzkou/m1xrzaKjtp7L/J1kaVyWMSsjSoH6MqAIhAPE01YvbaoSaI7LHheB19as1bRXHqjJdowj0chxXvyx3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":734654},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"e2a6af30b3b25c59cfc0a75edb9b892c7d58d357","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.79.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.10.0_1783358311072_0.6374385629486115","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"little-coder","version":"1.11.0","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.11.0","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"0aa2e8e00e6f0adcfd6f2ffec67d99b93b2249a4","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.11.0.tgz","fileCount":134,"integrity":"sha512-l4vh5pKAn4MXPfhzU6wrfO2aBQJCKBtGbDAWJHj2pXbZauq86qlI+C55VFnPuVfym1NuVYapGcwktEKEui892w==","signatures":[{"sig":"MEUCIQDxo9SncV2idT5apzNZYxFiHY30yTinLY/OGImNtjUCQAIgG6PTvmPxLi+E83IndTGBO9DQcKfiCwV6DeksXyrp3TU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":764514},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"7f9c11c27a904950e8ce19148fb051eb3b3d2ff0","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit","postinstall":"node scripts/patch-pi.mjs"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.79.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.11.0_1784363883887_0.6632528379284237","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"little-coder","version":"1.12.0","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.12.0","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"08fe3dfba979d0790476c37d6d25a2f837dc065b","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.12.0.tgz","fileCount":147,"integrity":"sha512-P4j3eVIRwXWOvsFgTIi3WvADZDYdlDH75JkW0w4tvHzG4JI2YuMa70gbJuN3moH8wh1sQanr3KTWsGOPFX26wA==","signatures":[{"sig":"MEYCIQC3YhjikslgT7SNwQS0nzlq3WmTTtL+o2VacEa9jjM1nQIhANa4w60LrWXoup99S53XVDzZag1SoKKjGON6mGsx3sAi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":871937},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"24dea1ce2a6d026d0ae1962e449015390fab6ed4","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.79.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.12.0_1784915920934_0.34211843343451","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"little-coder","version":"1.13.0","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.13.0","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"5d5855d30c34e0731977289f94f98395599d83be","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.13.0.tgz","fileCount":147,"integrity":"sha512-OIRfd2qpfSuBIcofDIf4dzePw2/Yyh9IszTs/VgSzwkCybdYvXxVblgxV6kHmt6RFO4xrznA/LfgX/OdW2ERvw==","signatures":[{"sig":"MEYCIQDpAWb4CsbtK4DgU287Tu4Xh4LsgPStahMe0/JtKxiKawIhAIl66kXjZvwmRATKuF2w5inaVfryES9ADYuzCq/ZSw6i","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":878133},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"cf5102f7bf57b3a26c8fe315b5aef2d372f8170f","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.79.4"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.13.0_1785404102682_0.8750421470735066","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"little-coder","version":"1.14.0","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.14.0","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"16d7e1f20deac9ef2a9a047b10c4dfd55f11a2d5","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.14.0.tgz","fileCount":147,"integrity":"sha512-1I1avrylTiyRoFJ65lmfcNre4v3L84f/AgupEJfFCBSkwApEtsqAnAOIsvcrBEs2OXLeKLTMsFfRpAnz6xGQQA==","signatures":[{"sig":"MEQCIGDTu6ZoLxPxT15TydFnuShUCej+gQRqakmx3mjcpZWBAiBGPzQbLGX2MYH4cjI/2c1G3Ow/KmfNZJqIoEgkYLXcqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":884247},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"0b7234031aabe56163e345792ce7a6ea05af321a","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.14.0_1785491874628_0.33029073261498154","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"little-coder","version":"1.15.0","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.15.0","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"c2599da2d24b89c061e027f3628eda9f0ae89e8c","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.15.0.tgz","fileCount":150,"integrity":"sha512-hpS9B3BBxRaJttqDakJgE12FjysX0p079I16pkoZGCs6/neaUuKe5sjneilomJVuwOsF8HDR2weSN419l48fmg==","signatures":[{"sig":"MEYCIQCGPOXhxuukc5iCEhGMTagkbxCWYcwnb+k4cB7w4FkrnQIhAJLT/8b+kXLcFz5Iw+tjUGEnwNf8XKcq2jKghs0IaHW6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":910562},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"edac2eec48cb8930cc162346c936f3d488a82116","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.15.0_1786826464805_0.3412338175465466","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"little-coder","version":"1.16.0","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.16.0","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"e64b626d05519c1c53796b6f2f7a4775ff222a68","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.16.0.tgz","fileCount":159,"integrity":"sha512-sLx3PHC96eII4Ha+6yANsRs99k9n4xkd0ty3k45jN+WnDoIaC5SQIRKCxr+qjBZU7ZyxiR4lHba9UF62GMeq0w==","signatures":[{"sig":"MEUCIC4dqaPURFKyeh6HIeySZRcSqUzO0/iIR/0kZTnDLMgjAiEAxuuvS51xPssrGHUpiUSLga6isMBz8+WX0+ymIzwO2GU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1003800},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"4d97dd84837f05ab054e83aadab56bfd6892f45a","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.16.0_1786831606698_0.805465423075989","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"little-coder","version":"1.17.0","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.17.0","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"6caedf96dafe69d098a49d928fc710cc3da88072","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.17.0.tgz","fileCount":159,"integrity":"sha512-U89FsW/zA2fsRQLWTzyd1KhahuBupSXtE48/iXt+IBUsm/8HdeJ8gT4PE63QjB4mry/QelaPa0mUP4EebKN3Ww==","signatures":[{"sig":"MEUCIDPRUR6/R1YzjekRdN+c1JyeYqMRfunMh+Rn70j0Pki6AiEAjyLPdp+GQuokcDaELDTJwimkqnKTKZpy5hQryDcvURk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1010380},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"f195e7589baed37ab1c2772929110200c9763406","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.17.0_1786833949312_0.10925452878122544","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"little-coder","version":"1.18.0","author":{"name":"Itay Inbar"},"license":"Apache-2.0","_id":"little-coder@1.18.0","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"homepage":"https://github.com/itayinbarr/little-coder","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"bin":{"little-coder":"bin/little-coder.mjs"},"dist":{"shasum":"5ab4044812a61c420bfbeb1d6a740b191e0c3928","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.18.0.tgz","fileCount":159,"integrity":"sha512-qU4GuhMPHKcbJGDJC5dcUHJELOMojFSICTlH6xqu6ZeAY51dToEsmZKomFm0a9d+om98BcCQokFDcdT/KXuSLg==","signatures":[{"sig":"MEYCIQCxHa/o1j7sWyH/f8uvcahkJchBf5IIewbGBK3wHdw4QgIhAPRM5WN3cdXTT1bXGex3A3XKKUYC8bvNtzCAKR+Ein02","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1060591},"type":"module","engines":{"node":">=22.19.0"},"gitHead":"db751376263a861c09807291e493842d9c41c57b","scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit"},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"repository":{"url":"git+https://github.com/itayinbarr/little-coder.git","type":"git"},"_npmVersion":"10.9.8","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"playwright":"^1.59.1","@sinclair/typebox":"^0.34.49","@earendil-works/pi-coding-agent":"^0.83.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0"},"_npmOperationalInternal":{"tmp":"tmp/little-coder_1.18.0_1787398743441_0.38000912041657386","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"little-coder","version":"1.19.0","description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","homepage":"https://github.com/itayinbarr/little-coder","repository":{"type":"git","url":"git+https://github.com/itayinbarr/little-coder.git"},"license":"Apache-2.0","author":{"name":"Itay Inbar"},"type":"module","bin":{"little-coder":"bin/little-coder.mjs"},"engines":{"node":">=22.19.0"},"scripts":{"pi":"pi","test":"vitest run","test:py":"python3 -m pytest benchmarks/test_rpc_client.py -q","typecheck":"tsc --noEmit"},"dependencies":{"@earendil-works/pi-coding-agent":"^0.83.0","@sinclair/typebox":"^0.34.49","playwright":"^1.59.1"},"overrides":{"node-domexception":"file:./vendor/node-domexception"},"devDependencies":{"typescript":"^5.6.0","vitest":"^2.1.0"},"_id":"little-coder@1.19.0","gitHead":"a9e467f2be43b78441d723c84f173b98771b51ef","bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"_nodeVersion":"22.23.2","_npmVersion":"10.9.8","dist":{"integrity":"sha512-RmOa4opm7HWs2J/ffVeLieaMd6Op3oK0vIWqw1gn8Sx+y9o8sirDQgfwHDYeeHEEA8bGNoGEiEJTfmW3ZkamGg==","shasum":"f4f13d63b1f38397945e077e393a4d8eb8421145","tarball":"https://registry.npmjs.org/little-coder/-/little-coder-1.19.0.tgz","fileCount":162,"unpackedSize":1107952,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/little-coder@1.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCwDaLqEydRHXb9dhdOJhXDIZY6hJiHMiZoK7emtreqyAIga0yevcmVhbp+V5rkjOGqsgUucOKw/QHDB6sT3p0ejJ4="}]},"_npmUser":{"name":"itayinbar","email":"itayinbar.me@gmail.com"},"directories":{},"maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/little-coder_1.19.0_1788018516204_0.9970117247640267"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-28T14:49:14.896Z","modified":"2026-08-29T15:48:36.684Z","1.0.0":"2026-04-28T14:49:15.066Z","1.0.1":"2026-04-28T14:58:56.791Z","1.0.2":"2026-04-28T15:03:53.170Z","1.0.3":"2026-04-28T15:09:58.711Z","1.1.0":"2026-05-03T10:29:52.448Z","1.2.0":"2026-05-13T09:47:06.201Z","1.2.1":"2026-05-16T16:49:54.692Z","1.3.0":"2026-05-16T17:54:47.080Z","1.4.0":"2026-05-16T19:29:51.822Z","1.4.1":"2026-05-16T19:47:06.369Z","1.4.2":"2026-05-19T08:06:25.445Z","1.4.3":"2026-05-19T08:32:19.917Z","1.5.0":"2026-05-22T18:45:22.959Z","1.5.1":"2026-05-22T19:57:40.807Z","1.6.0":"2026-05-23T11:09:52.669Z","1.6.1":"2026-05-23T12:39:13.711Z","1.7.0":"2026-05-23T14:39:12.635Z","1.8.0":"2026-05-23T14:52:46.171Z","1.8.1":"2026-05-23T15:13:11.612Z","1.8.2":"2026-05-30T16:07:03.360Z","1.8.3":"2026-06-08T07:02:25.142Z","1.8.4":"2026-06-08T08:28:23.043Z","1.9.0":"2026-06-16T06:47:35.889Z","1.9.1":"2026-06-17T03:20:29.366Z","1.9.2":"2026-06-18T07:25:52.641Z","1.9.3":"2026-06-18T14:18:06.448Z","1.9.4":"2026-06-18T16:26:40.910Z","1.9.5":"2026-06-18T17:18:51.978Z","1.9.6":"2026-06-18T19:03:50.015Z","1.9.7":"2026-06-19T15:20:58.576Z","1.9.8":"2026-06-22T14:55:32.238Z","1.9.9":"2026-06-22T20:14:39.866Z","1.9.10":"2026-06-28T09:00:58.426Z","1.9.11":"2026-06-28T12:36:26.802Z","1.9.12":"2026-07-04T08:30:37.498Z","1.9.13":"2026-07-05T17:00:25.178Z","1.10.0":"2026-07-06T17:18:31.263Z","1.11.0":"2026-07-18T08:38:04.097Z","1.12.0":"2026-07-24T17:58:41.160Z","1.13.0":"2026-07-30T09:35:02.845Z","1.14.0":"2026-07-31T09:57:54.771Z","1.15.0":"2026-08-15T20:41:04.979Z","1.16.0":"2026-08-15T22:06:46.853Z","1.17.0":"2026-08-15T22:45:49.469Z","1.18.0":"2026-08-22T11:39:03.596Z","1.19.0":"2026-08-29T15:48:36.360Z"},"bugs":{"url":"https://github.com/itayinbarr/little-coder/issues"},"author":{"name":"Itay Inbar"},"license":"Apache-2.0","homepage":"https://github.com/itayinbarr/little-coder","repository":{"type":"git","url":"git+https://github.com/itayinbarr/little-coder.git"},"description":"A pi-based coding agent optimized for small local language models. Reproduces the whitepaper's scaffold-model-fit adaptations as pi extensions.","maintainers":[{"name":"itayinbar","email":"itayinbar.me@gmail.com"}],"readme":"![little-coder — a coding agent for the laptop in front of you](assets/banner.svg)\n\n\n# little-coder\n\n**A coding agent tuned for small local models, built on top of [pi](https://pi.dev).**\n\nThe research story behind all this — why scaffold–model fit matters, how a 9.7 B Qwen beat frontier entries on Aider Polyglot, and what the load-bearing mechanisms actually do — is written up on Substack: **[*Honey, I Shrunk the Coding Agent*](https://open.substack.com/pub/itayinbarr/p/honey-i-shrunk-the-coding-agent)**. Start there if you want the \"why\"; stay here for the \"how\".\n\n## How it relates to pi\n\n[pi](https://pi.dev) is the minimal substrate — agent loop, multi-provider API, TUI, session tree, compaction, extension model. Four built-in tools (read / write / edit / bash) and a ~1000-token system prompt.\n\nlittle-coder is **pi + 30-odd extensions + 30 skill markdown files + a Python benchmark harness**. It doesn't fork pi or shadow its CLI — pi is a plain dependency in `package.json`, and everything little-coder-specific lives under `.pi/extensions/`, `skills/`, and `benchmarks/`. It ships **no npm install scripts**; the launcher does everything at launch time.\n\nThe launcher runs pi with `--no-extensions` and wires in exactly the bundled set. That's what keeps the cold-start context around 7k tokens and makes behavior predictable — the set that loads is the set that ships, and nothing in your working directory changes it mid-task. The consequence is that a globally `pi install`'d package won't load inside little-coder by default, because `pi install` registers into pi's settings and `--no-extensions` skips those.\n\nYou have three opt-in ways around that, none of which change the default: drop your own extensions in `~/.config/little-coder/extensions/`, point `LITTLE_CODER_EXTRA_EXTENSIONS` at files anywhere, or relaunch with `--with-pi-extensions` to let pi discover its own. Run `/extensions` to see what's loaded. Full guide: **[Extending little-coder](docs/extensions.md)**. (Themes are unaffected — pi themes have always loaded.)\n\nIf you've never used pi, it's useful to skim [pi.dev](https://pi.dev) first — the rest of this doc assumes pi's model of `--agent-import-path`, `--mode rpc`, and `.pi/extensions/` auto-discovery.\n\n## Install\n\nOne-line install (Node.js 22.19+ required):\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/itayinbarr/little-coder/main/install.sh | bash\n```\n\nOr with npm directly:\n\n```bash\nnpm install -g little-coder\n```\n\nOr with [bun](https://bun.sh):\n\n```bash\nbun add -g little-coder\n```\n\nThat's the whole install. No clone, no `npm install` in a workspace, no PATH fiddling. `little-coder` is now on your PATH and works from any directory.\n\n> **Note for `bun add -g` users.** The launcher (`bin/little-coder.mjs`) is a Node.js script with `#!/usr/bin/env node` at the top, so Node ≥ 22.19 still has to be on your PATH for the binary to start — bun is fine for installing/updating the package, but the runtime is Node. If you want a fully node-less setup, replace the shebang in `$(bun pm bin -g)/little-coder` with `#!/usr/bin/env bun`.\n\n## Run\n\n```bash\ncd ~/your-project\nlittle-coder                                    # launches the default model (see below)\nlittle-coder --model llamacpp/qwen3.6-35b-a3b   # or name one explicitly\n```\n\nThis is the canonical setup little-coder is tuned for: a local llama.cpp server hosting Qwen3.6-35B-A3B. See **[Local model setup (optional)](#local-model-setup-optional)** below for how to serve it.\n\nBare `little-coder` (no `--model`) launches the **default model** declared in `models.json` (`\"default\": \"llamacpp/qwen3.6-35b-a3b\"` out of the box), printing its friendly name at startup. This only kicks in on a first run — once you pick a model in-session, that choice sticks and the default never overrides it. Change the default with a `default` key in your [user override file](#configuring-models). See **[Configuring models](#configuring-models)**.\n\nCloud models work the same way:\n\n```bash\nlittle-coder --model anthropic/claude-haiku-4-5\nlittle-coder --model openai/gpt-4o-mini \"What does this codebase do?\"\nlittle-coder --model ollama/qwen3.5             # local Ollama\nlittle-coder --model lmstudio/local-model       # local LM Studio (whatever model you have loaded)\nlittle-coder --list-models                      # see everything pi knows about\n```\n\nThe agent uses the directory you launched it from as its working directory — `Read` / `Write` / `Edit` / `Bash` operate on your project, not on little-coder's install path.\n\n### Interactive features\n\n- **Plan Mode** — press **ctrl+q** to toggle (a `◆ PLAN MODE` indicator shows below the input), or launch with **`--plan-mode`** (`LITTLE_CODER_PLAN_MODE=1`) to start there. Submit a request and little-coder researches it with sub-coders, asks you 1-3 clarifying questions (each with suggested answers and a free-text option), then writes a plan in the chat instead of editing anything. Approving it saves the plan to `.pi/approved-plan.md` and stops there; **`/implement`** is what switches to the action model, opens a fresh session seeded with the plan, and starts the work, so the research and Q&A that produced the plan do not eat the context the implementation needs ([#98](https://github.com/itayinbarr/little-coder/issues/98)). **Esc** cancels a plan mid-run. (**shift+tab** stays pi's thinking-level cycle.)\n- **Deep Research** — press **f2** (or run `/deep-research <topic>`) to scope a topic into a research brief, fan out read-only research sub-coders, and get back one cited markdown report, saved next to your working directory. The research children run in an ephemeral scratch directory, not your project, so **f2 is for external and online research, not for exploring the code you are sitting in** ([#100](https://github.com/itayinbarr/little-coder/issues/100)); use a normal session or `dispatch` for that. **Esc** cancels mid-run.\n- **Keyboard shortcuts** — press **ctrl+h** for a panel of the keys worth knowing; `/hotkeys` is the full reference. **ctrl+o** expands tool output (\"more\"), **ctrl+t** toggles thinking blocks, **ctrl+p** cycles models.\n- **Tool skill cards**: little-coder injects a short usage card for the tools a turn is likely to need, chosen by error-recovery > recency > intent. **`/skills`** lists what is loaded and what each costs, `/skills <tool>` pins one when the selector keeps picking a different card, and `/skills off` returns to automatic selection ([#118](https://github.com/itayinbarr/little-coder/issues/118)).\n- **Prompt history** — from an empty input, **↑** recalls your recent prompts (most-recent first), **↓** walks forward. History persists across sessions, so a fresh session can recall prompts from earlier runs.\n- **Sub-coders (`dispatch`)** — little-coder can spawn isolated child sessions to research a question (read the repo + browse online, read-only) and report back concisely, without cluttering the main conversation. A live panel above the input tracks them. Sub-coders run serially by default (two of them contend for the same local model server and finish slower than one); opt into parallelism with `LITTLE_CODER_SUBCODER_CONCURRENCY=2` or more.\n- **Background jobs (`ShellStart`)** — long commands (training, builds, servers, watchers) run in the background instead of blocking a turn, and little-coder wakes the model on *events in the job* rather than on a timer. A footer line shows what's running. See [Background jobs](#background-jobs) below.\n- **Per-phase models** — plan on a big model, implement on a small one, with `/plan-model` and `/action-model`. See [Per-phase model selection](#per-phase-model-selection) below.\n- **Sessions** — each session is auto-named from your first prompt (rename with `/name`) and shown in the terminal tab title. Use `/resume` to list and reopen past sessions for the current directory.\n- **Read-before-edit** — editing a file requires reading it first, so edits match the file's exact current text.\n- **Your own extensions** — drop them in `~/.config/little-coder/extensions/` and they load on the next launch. Run **`/extensions`** to see what's loaded and where it came from. See [Extending little-coder](docs/extensions.md).\n\n### The status line\n\nThe footer at the bottom of the screen looks like this:\n\n```\n↑26k ↓5.4k R447k CH99.8% 9.3%/262k (auto)          qwen3.6-35b-a3b • medium\n```\n\n| Field | Meaning |\n|---|---|\n| `↑26k` | **Cumulative** input tokens billed as fresh across the whole session — not your current context size |\n| `↓5.4k` | Cumulative output tokens generated |\n| `R447k` | Cumulative tokens **read from cache** (the prefix your server didn't have to reprocess) |\n| `W…` | Cumulative cache-**write** tokens; only shown when non-zero |\n| `CH99.8%` | Cache-hit rate of the **latest** response alone — `cacheRead / (input + cacheRead + cacheWrite)`. Not a session average, so it moves turn to turn |\n| `9.3%/262k` | Current context usage against the window size. Amber above 70%, red above 90% |\n| `(auto)` | Automatic compaction is enabled |\n| right side | Active model, and its thinking level if it's a reasoning model |\n\nA low `CH` on a long conversation means your server is reprocessing history it should have been able to reuse — worth investigating.\n\nFor local providers (llama.cpp, Ollama, LM Studio) pi expects *some* value in the API-key env even though local servers ignore it:\n\n```bash\nexport LLAMACPP_API_KEY=noop\nexport OLLAMA_API_KEY=noop\nexport LMSTUDIO_API_KEY=noop\n```\n\n`LLAMACPP_BASE_URL`, `OLLAMA_BASE_URL`, and `LMSTUDIO_BASE_URL` override the defaults (`http://127.0.0.1:8888/v1`, `http://127.0.0.1:11434/v1`, `http://127.0.0.1:1234/v1`).\n\nFor cloud providers, set the standard env (`ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, etc.) and pi will discover it.\n\n## Local model setup (optional)\n\nSkip this section if you're using a cloud model.\n\n**Option A — llama.cpp** (fastest for local; supports Qwen3.6-35B-A3B MoE):\n\n```bash\n# One-time: build llama.cpp with CUDA (sm_XXX = your GPU arch; Blackwell = 120)\ngit clone https://github.com/ggml-org/llama.cpp && cd llama.cpp\ncmake -B build -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=120 -DLLAMA_CURL=ON\ncmake --build build --config Release -j\n\n# Fetch the model GGUF and the matching vision projector.\n# The mmproj (~900 MB) is what lets the model see attached screenshots.\npip install -U \"huggingface_hub[cli]\"\nhf download unsloth/Qwen3.6-35B-A3B-GGUF Qwen3.6-35B-A3B-UD-Q4_K_M.gguf --local-dir ~/models\nhf download unsloth/Qwen3.6-35B-A3B-GGUF mmproj-F16.gguf            --local-dir ~/models\n\n# Serve it (MoE trick: experts in RAM, attention on GPU → 22 GB model on 8 GB VRAM)\nbuild/bin/llama-server -m ~/models/Qwen3.6-35B-A3B-UD-Q4_K_M.gguf \\\n   --mmproj ~/models/mmproj-F16.gguf \\\n   --host 127.0.0.1 --port 8888 --jinja \\\n   -c 16384 -ngl 99 --n-cpu-moe 999 --flash-attn on\n```\n\nIf you only need text and want to skip the projector download, drop the second `hf download` line and the `--mmproj` flag — little-coder still works text-only, but the TUI's image attachment will be rejected by the server with a 4xx.\n\n**Context window.** `-c` sets the server's context (`-c 16384` = 16K above — a conservative default for 8 GB VRAM). little-coder **auto-detects the live `n_ctx`** from llama.cpp's `/props` at startup and registers the model with it, so whatever you pass to `-c` is what the TUI shows and budgets against — no `models.json` edit needed. To run larger, relaunch the server with e.g. `-c 131072` (128K) or `-c 262144` (256K); the KV cache grows with it, so size it to your RAM/VRAM. (`--list-models` reflects the detected window.)\n\n**Option B — Ollama** (simpler, but slower on MoE):\n\n```bash\ncurl -fsSL https://ollama.com/install.sh | sh\nollama pull qwen3.5        # 9.7B — the paper's model\n# or: ollama pull qwen3.6:35b-a3b\n```\n\n**Option C — LM Studio** (GUI; OpenAI-compatible server on port 1234):\n\n1. Install [LM Studio](https://lmstudio.ai/) and download a model (e.g. Qwen3.6 35B A3B GGUF).\n2. Open the **Developer** / **Local Server** tab, load the model, and click **Start Server** (default `http://127.0.0.1:1234`).\n3. Run little-coder:\n   ```bash\n   export LMSTUDIO_API_KEY=noop\n   little-coder --model lmstudio/local-model\n   ```\n   The shipped `lmstudio/local-model` id routes to whatever model LM Studio currently has loaded — no extra config needed for the single-model case. If you serve on a non-default port, set `LMSTUDIO_BASE_URL=http://127.0.0.1:<port>/v1`. To target a specific model when you have several loaded, add an entry to `~/.config/little-coder/models.json` (see **Configuring models** below).\n\n**Serving from another machine on your LAN.** Each provider's `*_BASE_URL` env var accepts any host, not just `127.0.0.1`, so you can run inference on a beefier box and connect from a laptop or another device on the same WiFi.\n\nOn the **server** (the box with the GPU):\n\n- *llama.cpp*: start `llama-server` with `--host 0.0.0.0` (or your specific LAN interface) instead of `127.0.0.1`. Everything else from Option A unchanged.\n- *LM Studio*: in the Server tab, enable **Serve on local network** so it binds `0.0.0.0:1234` instead of `127.0.0.1:1234`.\n- *Ollama*: `OLLAMA_HOST=0.0.0.0:11434 ollama serve` (or set `OLLAMA_HOST=0.0.0.0` in the user systemd unit).\n- If `ufw` / `firewalld` is active, allow your LAN subnet to the relevant port (e.g. `sudo ufw allow from 192.168.0.0/16 to any port 8888 proto tcp`).\n- Find the LAN IP with `hostname -I` (Linux) or `ipconfig getifaddr en0` (macOS).\n\nOn the **client** (the machine running little-coder):\n\n```bash\n# Pick the env vars matching whichever provider is running on the server\nexport LLAMACPP_API_KEY=noop\nexport LLAMACPP_BASE_URL=http://<server-lan-ip>:8888/v1\n\n# Sanity check reachability before launching the agent\ncurl -s http://<server-lan-ip>:8888/v1/models | head\n\nlittle-coder --model llamacpp/qwen3.6-35b-a3b\n```\n\nThe streaming chat-completions adapter works over a local network the same way it does over loopback — no client code change, no proxy needed. The per-model profile in `.pi/settings.json` (context/thinking-budget/temperature) still applies because it's keyed by `<provider>/<model-id>`, which the client picks regardless of where the server lives.\n\nAll small-model-specific extensions auto-disable for large/cloud models so they don't interfere.\n\n---\n\n## Configuring models\n\nThe shipped model list lives in **`models.json`** at the package root. The `llama-cpp-provider` extension reads it at startup and registers each provider via pi's `registerProvider()`. Editing this file in your global install **does** take effect — but it's overwritten on `npm install -g little-coder@latest`, so for anything you want to keep, use a user override file instead.\n\nUser override resolution (first match wins):\n\n1. `$LITTLE_CODER_MODELS_FILE` — explicit path, useful for ad-hoc tests.\n2. `$XDG_CONFIG_HOME/little-coder/models.json`\n3. `~/.config/little-coder/models.json`\n\nMerge semantics: each top-level provider key in your override file **fully replaces** the same key in the shipped `models.json`. Providers only in your file are added; providers only in the shipped file are kept. (We don't deep-merge per-model fields — you redeclare the whole provider entry, which avoids \"your override silently inherited new fields from a future package release\" surprises.)\n\n**Default model.** A top-level `\"default\": \"provider/id\"` key names the model bare `little-coder` launches when you don't pass `--model` and pi has no saved selection yet (shipped default: `llamacpp/qwen3.6-35b-a3b`). Your override file's `default` wins over the shipped one, so `{\"default\": \"llamacpp/qwen3.6-27b\"}` in `~/.config/little-coder/models.json` makes the dense 27B your first-run default. It's first-run-only: once you switch models in-session, pi remembers that and the default stops applying.\n\n**Per-phase models.** `/plan-model` and `/action-model` let planning and implementation run on different models — see [Per-phase model selection](#per-phase-model-selection) below.\n\n**Qwen3.8-27B (dense + MTP).** Added to the shipped registry in v1.17.0. It's the *quality* option on a small card, not the fast one — measured on an RTX 5070 Laptop (8GB) with `UD-Q4_K_XL`:\n\n| context | `-ngl` | tok/s | VRAM |\n|---|---|---|---|\n| 16k | 20 | 6.72 | 7200 MB |\n| 32k | 18 | **6.42** | 7042 MB |\n| 32k | 20 | — | loads, then generates nothing |\n\nCompare ~44 tok/s for `Qwen3.6-35B-A3B` (MoE) on the same box: the MoE is roughly 7× faster because its experts live in RAM (`--n-cpu-moe`), a trick a dense model has no equivalent for. Its NextN head is in the GGUF (`qwen35.nextn_predict_layers=1`, `blk.64`), so MTP speculative decoding works — measured draft acceptance ~0.87. The one caution worth repeating: at 32k, `-ngl 20` passes `/health` and then produces zero tokens. It fits in VRAM but has no room left to compute, so \"the server started\" is not evidence the config works. Raise the context and you must lower `-ngl`.\n\n**Community-recommended models.** The shipped `models.json` stays intentionally small and stable — it doesn't track the fast-moving world of community fine-tunes (which get re-uploaded and disappear from Hugging Face constantly). If you want to try one that's doing well in the community — e.g. `Qwen3.6-35B-A3B-REAM-192`, which topped both a community tournament and a little-coder pilot ([#63](https://github.com/itayinbarr/little-coder/issues/63)) — add it to your **own** override file rather than waiting for it to ship. Load the GGUF on your llama.cpp server, then drop an entry in `~/.config/little-coder/models.json`:\n\n```json\n{\n  \"providers\": {\n    \"llamacpp\": {\n      \"api\": \"openai-completions\",\n      \"baseUrl\": \"http://127.0.0.1:8888/v1\",\n      \"apiKey\": \"LLAMACPP_API_KEY\",\n      \"models\": [\n        { \"id\": \"ream-192\", \"name\": \"Qwen3.6-35B-A3B REAM-192 (community)\", \"reasoning\": true, \"input\": [\"text\"] }\n      ]\n    }\n  }\n}\n```\n\nThen pick it with `little-coder --model llamacpp/ream-192`. (llama.cpp serves whichever GGUF you loaded regardless of the id, so the `id` is just your handle for it.)\n\nExample — switch the llama.cpp port and bump `qwen3.6-35b-a3b` to a 150K context, leave ollama untouched:\n\n```json\n{\n  \"providers\": {\n    \"llamacpp\": {\n      \"api\": \"openai-completions\",\n      \"baseUrl\": \"http://127.0.0.1:1234/v1\",\n      \"apiKey\": \"LLAMACPP_API_KEY\",\n      \"models\": [\n        {\n          \"id\": \"qwen3.6-35b-a3b\",\n          \"name\": \"Qwen3.6-35B-A3B (local llama.cpp, 150K)\",\n          \"reasoning\": true,\n          \"input\": [\"text\"],\n          \"contextWindow\": 150000,\n          \"maxTokens\": 4096,\n          \"cost\": { \"input\": 0, \"output\": 0, \"cacheRead\": 0, \"cacheWrite\": 0 }\n        }\n      ]\n    }\n  }\n}\n```\n\nThen verify with `little-coder --list-models` — you should see your overridden entry.\n\n`LLAMACPP_BASE_URL`, `OLLAMA_BASE_URL`, and `LMSTUDIO_BASE_URL` env vars still beat both files for those three providers.\n\n### Any OpenAI-compatible server (e.g. MLX / omlx)\n\nlittle-coder registers providers from `models.json` — it doesn't pick up pi's standalone \"picker\" extensions. So a server isn't added by installing its pi picker; you add it by declaring a provider. Any OpenAI-compatible endpoint works this way, including Apple's MLX server (`mlx_lm.server`, often surfaced as **omlx**). Drop this into `~/.config/little-coder/models.json` and pick it with `little-coder --model omlx/<id>`:\n\n```json\n{\n  \"providers\": {\n    \"omlx\": {\n      \"api\": \"openai-completions\",\n      \"baseUrl\": \"http://127.0.0.1:8000/v1\",\n      \"apiKey\": \"IGNORED\",\n      \"models\": [\n        {\n          \"id\": \"Qwen3-32B-4bit\",\n          \"name\": \"Qwen3.6-35B-A3B (local omlx, 150K)\",\n          \"reasoning\": true,\n          \"input\": [\"text\"],\n          \"contextWindow\": 150000,\n          \"maxTokens\": 4096,\n          \"cost\": { \"input\": 0, \"output\": 0, \"cacheRead\": 0, \"cacheWrite\": 0 }\n        }\n      ]\n    }\n  }\n}\n```\n\nSet `id` to whatever model your server reports, and `baseUrl` to its `/v1` endpoint. Verify with `little-coder --list-models`.\n\n`.pi/settings.json` is a separate concern: it controls per-model **profiles** (context_limit, thinking_budget, temperature, benchmark_overrides) referenced by the `<provider>/<id>` key. Profiles don't register or describe models — they only tune how little-coder runs against models that are already registered.\n\n---\n\n## Background jobs\n\n`bash` blocks the turn until the command exits, which makes it the wrong tool for anything long. The usual workaround is worse: background the job and then *poll* it, spending a turn, a slice of a small context window, and seconds of local inference to learn that training is still on epoch 3. A six-hour job checked every five minutes is 71 wasted turns.\n\nSo `ShellStart` inverts it. The model says up front what is worth being interrupted for, and the harness stays quiet until one of those things happens:\n\n```json\n{\"name\": \"ShellStart\", \"input\": {\n  \"command\": \"python train.py --epochs 50\", \"label\": \"finetune\",\n  \"wake_on\": {\"match\": [\"Traceback\", \"CUDA out of memory\", \"val_loss=\"],\n              \"every_n_matches\": 10, \"silence\": \"15m\"}}}\n```\n\n| `wake_on` | fires when |\n|---|---|\n| `exit` | the job exits (default on) |\n| `match` | a line matches — regex, falling back to literal text |\n| `silence` | it produced output, then went quiet this long (e.g. `\"10m\"`) |\n| `every_n_matches` | only every Nth match, to throttle a chatty pattern |\n\nUrgency decides how the news arrives: a crash or an error-ish match interrupts the current turn; a clean exit or a milestone waits for the tool calls already in flight; routine output rides along with the next turn. Six hours of progress bars cost nothing; a traceback at minute 40 costs one turn, immediately. What the model receives is a bounded excerpt plus the exit code — never the whole log — with `ShellLog` to page deeper on demand. `ShellList`, `ShellSend` (stdin, for a REPL or a prompting installer) and `ShellStop` round it out.\n\n**Lifetime.** A job outlives a turn but never the session. Jobs run in their own process group and are signalled as a group, so `python train.py` under a shell dies with the shell rather than being orphaned holding your VRAM. Session shutdown and every catchable signal reap them — and because SIGKILL is catchable by nobody, each job also carries a watchdog that kills its own group the moment little-coder's pid disappears.\n\n**Permissions.** `ShellStart` goes through the same whitelist as `bash`, so build and test commands usually need `LITTLE_CODER_BASH_ALLOW` (see [Permissions](#permissions)).\n\n## Per-phase model selection\n\nPlan on a big model, implement on a small one, without retyping ctrl+P at every transition ([#61](https://github.com/itayinbarr/little-coder/issues/61)).\n\n| command | does |\n|---|---|\n| `/plan-model <name>` | model for Plan Mode (autocompletes; `/plan-model 35b` resolves) |\n| `/action-model <name>` | model for implementation |\n| `/phase-models` | show both, plus the active model and handover mode |\n| `/model-handover auto\\|manual` | whether little-coder switches models for you |\n| `/implement` | run the last approved plan in a fresh session on the action model |\n\nDefaults come from `models.json` (`\"planModel\"` / `\"actionModel\"` / `\"handover\"`) or the environment (`LITTLE_CODER_PLAN_MODEL`, `LITTLE_CODER_ACTION_MODEL`, `LITTLE_CODER_MODEL_HANDOVER`), but the tags are **session state** — settable mid-session, because the case that motivated this is A/B-ing two planners against the same brief.\n\nWith `auto` (default), entering Plan Mode switches to the plan model and `/implement` hands over to the action model. The handover happens when implementation actually begins rather than at approval, so approving a plan you then decide to rewrite costs you nothing. With `manual`, the tags are shown but nothing switches on your behalf. That toggle matters more locally than it would on a hosted provider: **on a single llama.cpp backend a handover evicts and reloads weights**, so an automatic switch can mean a 15-second stall mid-thought. A handover where both phases resolve to the same model is a no-op rather than a reload, and a switch that fails (model unavailable, no key) degrades to staying put and says so. Leave both unset and nothing changes — each phase uses the active model.\n\n## Permissions\n\nlittle-coder gates shell tool calls — `Bash` and `ShellSession` alike — against a built-in safe-prefix whitelist (`ls`, `cat`, `head`, `tail`, `git log/status/diff`, `find`, `grep`, `cp`, `mv`, `mkdir`, `touch`, etc.) before pi's own confirmation flow ever sees them. `rm` and `sudo` are intentionally not on the list — add them via `LITTLE_CODER_BASH_ALLOW` per deployment if you really need them.\n\nTwo rules beyond the prefix match, both from [#70](https://github.com/itayinbarr/little-coder/issues/70):\n\n- **Every command in a chain is judged, not just the first.** `ls && rm -rf /` is refused on the `rm`, not allowed on the `ls`.\n- **A command that writes to a file through the shell is refused**, whatever it starts with. `cat > main.py << 'EOF'` is the same write as the `Write` tool and gets the same answer — use `Write` for a new file, `Edit` for an existing one. Redirects (`>`, `>>`), `tee`, and `dd of=` all count; `2>&1` and a `>` inside quotes don't.\n\nIn `accept-all` mode the whitelist is skipped, but the write guard still refuses a shell redirect that would clobber an existing file or a reserved device name — so the \"small models don't rewrite whole files\" guarantee holds in benchmark runs too.\n\nTwo env vars control the gate:\n\n| Env var | Values | Effect |\n|---|---|---|\n| `LITTLE_CODER_PERMISSION_MODE` | `auto` *(default)* / `accept-all` / `manual` | `auto`: block any shell command not on the whitelist. `accept-all`: skip the gate entirely, every shell call passes (the benchmark runner sets this). `manual`: prompt for confirmation before every shell command — the command is shown and you choose to execute (`y`) or cancel (`n`). |\n| `LITTLE_CODER_BASH_ALLOW` | comma-separated prefixes | Extra allow-prefixes merged with the built-in list. **Trailing whitespace is meaningful**: `\"make \"` allows `make test` but not `makefoo`; `\"make\"` allows both. |\n\nExamples:\n\n```bash\n# Add 'make' (with word-boundary) and 'docker compose ps' on top of the defaults\nexport LITTLE_CODER_BASH_ALLOW=\"make ,docker compose ps\"\n\n# Skip the gate entirely (use this only inside controlled environments)\nexport LITTLE_CODER_PERMISSION_MODE=accept-all\n```\n\nWrite/Edit confirmations are pi's responsibility; little-coder doesn't intercept those.\n\n---\n\n## Paper / benchmark results\n\n| Release | Model | Benchmark | Result |\n|---|---|---|---|\n| [**v0.0.2**](https://github.com/itayinbarr/little-coder/releases/tag/v0.0.2) (commit `1d62bde`) — the paper | Qwen3.5-9B via Ollama | Aider Polyglot (225 exercises) | **45.56 %** mean of two runs; matched-model vanilla Aider baseline 19.11 %. Paper: [*Honey, I Shrunk the Coding Agent* on Substack](https://open.substack.com/pub/itayinbarr/p/honey-i-shrunk-the-coding-agent). |\n| [**v0.0.5**](https://github.com/itayinbarr/little-coder/releases/tag/v0.0.5) — pre-pi Python | Qwen3.6-35B-A3B via llama.cpp | Aider Polyglot | **78.67 %**. [Full narrative](docs/benchmark-qwen3.6-35b-a3b.md). |\n| [**v0.1.4**](https://github.com/itayinbarr/little-coder/releases/tag/v0.1.4) — on pi | Qwen3.6-35B-A3B via llama.cpp | Terminal-Bench-Core v0.1.1 (80 tasks) | **40.0 %** in 6 h 50 min. [Write-up](docs/benchmark-terminal-bench-v0.1.1.md). |\n| [**v0.1.13**](https://github.com/itayinbarr/little-coder/releases/tag/v0.1.13) — on pi, TB 2.0 leaderboard | Qwen3.6-35B-A3B via llama.cpp | Terminal-Bench 2.0 (89 tasks × 5 trials = 445) | **24.6 % ± 3.2** — accepted to the [Terminal-Bench 2.0 leaderboard](https://www.tbench.ai/leaderboard/terminal-bench/2.0) (rank 120). |\n| [**v0.1.24**](https://github.com/itayinbarr/little-coder/releases/tag/v0.1.24) — on pi, TB 2.0 leaderboard, smaller model | Qwen3.5-9B (Q4_K_M) via llama.cpp (5.3 GB on GPU, 2× faster per-token than the 35B-A3B) | Terminal-Bench 2.0 (89 tasks × 5 trials = 445) | **9.2 % ± 2.4** — accepted to the [Terminal-Bench 2.0 leaderboard](https://www.tbench.ai/leaderboard/terminal-bench/2.0) (rank 142). |\n| [**v0.1.27**](https://github.com/itayinbarr/little-coder/releases/tag/v0.1.27) — on pi, GAIA validation | Qwen3.6-35B-A3B via llama.cpp | GAIA validation set (165 tasks) | **40.00 %** (66 / 165). L1 60.4 % / L2 37.2 % / L3 7.7 %. Test-split run pending. |\n\nAll runs used a consumer laptop: i9-14900HX, 32 GB RAM, **8 GB VRAM** on RTX 5070 Laptop (Blackwell). No cloud inference at any point.\n\n---\n\n## Roadmap\n\n**Phase 1 — wide benchmark baseline: complete.** The paper established that scaffold–model fit moves a 9.7 B model from 19 % to 45 % on Aider Polyglot, and the goal of Phase 1 was to find out how wide that impact radius is. We now have a four-benchmark baseline on a single laptop-class GPU:\n\n1. **Aider Polyglot** — 45.56 % (paper, Qwen3.5-9B) and 78.67 % (v0.0.5, Qwen3.6-35B-A3B).\n2. **Terminal-Bench-Core v0.1.1** — 40.0 % (v0.1.4).\n3. **Terminal-Bench 2.0** — accepted to the [official leaderboard](https://www.tbench.ai/leaderboard/terminal-bench/2.0): Qwen3.6-35B-A3B at **24.6 % ± 3.2** (rank 120) and Qwen3.5-9B at **9.2 % ± 2.4** (rank 142). The v0.1.24 prompt-repetition fix (re-add tool descriptions + concision guideline, validated by a 4 / 4 pilot on the previously-regressing `prove-plus-comm` task) was the prompt for both submissions.\n4. **GAIA** — validation set at v0.1.27: **40.00 %** (66 / 165) on Qwen3.6-35B-A3B. Per-level L1 60.4 % / L2 37.2 % / L3 7.7 %.\n\nThat spans short coding exercises (Polyglot), interactive shell-bound tasks (Terminal-Bench), and tool-using research (GAIA), all on the same scaffold. The data needed to choose what to fix next is now in hand.\n\n**Phase 2 — operating real knowledge bases as day-to-day work: the current focus.** The motivating question shifts from *how wide is the impact radius?* to *can a small local model reliably operate and traverse a large, messy knowledge base?* little-coder's day-to-day target is now real work over **many markdown files at once** — reading, cross-referencing, and updating sprawling note/log collections in the most token-efficient way a small local model can manage. Features are being implemented and tested across several real pipelines in parallel:\n\n- **Domains** — medical, athletic, and educational knowledge bases, each with its own structure, vocabulary, and citation needs.\n- **Scale** — 10+ years of logs, tens of thousands of entries of varied kinds, stressing retrieval, compaction, and the context-budgeting extensions on histories far longer than any single benchmark task.\n- **Messy real-world inputs** — validation against conflicting OCR extractions of the same source, and multilingual content where the same fact recurs across languages.\n\nThis is where the scaffolding work now compounds: knowledge injection/selection, evidence handling, compaction fidelity, and the harness-intervention behaviors. Expect smaller, more frequent releases driven by what little-coder actually struggles with on this work rather than by a benchmark suite.\n\n**Benchmarks (deferred).** The four-benchmark baseline above stands as the scaffold-fit reference point. Fresh runs — **ProgramBench**, SWE-bench Verified (multi-file real-world patches), a GAIA test split — come back into scope once the knowledge-base work has produced enough scaffolding signal to make a new measurement worth running.\n\n---\n\n## Troubleshooting\n\n**`--update` flag** — pass `little-coder --update` to force an immediate version check, bypassing the 12-hour cache. Useful right after a release. The flag is stripped before pi sees argv so it won't produce an \"Unknown option\" error.\n\n**Auto-update fails on Windows (≤ v1.9.5): `npm exit null`** — the updater in those versions can't locate `npm.cmd`. Fixed in v1.9.6, but the broken updater can't deliver its own fix — run `npm install -g little-coder@latest` once to get there, then auto-update works normally.\n\n**`little-coder: command not found`** — npm's global bin directory isn't on your PATH. Run `npm config get prefix` to see where it installed; add `<prefix>/bin` to your PATH. Or reinstall with `sudo` if your prefix needs root.\n\n**`ECONNREFUSED 127.0.0.1:8888`** — llama.cpp isn't running. Start `llama-server` first, or switch `--model` to an Ollama/cloud ID.\n\n**LAN client times out (no `RST`, just hangs)** — the inference box's firewall is dropping the SYN. The usual cause is `ufw` with a default-deny policy that allow-lists only SSH / a few dev ports. From the server: `sudo ufw status verbose` to confirm; `sudo ufw allow from <your-lan-subnet>/24 to any port 8888 proto tcp` to fix (scoped to the LAN so you're not exposing the box). Docker-published ports bypass `ufw` via `PREROUTING` NAT, which is why a Docker container can be reachable while a plain `llama-server` on the same host isn't.\n\n**Image attachment is accepted but the request returns 4xx** — your llama-server is running without a vision projector. Re-launch it with `--mmproj ~/models/mmproj-F16.gguf` (or another mmproj variant from the same GGUF repo). The `--list-models` `images` column reflects what the client *will attempt to send*, not what the server can answer; the projector is what gives the model eyes.\n\n**`Failed to parse input at pos N: SomeTool(arg='…')]<|tool_call_end|>` (LFM2 / Liquid models)** — the model is emitting its native *Pythonic* tool calls (`<|tool_call_start|>[Read(path='…')]<|tool_call_end|>`), but llama.cpp's tool-call parser is choking on them — usually because the **chat template doesn't match the parser**. The GGUF's *embedded* template often renders tools as a plain `List of tools: […]` blob without the `<|tool_list_start|>` / `<|tool_call_start|>` special tokens the parser expects. Fix: serve with `--jinja` and the model's **proper** chat template, e.g. `llama-server -m LFM2.5-8B-A1B-Q4_K_M.gguf --jinja --chat-template-file LFM2-8B-A1B.jinja` (templates ship under `llama.cpp/models/templates/`). With the matching template, llama.cpp parses the calls into native `tool_calls` and tools execute normally — verified end-to-end with LFM2.5-8B-A1B. If your build still leaks the calls as plain text, little-coder's `output-parser` recognizes the format and surfaces this same diagnostic instead of a cryptic error (issue [#42](https://github.com/itayinbarr/little-coder/issues/42)).\n\n**Context overflows on a long task before compaction kicks in** — fixed in v1.9.12. pi only re-checks compaction when the model goes *idle* at the end of a turn sequence, so a single long autonomous run (dozens of tool calls) could grow context all the way to an overflow error before that check ever ran (issue [#59](https://github.com/itayinbarr/little-coder/issues/59)). little-coder now watches context usage at every turn boundary and triggers pi's compaction mid-run once usage crosses **80 %** of the window. Tune the trigger with `LITTLE_CODER_COMPACT_AT_PERCENT=<n>` (e.g. `70` to compact earlier; values `≤0` or `≥100`, or `LITTLE_CODER_NO_COMPACT_WATCHDOG=1`, disable it and fall back to pi's end-of-run behavior). This is independent of pi's own `reserveTokens` / `keepRecentTokens`, which still govern how much is summarized vs. kept. As of v1.11.0 the watchdog also **guards against a compaction loop** (issue [#68](https://github.com/itayinbarr/little-coder/issues/68)): if a mid-run compaction frees too little (usage stays near the threshold, e.g. a context window too small for the task), it **pauses automatic compaction with a notice** instead of firing a doomed second compaction that pi would reject with `Nothing to compact` — which previously left the session unrecoverable. It re-arms once usage drops back below the threshold (a `/clear`, `/compact`, or a smaller turn). If you hit the pause a lot, the real fix is a larger-context model or `-c` window.\n\n**No API key env var warning** — pi expects *some* key even for local providers. Export `LLAMACPP_API_KEY=noop` (or `OLLAMA_API_KEY=noop`) before launching.\n\n**Update prompt hangs on launch / want it in the UI instead** — when a new version is published the launcher asks `Update now? [Y/n]` before starting. As of v1.9.12 it **auto-continues without updating after 10 s** so an unattended terminal is never blocked; tune with `LITTLE_CODER_UPDATE_PROMPT_TIMEOUT=<seconds>` (`0`/`off` waits forever). If you dismiss or time out of the prompt, little-coder still shows a one-line \"update available\" notice inside the TUI, and you can run **`/update`** any time to install the latest and end the session for a clean restart (issue [#64](https://github.com/itayinbarr/little-coder/issues/64)). As of v1.11.0, answering `Y` at the launcher prompt **auto-relaunches into the new version** with your original arguments (issue [#66](https://github.com/itayinbarr/little-coder/issues/66)) — no manual re-run — printing `Relaunching little-coder…` (with a manual-relaunch fallback if the re-exec can't start). The in-app `/update` still ends the session for a manual restart, since it runs inside the pi child process where an in-place re-exec isn't safe.\n\n**No pi \"Update Available\" banner** — that's intentional. little-coder defaults `PI_SKIP_VERSION_CHECK=1` so the bundled pi runtime doesn't nag about updating itself; little-coder pins pi to a known-good version per release. If you actually want the banner back, `export PI_SKIP_VERSION_CHECK=0` before launching.\n\n**Running little-coder from Zed's agent panel** — there's no built-in ACP server, but a community `pi-acp` bridge works well; see [docs/zed-acp.md](docs/zed-acp.md) for the full setup (issue [#58](https://github.com/itayinbarr/little-coder/issues/58)).\n\n**Extension load failures on startup** — run **`/extensions`** inside the TUI: it lists what loaded, where each one came from, and anything that failed. A user extension that can't be resolved also raises a notification at session start. `little-coder --list-models --verbose` surfaces pi's own load errors. If the install looks corrupt: `npm uninstall -g little-coder && npm install -g little-coder`.\n\n**My pi extensions / themes don't load** — themes do load; extensions don't, by default. `--no-extensions` gates extensions only, so pi themes in `~/.pi/agent/themes` work as normal. For extensions, relaunch with `--with-pi-extensions`, or put your own in `~/.config/little-coder/extensions/`. See [docs/extensions.md](docs/extensions.md) (issue [#67](https://github.com/itayinbarr/little-coder/issues/67)).\n\n**A malware alert on `npm install -g little-coder`** — Socket's AI scanner flagged the `postinstall` script in v1.10.0/v1.11.0 as suspicious. It was a false positive on a visible, dependency-free patcher, but as of **v1.12.0 little-coder ships no install scripts at all** — the launcher does that work at launch time instead, which is also the only path that ever ran for upgrading users, since `/update` installs with `--ignore-scripts` (issues [#75](https://github.com/itayinbarr/little-coder/issues/75), [#50](https://github.com/itayinbarr/little-coder/issues/50)).\n\n**`ctrl+r` does nothing** — it isn't bound at the prompt; pi binds \"expand / more\" to **`ctrl+o`**. Versions up to v1.11.0 advertised `ctrl-r` in the startup header, which was simply wrong (issue [#74](https://github.com/itayinbarr/little-coder/issues/74)). Press `ctrl+h` for the current key list, or `/hotkeys` for the full reference. Note that during a Deep Research run there is nothing for `ctrl+o` to expand: research sub-coders are separate child processes, so their tool output never enters this session's transcript — the progress bar is the view of that work. While a dialog is open (the max-agents or clarifying-question prompts), keys belong to the dialog.\n\n**llama.cpp reprocesses the whole conversation every turn** — fixed in v1.12.0. little-coder's per-turn skill and knowledge blocks used to be appended to the *system prompt*, which sits at the front of every request, so changing them invalidated the entire cached prefix and your server re-read the full history (issue [#73](https://github.com/itayinbarr/little-coder/issues/73)). Those blocks now arrive as a message at the end of the conversation instead, leaving the prefix byte-identical. Watch the `CH` field in the status line to confirm cache reuse. `LITTLE_CODER_INJECT_MODE=system` restores the old placement, which is what the whitepaper scaffold numbers were measured against.\n\n**Node version too old** — little-coder needs Node ≥ 22.19.0 (matching the minimum of the bundled `@earendil-works/pi-coding-agent` v0.75+). Check with `node --version`. Easiest fix: `nvm install 22 && nvm use 22`.\n\n---\n\n## Developing little-coder locally\n\nIf you want to hack on the extensions or skills:\n\n```bash\ngit clone https://github.com/itayinbarr/little-coder.git\ncd little-coder\nnpm install\nnpm link            # makes the local checkout available as `little-coder`\nlittle-coder --model llamacpp/qwen3.6-35b-a3b\n```\n\nTo unlink: `npm unlink -g little-coder`.\n\nThe benchmarks harness (`benchmarks/`) is dev-only and not shipped with the npm package. Run it from a clone with `python3 benchmarks/aider_polyglot.py …` etc.\n\n---\n\n## Architecture\n\n```\nlittle-coder/\n├── .pi/\n│   ├── settings.json               # per-model profiles + benchmark_overrides (terminal_bench, gaia)\n│   └── extensions/                 # 27 TypeScript extensions, auto-discovered by pi\n│       ├── branding/               # little-coder startup header + terminal title + session auto-naming\n│       ├── plan-mode/              # alt+p \"research → ask → plan\" flow (sub-coders + clarifying questions → written plan)\n│       ├── subagent/              # `dispatch` tool: isolated read/browse-only sub-coders + live tracker (spawn.ts engine)\n│       ├── prompt-history/         # up-arrow recall of recent prompts (from an empty input)\n│       ├── llama-cpp-provider/     # data-driven provider registration from models.json — ships llamacpp, ollama, lmstudio (+ user override file)\n│       ├── write-guard/            # Write refuses on existing files; rewrites root-bare /foo.md paths to cwd\n│       ├── read-guard/             # trims a Read that would overflow the context window to its first 30 lines + a search-instead directive\n│       ├── read-guard-edit/        # Edit refuses until the file has been Read this session\n│       ├── extra-tools/            # glob, webfetch, websearch (pi ships grep/find)\n│       ├── skill-inject/           # per-turn tool-skill selection (error > recency > intent)\n│       ├── knowledge-inject/       # algorithm cheat-sheet scoring (word=1.0, bigram=2.0, threshold=2.0)\n│       ├── output-parser/          # repair malformed ```tool, <tool_call>, bare JSON\n│       ├── quality-monitor/        # empty / hallucinated / loop detection + correction follow-up\n│       ├── thinking-budget/        # cap thinking tokens per turn, retry with thinking off\n│       ├── permission-gate/        # bash whitelist (ls, cat, git log/status/diff, etc.)\n│       ├── checkpoint/             # snapshot files before Write/Edit\n│       ├── tool-gating/            # enforces _allowed_tools at exec + schema levels\n│       ├── turn-cap/               # max_turns abort (Polyglot unbounded, TB 40, GAIA 30)\n│       ├── benchmark-profiles/     # reads settings.json → systemPromptOptions + sets temperature\n│       ├── shell-session/          # ShellSession[Cwd|Reset] — tmux-proxy + subprocess backends\n│       ├── browser/                # Playwright BrowserNavigate/Click/Type/Scroll/Extract/Back/History\n│       ├── evidence/               # EvidenceAdd/Get/List — per-session store, 1 KB snippet cap\n│       └── evidence-compact/       # preserves evidence across pi's auto-compaction\n├── skills/                         # 30 markdown files the extensions inject on demand\n│   ├── tools/*.md                  #   14 tool-usage cards\n│   ├── knowledge/*.md              #   13 algorithm cheat sheets\n│   └── protocols/*.md              #    3 research/cite/decomposition workflows\n├── benchmarks/\n│   ├── rpc_client.py               # PiRpc — spawns `pi --mode rpc`, demuxes events + UI requests\n│   ├── aider_polyglot.py           # Polyglot driver with per-language transforms\n│   ├── tb_adapter/                 # Terminal-Bench 1.0 BaseAgent (tmux-proxy)\n│   ├── harbor_adapter/             # Terminal-Bench 2.0 BaseAgent (async env.exec proxy)\n│   ├── tb_pilot.sh / harbor_pilot.sh\n│   ├── tb_status.sh / harbor_status.sh\n│   └── test_rpc_client.py\n├── AGENTS.md                       # project system prompt (pi discovers it automatically)\n├── models.json                     # canonical provider registration (loaded by llama-cpp-provider; user override at $XDG_CONFIG_HOME/little-coder/models.json)\n└── docs/\n    ├── benchmark-*.md              # per-benchmark narratives\n    └── architecture.md             # v0.0.5-era Python architecture (historical)\n```\n\n**Key invariant.** pi is a minimal base by design. Every little-coder mechanism ships as a pi extension that hooks pi's lifecycle events (`before_agent_start`, `context`, `before_provider_request`, `tool_call`, `tool_result`, `turn_end`, `session_compact`). Extensions are independent: the launcher discovers every `.pi/extensions/*/index.ts` and loads it explicitly with `--extension`, and pi runs with `--no-extensions`, so the bundled set is exactly what loads — no more, no less. If you don't want one, delete its directory; if you want to add another, drop it next to the existing ones (or pass `-e <path>` at launch).\n\n---\n\n## Reproducing the paper (v0.0.2)\n\n```bash\ngit clone https://github.com/itayinbarr/little-coder.git\ncd little-coder\ngit checkout v0.0.2\n# Follow that version's README for its Python setup (pip install -e .)\n```\n\nThe paper ran `ollama/qwen3.5` through the Python little-coder at commit **`1d62bde`** (tag [`v0.0.2`](https://github.com/itayinbarr/little-coder/releases/tag/v0.0.2)). The 45.56 % mean figure is the average of two full 225-exercise runs on that exact codebase. For the 78.67 % headline, check out tag [`v0.0.5`](https://github.com/itayinbarr/little-coder/releases/tag/v0.0.5) — both are pre-pi Python and follow the pre-pi setup.\n\n---\n\n## Citation\n\n```bibtex\n@misc{inbar2026littlecoder,\n  title        = {little-coder: A Coding Agent Optimized for Small Local Language Models},\n  subtitle     = {Architectural Adaptation Lets a 9.7B Model Outperform Frontier Models on Aider Polyglot},\n  author       = {Inbar, Itay},\n  year         = {2026},\n  month        = apr,\n  howpublished = {\\url{https://open.substack.com/pub/itayinbarr/p/honey-i-shrunk-the-coding-agent}},\n  note         = {White paper}\n}\n```\n\n---\n\n## Attribution\n\nlittle-coder v0.0.x was a derivative work of [CheetahClaws / ClawSpring](https://github.com/SafeRL-Lab/clawspring) by SafeRL-Lab, Apache 2.0. That upstream provided the Python agent substrate, tool system, multi-provider support, and REPL.\n\nlittle-coder v0.1.0+ replaces that substrate with **[pi](https://pi.dev)** by Mario Zechner — Apache 2.0 / MIT. The npm package was renamed from `@mariozechner/pi-coding-agent` to `@earendil-works/pi-coding-agent` in upstream's 0.74 release; little-coder v1.4.2+ ships with the new package. pi provides the agent loop, provider abstraction, TUI, and extension model. little-coder rebuilds its small-model adaptations on top of pi as extensions.\n\nAll little-coder-specific mechanisms — Write-vs-Edit invariant, skill / knowledge injection, thinking-budget cap, output-parser, quality-monitor, per-model profiles, per-benchmark overrides, ShellSession / Browser / Evidence tool families, evidence-aware compaction — are preserved across versions.\n\n---\n\n## License\n\nApache 2.0 — see [LICENSE](LICENSE) for details. NOTICE tracks upstream attribution.\n","readmeFilename":"README.md"}