A CLI and TUI for avios.com — view your Avios balance and transactions from the terminal.
Project description
avios-cli
A CLI and TUI for avios.com — check your Avios balance, browse your transactions and manage your account without leaving the terminal.
⚠️ Unofficial. This project is not affiliated with, authorised by, or endorsed by Avios, British Airways or IAG Loyalty. It drives the same private endpoints the avios.com website uses, with your own logged-in session. Use at your own risk; it may break at any time and may be against the provider's terms of service.
The avios tui dashboard (demo data). Regenerate with uv run python scripts/screenshot.py.
Status
Early alpha, built in the open. See the roadmap.
Install
Requires Python 3.10+.
uvx avios-cli --help # run without installing
# or install it, then use the `avios` command:
pip install avios-cli
avios --help
Or from source, for development:
git clone https://github.com/alexechoi/avios-cli
cd avios-cli
uv sync
uv run avios --help
Log in
avios.com has no credential API — login is Auth0 Universal Login behind hCaptcha and
SMS/passkey MFA — so avios login opens a real browser, waits while you finish
logging in (password, captcha, SMS code), and captures the session once you land
on the dashboard. It needs the login extra:
uvx --from 'avios-cli[login]' avios login
It launches your installed Google Chrome (no extra download). If you don't have
Chrome, install Playwright's browser once with
uvx --from playwright playwright install chromium.
Prefer not to open a browser? Import the cookie from a Chrome you're already logged into avios.com with:
uvx --from 'avios-cli[login]' avios login --from-browser
This scans all your Chrome profiles and uses whichever one is actually logged into avios.com (it tells you which). If you have several profiles, you can target one directly:
uvx --from 'avios-cli[login]' avios login --from-browser --profile "Profile 1"
Plain uvx avios-cli login won't work — the isolated environment doesn't include
the login extra.
Stuck in an endless captcha loop? That's bot detection on the automated
browser. Use --from-browser instead: log into avios.com in your normal Chrome
(you'll get one normal captcha), then run
uvx --from 'avios-cli[login]' avios login --from-browser.
Your session cookie is stored at ~/.config/avios/state.json (mode 600). It
expires after ~a day; just run avios login again. Run avios logout to remove it.
Usage
avios balance # your Avios balance
avios transactions --limit 20 # recent transactions
avios pending # pending Avios
avios accounts # linked loyalty accounts
avios overview # dashboard summary (raw JSON)
avios whoami # your profile (raw JSON)
avios raw /manage-avios/api/user/current # hit any endpoint directly
Add --json to balance, transactions, pending or accounts for scriptable
output.
TUI
avios tui
A full-screen dashboard: your balance in the header and a scrollable transactions
table. Press r to refresh, q to quit.
Roadmap
- Project scaffolding, packaging and CI
- Session + cookie storage layer
- Typed API client (balance, transactions, accounts, profile)
- Browser-assisted
avios login - CLI commands
- Textual TUI dashboard
- Reward-flight availability search (coming soon — needs a British Airways capture)
Development
uv sync # installs the project + the `dev` dependency-group
uv run ruff check .
uv run mypy src
uv run pytest
See CONTRIBUTING.md for the full workflow and CHANGELOG.md for release notes.
Security
No passwords are handled or stored — only your session cookie, kept locally at
~/.config/avios/state.json (mode 600). See SECURITY.md.
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 avios_cli-0.1.5.tar.gz.
File metadata
- Download URL: avios_cli-0.1.5.tar.gz
- Upload date:
- Size: 108.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26b5330e1b70f691346c1a137371d4cb813d1ac8f50bd40b012903d7293dde8a
|
|
| MD5 |
a1e6211d4f3206230a1849661c21d88d
|
|
| BLAKE2b-256 |
d4f4ab356f19779f3dd5547f00e55ea3b2942c47b9fabc5c13bd08ea1c00bad4
|
Provenance
The following attestation bundles were made for avios_cli-0.1.5.tar.gz:
Publisher:
publish.yml on alexechoi/avios-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
avios_cli-0.1.5.tar.gz -
Subject digest:
26b5330e1b70f691346c1a137371d4cb813d1ac8f50bd40b012903d7293dde8a - Sigstore transparency entry: 2235895618
- Sigstore integration time:
-
Permalink:
alexechoi/avios-cli@ff57a835a5d5bd710d2f22e21904612ce5b1843e -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/alexechoi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ff57a835a5d5bd710d2f22e21904612ce5b1843e -
Trigger Event:
release
-
Statement type:
File details
Details for the file avios_cli-0.1.5-py3-none-any.whl.
File metadata
- Download URL: avios_cli-0.1.5-py3-none-any.whl
- Upload date:
- Size: 19.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b60f2777a635038d771aa847e0863b70e99f8661be5048025c4dc15f79f4c59
|
|
| MD5 |
05ab77cc26e789cd4e3408057d7e87f9
|
|
| BLAKE2b-256 |
c71313c5d6c86c8cda64a583c31368f28057ad436492b5b2ee6121f3e2a19cb1
|
Provenance
The following attestation bundles were made for avios_cli-0.1.5-py3-none-any.whl:
Publisher:
publish.yml on alexechoi/avios-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
avios_cli-0.1.5-py3-none-any.whl -
Subject digest:
9b60f2777a635038d771aa847e0863b70e99f8661be5048025c4dc15f79f4c59 - Sigstore transparency entry: 2235895816
- Sigstore integration time:
-
Permalink:
alexechoi/avios-cli@ff57a835a5d5bd710d2f22e21904612ce5b1843e -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/alexechoi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ff57a835a5d5bd710d2f22e21904612ce5b1843e -
Trigger Event:
release
-
Statement type: