sferik/x-cli
A command-line power tool for Twitter.
{ "createdAt": "2011-11-23T02:59:48Z", "defaultBranch": "main", "description": "A command-line power tool for Twitter.", "fullName": "sferik/x-cli", "homepage": "https://sferik.github.io/t", "language": "Ruby", "name": "x-cli", "pushedAt": "2026-06-15T01:18:39Z", "stargazersCount": 5569, "topics": [], "updatedAt": "2026-06-17T12:58:45Z", "url": "https://github.com/sferik/x-cli"}A command-line interface for the X API.
Features
Section titled “Features”- Full command tree with aliases and options
- X API client library (x-api) for HTTP, auth, and retry primitives
- OAuth 1.0a and OAuth 2.0 authentication
- Automatic retry with backoff for transient API errors
- V1.1 and V2 API support with automatic fallback
- Streaming support for filtered and sampled streams
- Column-aligned output formatting
- YAML configuration file support
- Bash completion support
Status
Section titled “Status”- Command families:
cli,delete,list,search,set,stream - Local account/profile commands:
accounts,set active,delete account,version,ruler - Stream commands use persistent HTTP streaming:
stream allandstream matrixuse OAuth2 sample streamstream search,stream users,stream list, andstream timelineuse v2 filtered stream rules + stream
X_STREAM_MAX_EVENTScan be set to limit emitted events (useful for tests/automation)- Default profile config is
~/.xrc. If~/.xrcis missing,~/.trcis used as a read fallback and migrated on write.
Development
Section titled “Development”cargo testcargo run -- versioncargo run -- accounts --profile /path/to/.xrcReleasing
Section titled “Releasing”Tagging a new v* release triggers GitHub Actions to build and publish binaries for:
- Linux (
x86_64-unknown-linux-gnu) - Linux ARM64 (
aarch64-unknown-linux-gnu) - macOS Intel (
x86_64-apple-darwin) - macOS Apple Silicon (
aarch64-apple-darwin) - Windows (
x86_64-pc-windows-msvc) - Windows ARM64 (
aarch64-pc-windows-msvc)
Install cargo-release:
cargo install cargo-release --lockedThen tag and push the current Cargo.toml version:
cargo release-tagTag messages come from Cargo.toml release metadata (tag-message).