v0.3.0
This release is about what a read looks like while you wait for it and after it lands. The terminal default changes from a table to a readable list, and a slow read no longer sits blank.
The list view is the new default on a terminal
With no -o, x now prints each row as a short section instead of a row in a grid:
karpathy
name Andrej Karpathy
followers 2991679
tweets 10118
url https://x.com/karpathy
A heading, then the fields below it. This reads better than a wide table when a row carries a lot of fields, like a profile or a tweet, where the grid pushes columns off the edge of the screen. On a terminal the sections are colored; pipe the output or pass --color=never and they come out as literal GitHub-flavored markdown you can paste straight into an issue.
The table is not gone, it is one flag away with -o table. Reach for it when you want to scan one column down many rows. Nothing about pipes changes: with no -o, piped output is still jsonl, so every script and jq pipeline keeps working exactly as before.
A progress spinner for slow reads
A read often waits on the network before it has a single row to show. When the terminal is interactive, x now prints a small spinner while it waits and clears it the moment the first row is ready.
The spinner only ever writes to standard error, so a pipe like x timeline nasa | jq and a redirect like x timeline nasa > out.jsonl never see it; the data on standard output stays clean. --quiet turns it off.
Because the list view streams a row at a time, a slow paginated read now fills in as each row arrives instead of waiting for the whole fetch to finish.
Install
go install github.com/tamnd/x-cli/cmd/x@latestPrebuilt archives for Linux, macOS, Windows, and FreeBSD on amd64 and arm64, plus deb, rpm, and apk packages, a multi-arch container image at ghcr.io/tamnd/x:0.3.0, checksums, cosign signatures, and SBOMs are attached below. The binary is pure Go, builds with CGO_ENABLED=0, and has no runtime dependencies. The only behavior change is the terminal default format; piped output is unchanged.
x is derived from nitter and is licensed under the GNU AGPL-3.0.