v0.2.1
Output now flows through the shared renderer, so every command, the HTTP server, and the MCP server format records the same way.
A rendering release. Every command now prints through one shared renderer instead of a formatter x kept to itself. The output you already know is unchanged; what changes is that there is a single source of truth behind it.
One renderer everywhere
x reuses the framework's renderer for all output. The standalone binary, the
serve HTTP endpoint, and the mcp server now format records through the exact
same code, so a tweet looks the same whether you read it on the command line,
over HTTP, or through a tool call. The renderer keeps the behavior you rely on:
- Auto format. With no
-o, x prints a table to your terminal and switches to JSONL when you pipe it, sox timeline nasais readable by eye andx timeline nasa | jqis readable by machine. - Every format.
-o table|json|jsonl|csv|tsv|url|raw,--fieldsto project and reorder columns, and--templatefor a Go text/template per row, with IDs kept as strings so snowflake precision survivesjqand counters never render in scientific notation. - Tidy tables. Long values stay on a single row, including the free-text
cells of
x db query, so a stored tweet body never breaks the table layout. The full untruncated value still rides in-o jsonand--template.
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. There are
no breaking changes from v0.2.0.
License
x is derived from nitter and is licensed under the GNU AGPL-3.0.