v0.1.0
The first public release of x: the three free tiers, the read-only command surface, output formats, and the local SQLite store.
The first public release. x is a single pure-Go binary that reads X's free public surfaces (syndication and the web-client GraphQL) for your own use and persists everything to a local store as you go. It is strictly read-only. No paid API, no developer key, nothing to sign up for.
Three free tiers
x auto-selects the cheapest tier that can serve a command:
- Tier 0, syndication. No auth. Single tweets, profiles, and a recent window of a user's timeline.
- Tier 1, guest GraphQL. Opt in with
--guest. x mints a guest token and caches it on disk between runs, so it pages deeper without re-minting and tripping X's rate limit. - Tier 2, session GraphQL. Your own browser cookies, imported once with
x auth import. Unlocks the logged-in reads: search, followers and following, your home timeline, and bookmarks. Used only to read, never to act.
To look like the web client, x sends an x-client-transaction-id header and a
browser-faithful identity on each GraphQL request.
What you get
- Read.
tweet,user,timeline,replies,media,thread,poll,quotes, andmentionscover tweets and profiles; most work with no auth. - Search and discover.
search(with--product),counts,followers,following,likers,retweeters,likes, andlist. - Your session.
homeandbookmarksread your own views, and an imported session deepens search and the follower graph. x has no commands that change your account; the session is only ever used to read. - Shape the output.
-o table|json|jsonl|csv|tsv|url|raw,--fieldsto project columns, and--templatefor a Go text/template per row. IDs are always strings, so snowflake precision survivesjq. - Local store.
--dbon any read persists entities to SQLite, so a read doubles as a crawl.x crawlwalks accounts breadth-first with--depthand--max,x db statsandx db queryinspect the store,x queuemanages the crawl queue, andx exportrenders a stored user's tweets as Markdown.
Exit codes
x returns a specific code per outcome: 0 ok, 1 generic, 2 usage, 3 no
results, 4 needs-auth, 5 rate-limited, 6 not-found. Scripts can branch on
them; see troubleshooting.
Install
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 and checksums, are on the
release page. The binary is
pure Go, builds with CGO_ENABLED=0, and has no runtime dependencies.
License
x is derived from nitter and is licensed under the GNU AGPL-3.0.