Quick start
Run your first th command.
Once th is on your PATH:
th profile zuck # a profile's full record
th profile zuck --posts -n 20 # its twenty most recent posts
th post <url> --replies # a post and its reply thread
th id <anything> # classify any Threads handle, id, or URL
th reads Threads anonymously, as a web crawler, with no login. Ask it how it
is connecting any time:
th whoami
Get clean data out
Every command renders through one formatter. On a terminal you get an aligned
table; piped, you get JSON Lines, so it flows straight into jq:
th profile zuck --posts -n 50 -o jsonl | jq '.like_count'
Pick any format explicitly with -o (table, json, jsonl, csv, tsv,
yaml, url), narrow the columns with --fields, or template each row:
th profile zuck --posts --fields permalink,like_count,reply_count -o table
th profile zuck --posts --template '{{.Permalink}} {{.LikeCount}}'
Build a dataset
Crawl a profile's posts into SQLite, then query the local file:
th db build zuck --posts -n 200 --db zuck.db
th db query --db zuck.db "select username, sum(like_count) from posts group by 1"
When a target is private or behind a login wall, th exits 4 with a one-line
hint, so a script can tell that apart from a real error. See the
CLI reference for every command and flag.