Installation
gfly is a Python package published to PyPI as gfly (v0.1.0).
The default google backend needs no API key and no account — install and run.
Zero-install trial
Section titled “Zero-install trial”Not ready to commit? Run gfly directly without installing anything:
uvx gfly search JFK LHR --depart 2026-08-15uvx spins up a disposable virtual environment, runs the command, and discards it. Nothing persists on your machine. Great for a quick sanity check before adding gfly to a project.
Recommended: uv tool install
Section titled “Recommended: uv tool install”uv tool install gflyThis installs gfly into an isolated environment managed by uv and puts the gfly binary on your PATH. It is the fastest, cleanest option and keeps gfly’s dependencies off your project’s lockfile.
To upgrade later:
uv tool upgrade gflyOther install methods
Section titled “Other install methods”| Method | Command | Best for |
|---|---|---|
| uvx (no install) | uvx gfly search JFK LHR --depart 2026-08-15 |
Try it once |
| uv tool install (recommended) | uv tool install gfly |
Persistent, isolated |
| pipx | pipx install gfly |
pipx users |
| pip | pip install gfly |
Scripts, venvs, CI |
pip inside a virtual environment
Section titled “pip inside a virtual environment”python -m venv .venvsource .venv/bin/activate # Windows: .venv\Scripts\activatepip install gflyWhat ships in the box
Section titled “What ships in the box”The default install pulls exactly these runtime dependencies (from pyproject.toml):
| Package | Version | Purpose |
|---|---|---|
click |
≥ 8.4 | CLI framework |
fast-flights |
≥ 3.0.2 | google backend — reverse-engineered Flights endpoint |
typing-extensions |
≥ 4.15 | Transitive dependency of fast-flights |
keyring |
≥ 25 | Credential storage for the serpapi backend |
airportsdata |
≥ 20260315 | Offline IATA resolution (~7 900 airports) |
The serpapi backend uses Python’s standard-library urllib — no extra dependency required. You
only need to supply an API key to use it. See Backends for details.
Verify the installation
Section titled “Verify the installation”Run these three commands after installing:
gfly --version # prints the version string (e.g. 0.1.0)gfly doctor # checks auth, keyring, connectivity, and throttle stategfly schema # machine-readable command tree + exit codes + env varsIf gfly is not found after pip install, your Python bin directory may not be on PATH.
With uv tool install, run uv tool list to confirm the binary path.
Supply-chain verification
Section titled “Supply-chain verification”Every release artifact is accompanied by a SHA256SUMS file and a build-provenance attestation
generated by GitHub Actions. You can verify the wheel before installing:
# Download the wheel from PyPI first, then verify:gh attestation verify gfly-0.1.0-py3-none-any.whl --repo rnwolfe/gflyThe attestation links the artifact back to the exact commit and workflow run that built it. Source is at github.com/rnwolfe/gfly.
Next steps
Section titled “Next steps”- Quickstart — search flights and pipe results into
jqin under a minute. - Searching flights — full flag reference: dates, cabin, stops, sort, pagination.
- Backends — when to switch from
googletoserpapiand how to configure it.