edstem threads lists, searches, shows, and reads threads in a unit. Posting a new thread is a mutation, covered separately in Posting.

List threads in a unit

edstem threads UNIT and edstem threads list UNIT are the same command — list is the default verb for one argument.

Search threads

search matches every query word, case-insensitively, against the thread title and body. All words must appear; there’s no OR or phrase search. It accepts every filter threads list accepts.

Show and read a thread

show returns the thread as structured data — metadata, metrics, flags, and (with --include-html) the raw Ed document — for --json/--yaml/--table output. read renders the same thread as Markdown, meant for a human or an agent to read as prose rather than parse as fields; it never changes anything on Ed. See Output formats for the difference between structured and text output. --include-html on show adds the raw Ed XML content alongside the parsed fields; leave it off unless you need the original markup.

Filters

All of these apply to both threads list and threads search. --answered and --unanswered are mutually exclusive; passing both is a usage error. Ed keeps pinned threads first in a unit’s thread list regardless of the selected --sort order.

--since

Accepts an ISO date (2026-09-01), an ISO datetime (2026-09-01T10:00:00Z), or a relative offset: a number followed by d, h, or w — 7d, 12h, 2w.

How filtering works

Ed itself only understands --sort; everything else (--category, --type, --answered, --since, and search words) is applied by the CLI after Ed returns results. That means --max 20 --unanswered can’t stop as soon as Ed’s first batch of threads comes back, if fewer than 20 unanswered ones are in it. The CLI keeps asking Ed for more until it has enough matches or runs out of threads. If you ask for --sort new (the default) with --since, it also stops early once the threads coming back are older than the cutoff, since everything after that will be older still. A narrow filter on a large, old unit can therefore make threads list slower than an unfiltered call, and can still return fewer than --max results if the unit genuinely doesn’t have that many matches.

Post a thread or reply

threads send and replies send.