Skip to content
x

v0.3.0

A readable list view becomes the default on a terminal, and slow reads get a progress spinner.

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:

x user nasa -o table

Reach for it when you want to scan one column down many rows. And 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.

Upgrade

go install github.com/tamnd/x-cli/cmd/x@latest

Prebuilt archives for Linux, macOS, and Windows on amd64 and arm64, plus deb, rpm, and apk packages, a container image, and checksums, are on the release page. 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.

License

x is derived from nitter and is licensed under the GNU AGPL-3.0.