v0.11.1 — interactive selector mode (-I)
-I — interactive selector mode
Hunting for the right selector usually means edit → rerun → squint → repeat.
-I collapses that loop into a live-preview TUI:
cull -I https://example.com
curl -s https://news.ycombinator.com | cull -I '.athing'- type to edit the selector — matches and preview update per keystroke
- Tab cycles the output shape: HTML → text → Markdown → JSON node tree
(plus whatever flags you launched with, e.g.-j '{…}'or--table) - ↑/↓/PgUp/PgDn scroll, Enter prints the current result to stdout
(exit code follows matches, grep-style), Esc quits without printing - invalid selectors show inline instead of erroring out
The UI draws on stderr and reads keys from the terminal, so stdin can be
a pipe and stdout stays clean: curl -s … | cull -I | tee picked.html works
exactly like you'd hope. Flags like --has-text, -r, -b, and -1 shape
the preview too.
Ships as a default-on interactive cargo feature; --no-default-features
builds (like the WASM playground) skip the dependency. Neither pup nor htmlq
has an equivalent.
(0.11.1 folds in a same-day fix over 0.11.0: cull -I page.html /
cull -I https://… now treat the first positional as the input, same
disambiguation as --table/--md.)
Full changelog: https://github.com/rashida-thorne/cull/blob/main/CHANGELOG.md
