Standalone CLI wrapper around the xpoz Python SDK.
Project description
xpoz-cli
Work seamlessly with Xpoz from the command line.
A single standalone binary that wraps the Xpoz Python SDK and exposes every SDK method as a CLI subcommand — Twitter, Instagram, Reddit, TikTok, and tracking — with paginated result handling, CSV export, and persistent auth.
Install
One-liner (Linux/macOS)
curl -fsSL https://raw.githubusercontent.com/XPOZpublic/xpoz-cli/main/install.sh | sh
Auto-detects your OS and CPU architecture, downloads the matching binary from GitHub Releases, verifies its SHA256, and drops it in ~/.local/bin/xpoz-cli. Override the install dir with XPOZ_INSTALL_DIR=/usr/local/bin, or pin a version with XPOZ_VERSION=v0.2.0.
One-liner (Windows, PowerShell)
iwr -useb https://raw.githubusercontent.com/XPOZpublic/xpoz-cli/main/install.ps1 | iex
Same idea — installs to %LOCALAPPDATA%\xpoz-cli\xpoz-cli.exe and prints the one PATH command you need to run if it isn't already on your PATH.
Homebrew (macOS / Linux)
brew tap XPOZpublic/xpoz
brew install xpoz-cli
Or in one line: brew install XPOZpublic/xpoz/xpoz-cli.
winget (Windows)
winget install Xpoz.XpozCli
(or winget install xpoz-cli once the manifest is published in microsoft/winget-pkgs).
pip (any platform with Python ≥3.10)
pip install xpoz-cli
Pulls the wheel from PyPI. Requires Python on the user's machine; the other channels above bundle Python via PyInstaller.
Manual download
Pick the asset matching your platform from the Releases page:
| Platform | Asset |
|---|---|
| Linux x86_64 | xpoz-cli-linux-amd64 |
| Linux arm64 | xpoz-cli-linux-arm64 |
| macOS Apple Silicon | xpoz-cli-macos-arm64 |
| Windows x86_64 | xpoz-cli-windows-amd64.exe |
Each release also publishes SHA256SUMS for offline verification:
curl -fsSLO https://github.com/XPOZpublic/xpoz-cli/releases/latest/download/xpoz-cli-linux-amd64
curl -fsSLO https://github.com/XPOZpublic/xpoz-cli/releases/latest/download/SHA256SUMS
sha256sum -c --ignore-missing SHA256SUMS
chmod +x xpoz-cli-linux-amd64 && sudo mv xpoz-cli-linux-amd64 /usr/local/bin/xpoz-cli
macOS Intel is not currently shipped as a prebuilt binary — use pip install xpoz-cli instead.
Quick start
Authenticate once — your API key is stored at ~/.config/xpoz/config.json (or %APPDATA%\xpoz\config.json on Windows) with mode 0600:
xpoz-cli auth login
# Get your API key from: https://www.xpoz.ai/settings
# Open in browser? [Y/n]: y
# Paste your API key: xpz_...
xpoz-cli auth status
xpoz-cli auth logout
Then call any SDK method on any platform:
xpoz-cli twitter get_user --identifier elonmusk
xpoz-cli twitter search_posts \
--query '"AI" AND ethics' \
--start-date 2025-01-01 \
--limit 20
xpoz-cli reddit search_posts \
--query "python tutorial" \
--subreddit learnpython \
--sort top \
--time month \
--all-pages
xpoz-cli twitter search_posts --query bitcoin --export-csv-url
Discovery
The CLI is generated by reflecting on the installed SDK, so every method the SDK exposes is automatically a subcommand. Use --help at any level to explore:
xpoz-cli --help # global options and platforms
xpoz-cli twitter --help # available methods on twitter
xpoz-cli twitter search_posts --help # flags, types, and an example
Each method's help screen shows a synthesized example built from its required parameters.
Global options
| Flag | Purpose |
|---|---|
--api-key KEY |
Override stored key (env: XPOZ_API_KEY) |
--server-url URL |
Custom MCP server (env: XPOZ_SERVER_URL) |
--output json|pretty |
JSON output format (default json) |
--all-pages |
Walk every page of a paginated result |
--max-pages N |
Safety cap for --all-pages |
--page N |
Jump to a specific page |
--export-csv-url |
Return a CSV download URL instead of rows |
--timeout SECS |
Operation timeout (default 300) |
API key precedence: --api-key flag → XPOZ_API_KEY env → stored config.
Build from source
Requires Python 3.10+.
pip install xpoz pyinstaller
pyinstaller --onefile --name xpoz-cli xpoz_cli.py
./dist/xpoz-cli --help
Or run directly:
pip install xpoz
python xpoz_cli.py twitter get_user --identifier elonmusk
Releases
Multi-platform binaries are built by the build-release workflow, triggered by:
- Git tag push (
git tag v0.1.0 && git push origin v0.1.0) — builds all targets and publishes a GitHub Release. - Manual run via the Actions tab — same flow with a user-supplied tag and optional prerelease flag.
License
MIT — see LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xpoz_cli-0.2.0.tar.gz.
File metadata
- Download URL: xpoz_cli-0.2.0.tar.gz
- Upload date:
- Size: 25.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ede264f5dc1834f6f8db156f12abcb970478355ed7ed9f9e37606a801868964
|
|
| MD5 |
061bb8d6bb9d150bd7a1aadb12d1dd50
|
|
| BLAKE2b-256 |
5d448420d58b57eec71d8e4546b901d8f1716c6c2cd822d9a441e01887b76e8f
|
Provenance
The following attestation bundles were made for xpoz_cli-0.2.0.tar.gz:
Publisher:
publish.yml on XPOZpublic/xpoz-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
xpoz_cli-0.2.0.tar.gz -
Subject digest:
3ede264f5dc1834f6f8db156f12abcb970478355ed7ed9f9e37606a801868964 - Sigstore transparency entry: 1428850376
- Sigstore integration time:
-
Permalink:
XPOZpublic/xpoz-cli@97e492731dd217ee706e5b6a69fd0791a3194687 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/XPOZpublic
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@97e492731dd217ee706e5b6a69fd0791a3194687 -
Trigger Event:
workflow_run
-
Statement type:
File details
Details for the file xpoz_cli-0.2.0-py3-none-any.whl.
File metadata
- Download URL: xpoz_cli-0.2.0-py3-none-any.whl
- Upload date:
- Size: 12.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0daa9617e8b3ae2ddfa3b01330a6c959d9ff3d116bff8076e78fcc392c3c4fa8
|
|
| MD5 |
9fd7909926e39b9d296eb873855801f7
|
|
| BLAKE2b-256 |
2339b95fdb680f8f039f6e7e6748daf18aa97b50b0c8087c007e636dad523e76
|
Provenance
The following attestation bundles were made for xpoz_cli-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on XPOZpublic/xpoz-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
xpoz_cli-0.2.0-py3-none-any.whl -
Subject digest:
0daa9617e8b3ae2ddfa3b01330a6c959d9ff3d116bff8076e78fcc392c3c4fa8 - Sigstore transparency entry: 1428850396
- Sigstore integration time:
-
Permalink:
XPOZpublic/xpoz-cli@97e492731dd217ee706e5b6a69fd0791a3194687 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/XPOZpublic
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@97e492731dd217ee706e5b6a69fd0791a3194687 -
Trigger Event:
workflow_run
-
Statement type: