The hook rewrites rg <pat> → rtk grep <pat> (and rtk grep runs ripgrep underneath — good). Two ergonomic rough edges show up when agents use it:
- Single path positional.
rtk grep takes one path (main.rs, default .). A multi-file invocation like rg -n "a|b" f1.py f2.py f3.py doesn't map cleanly — extra files can be dropped. Repro: rtk grep "x" a.rs b.rs reports only one file.
- Output format differs from raw rg.
rtk grep emits a grouped [file] path (N): form and caps results (max 200, line-len 80); agents expecting rg's path:line:content adapt or get confused (observed in the wild — an agent assumed "rg got rewritten to grep").
Options: accept multiple path positionals; and/or document the escape hatch (rtk proxy rg ... for raw output) more prominently. Good fuzzer target. Not a regression — long-standing behavior — but worth smoothing.
The hook rewrites
rg <pat>→rtk grep <pat>(andrtk grepruns ripgrep underneath — good). Two ergonomic rough edges show up when agents use it:rtk greptakes onepath(main.rs, default.). A multi-file invocation likerg -n "a|b" f1.py f2.py f3.pydoesn't map cleanly — extra files can be dropped. Repro:rtk grep "x" a.rs b.rsreports only one file.rtk grepemits a grouped[file] path (N):form and caps results (max 200, line-len 80); agents expecting rg'spath:line:contentadapt or get confused (observed in the wild — an agent assumed "rg got rewritten to grep").Options: accept multiple
pathpositionals; and/or document the escape hatch (rtk proxy rg ...for raw output) more prominently. Good fuzzer target. Not a regression — long-standing behavior — but worth smoothing.