{"_id":"@4fu/pi-bin-hints","_rev":"4-f7549523c510f65497ec9ee3502e0755","name":"@4fu/pi-bin-hints","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"name":"@4fu/pi-bin-hints","version":"0.1.0","keywords":["pi-package","pi-extension","cli-tools","system-prompt"],"author":{"name":"4fuu"},"license":"MIT","_id":"@4fu/pi-bin-hints@0.1.0","maintainers":[{"name":"4fu","email":"npm@4fwu.com"}],"homepage":"https://github.com/4fuu/pi-bin-hints#readme","bugs":{"url":"https://github.com/4fuu/pi-bin-hints/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"3a542923d77182327ef13ad81eb29cdf1a985d8d","tarball":"https://registry.npmjs.org/@4fu/pi-bin-hints/-/pi-bin-hints-0.1.0.tgz","fileCount":4,"integrity":"sha512-rCuywp6NaDsG8qFQiHvY/Q3kWe+PsAs49gfQykGC+UZZuJjqp+cl8mPUXyv0hka9GLflLcI1KhIPnBVdxGihdQ==","signatures":[{"sig":"MEYCIQCwKpfNe2EW5kGo6WYSPjmttFWAp2MBCh44PLtap91yngIhAIRLGg9d5XJ0DL1SJfcgvwbS4uPbDu2vTo/Ves6bh74M","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7445},"type":"module","gitHead":"362342a24ef8a9c4b1561db856ec425c6ed0588d","scripts":{"typecheck":"tsc --noEmit"},"_npmUser":{"name":"4fu","email":"npm@4fwu.com"},"repository":{"url":"git+https://github.com/4fuu/pi-bin-hints.git","type":"git"},"_npmVersion":"11.6.1","description":"Detect installed modern Unix-tool replacements (rg, fd, sd, ...) once per session and inject a single stable line into pi's system prompt","directories":{},"_nodeVersion":"24.10.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^24.0.0","@earendil-works/pi-coding-agent":"^0.80.10"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-bin-hints_0.1.0_1784456040696_0.03155762748238411","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@4fu/pi-bin-hints","version":"0.1.1","keywords":["pi-package","pi-extension","cli-tools","system-prompt"],"author":{"name":"4fuu"},"license":"MIT","_id":"@4fu/pi-bin-hints@0.1.1","maintainers":[{"name":"4fu","email":"npm@4fwu.com"}],"homepage":"https://github.com/4fuu/pi-bin-hints#readme","bugs":{"url":"https://github.com/4fuu/pi-bin-hints/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"2c9a32376e84124bd9ad102cec73cd74a69e2a72","tarball":"https://registry.npmjs.org/@4fu/pi-bin-hints/-/pi-bin-hints-0.1.1.tgz","fileCount":4,"integrity":"sha512-9WCSbOIHDtF5exy29dyY4VAb4Xp0l1fSqhhsjGehynT2B5glUJgcN9BeawRCNlLZ2Pn/3Kw+i3nbQAPzVkr7MA==","signatures":[{"sig":"MEQCIBioekSxq7iOf1vUze8BZxyNQ3zUTy07nxB7ZIKT89MIAiBXRLgb7i9VuYdU+Bd0r/UvK2n44KR/68weEzF1cDmUBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7440},"type":"module","gitHead":"b91e19e5e1aeed524dd72f7a5f8272235968d611","scripts":{"typecheck":"tsc --noEmit"},"_npmUser":{"name":"4fu","email":"npm@4fwu.com"},"repository":{"url":"git+https://github.com/4fuu/pi-bin-hints.git","type":"git"},"_npmVersion":"11.6.1","description":"Detect installed modern Unix-tool replacements (rg, fd, sd, ...) once per session and inject a single stable line into pi's system prompt","directories":{},"_nodeVersion":"24.10.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^24.0.0","@earendil-works/pi-coding-agent":"^0.80.10"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-bin-hints_0.1.1_1784458223823_0.7534456131100451","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@4fu/pi-bin-hints","version":"0.1.2","keywords":["pi-package","pi-extension","cli-tools","system-prompt"],"author":{"name":"4fuu"},"license":"MIT","_id":"@4fu/pi-bin-hints@0.1.2","maintainers":[{"name":"4fu","email":"npm@4fwu.com"}],"homepage":"https://github.com/4fuu/pi-bin-hints#readme","bugs":{"url":"https://github.com/4fuu/pi-bin-hints/issues"},"pi":{"extensions":["./src/index.ts"]},"dist":{"shasum":"7bbdb605824a832da0ba403e2535eac0fd070cbb","tarball":"https://registry.npmjs.org/@4fu/pi-bin-hints/-/pi-bin-hints-0.1.2.tgz","fileCount":4,"integrity":"sha512-d3m5LcYVePIl5EYr7TuAuwZkMztpjt1ZmjVFOK5UQFuz/GHRGo4sO2XkWRpRA+Dn0cokdGliwMwCOhHz153CEQ==","signatures":[{"sig":"MEYCIQDbzsauygyQxfL0deyTNgwSQe1mY7/hnxfRn+Rswtz6eAIhAIpUOakkjW0PGzZnITbFIzOhBhkkcte7I1F6wYVBPomx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7481},"type":"module","gitHead":"477bae0bfd945a37325e70242fdce6f59ca0d9c7","scripts":{"typecheck":"tsc --noEmit"},"_npmUser":{"name":"4fu","email":"npm@4fwu.com"},"repository":{"url":"git+https://github.com/4fuu/pi-bin-hints.git","type":"git"},"_npmVersion":"11.6.1","description":"Detect installed modern Unix-tool replacements (rg, fd, sd, ...) once per session and inject a single stable line into pi's system prompt","directories":{},"_nodeVersion":"24.10.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^24.0.0","@earendil-works/pi-coding-agent":"^0.80.10"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-bin-hints_0.1.2_1784458835081_0.6770857933466392","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@4fu/pi-bin-hints","version":"0.1.3","description":"Detect installed modern Unix-tool replacements (rg, fd, sd, ...) once per session and inject a single stable line into pi's system prompt","license":"MIT","author":{"name":"4fuu"},"repository":{"type":"git","url":"git+https://github.com/4fuu/pi-bin-hints.git"},"type":"module","keywords":["pi-package","pi-extension","cli-tools","system-prompt"],"pi":{"extensions":["./src/index.ts"]},"scripts":{"typecheck":"tsc --noEmit"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"devDependencies":{"@earendil-works/pi-coding-agent":"^0.80.10","@types/node":"^24.0.0","typescript":"^5.5.0"},"gitHead":"3d808053904efe7b2750bc0865c7bf4aab7992bc","_id":"@4fu/pi-bin-hints@0.1.3","bugs":{"url":"https://github.com/4fuu/pi-bin-hints/issues"},"homepage":"https://github.com/4fuu/pi-bin-hints#readme","_nodeVersion":"24.10.0","_npmVersion":"11.6.1","dist":{"integrity":"sha512-MRDRnRUuikLehd9glwI8uwzGapo5oGiB3zFuQFrEFCJJdRO9l4779XTvUgXubL4HecokS2ObbAKVEXJHk+gy4A==","shasum":"a1ab674826685e77a9d517f91ac28790972718eb","tarball":"https://registry.npmjs.org/@4fu/pi-bin-hints/-/pi-bin-hints-0.1.3.tgz","fileCount":4,"unpackedSize":7506,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDwUowpoQVY4fj2w/OvudxRPhRBhxX2YAMhr/tqfihBtQIgNJIuQRH/VLfW8XhX/z4ecgsphoTzqbQWiB6OnBuSmt0="}]},"_npmUser":{"name":"4fu","email":"npm@4fwu.com"},"directories":{},"maintainers":[{"name":"4fu","email":"npm@4fwu.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-bin-hints_0.1.3_1784520623491_0.86311161848122"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-19T10:14:00.585Z","modified":"2026-07-20T04:10:23.819Z","0.1.0":"2026-07-19T10:14:00.829Z","0.1.1":"2026-07-19T10:50:23.946Z","0.1.2":"2026-07-19T11:00:35.199Z","0.1.3":"2026-07-20T04:10:23.661Z"},"bugs":{"url":"https://github.com/4fuu/pi-bin-hints/issues"},"author":{"name":"4fuu"},"license":"MIT","homepage":"https://github.com/4fuu/pi-bin-hints#readme","keywords":["pi-package","pi-extension","cli-tools","system-prompt"],"repository":{"type":"git","url":"git+https://github.com/4fuu/pi-bin-hints.git"},"description":"Detect installed modern Unix-tool replacements (rg, fd, sd, ...) once per session and inject a single stable line into pi's system prompt","maintainers":[{"name":"4fu","email":"npm@4fwu.com"}],"readme":"# pi-bin-hints\n\nDetect installed modern Unix-tool replacement binaries (`rg`, `fd`, `sd`, `bat`, …) **once per session** and inject a single stable line into pi's system prompt:\n\n```\nModern Unix-tool replacement binaries available on this machine: rg/fd/sd/bat/...\n```\n\n## Why\n\nModels default to `grep`/`find`/`sed`/`cat` even when faster modern replacements are installed. Telling the model exactly which of these binaries exist steers it to the better tool — without the model having to probe `PATH` itself.\n\n## What it does\n\n- On `session_start`, scans `PATH` directly (no subprocess spawning — a few milliseconds) for a curated list of ~30 candidates: `rg`, `fd`/`fdfind`, `sd`, `bat`/`batcat`, `eza`/`exa`/`lsd`, `delta`, `jq`, `yq`, `fzf`, `xh`, `hyperfine`, `dust`, `duf`, `procs`, `btm`, `zoxide`, `doggo`, `gping`, `hexyl`, `choose`, `sad`, `ast-grep`, `broot`, `tokei`, `watchexec`, `glow`.\n- Caches the result and appends the **same constant line** to every turn's system prompt via `before_agent_start`.\n- Injects nothing at all when no candidate binary is found.\n\n## Prompt stability\n\nDetection runs exactly once per session. The injected line is constant, so the rendered system prompt is byte-identical across turns — no prompt-cache invalidation, no per-turn probing, no prompt churn. Binaries installed mid-session are picked up on the next session start.\n\n## Cross-platform\n\n- **Windows**: `PATHEXT`-aware name matching (`rg.exe`, `fd.cmd`, …).\n- **macOS / Linux**: exact name match plus executable-bit check.\n\n## Installation\n\nWith pi:\n\n```bash\npi install npm:@4fu/pi-bin-hints\n```\n\nOr link locally for development:\n\n```bash\npi config set extensions./path/to/bin-hints\n```\n\n## Development\n\n```bash\nnpm install\nnpm run typecheck\n```\n\nNo build step — pi loads `src/index.ts` directly.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}