Skip to content

v0.11.1 — interactive selector mode (-I)

Choose a tag to compare

@github-actions github-actions released this 26 Jul 21:25
· 6 commits to main since this release

-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.

demo

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