Skip to main content

Fast F1 App

tests PyPI Python versions License

A small Textual terminal app for browsing current-season Formula 1 event results with FastF1.

This is an unofficial project. It is not associated in any way with Formula 1, the FIA, or any of their affiliates. F1, FORMULA 1 and related marks are trademarks of Formula One Licensing B.V.

The app showing the 2026 Hungarian Grand Prix race classification, a two-driver comparison, and a track panel with the Hungaroring drawn in sector colours

What you get

  • The current weekend, already loaded. On startup the app finds the most recent race weekend that has begun and opens it — no button to press.
  • One tab per session. The tab strip is built from the weekend itself, so a sprint weekend shows Sprint Qualifying and Sprint where a conventional one shows FP2 and FP3. Tabs load lazily and keep their own state, so switching back and forth costs nothing.
  • Team-coloured classification. Position, driver, team, status and gap, with medals for the podium. Sessions that have run but are not yet classified (practice, sprint qualifying) fall back to a ranking by best lap.
  • Per-driver detail. Select a row for lap-time stats, tire compounds and stops, plus — in qualifying — a sector-by-sector delta to the fastest lap of the session.
  • Two-driver comparison. Both drivers' lap times on one graph next to a metrics table with an explicit Δ column.
  • The circuit itself. A track panel draws the lap in its real proportions with each official sector in its own colour, alongside the circuit's name, location, length and corner count.
  • A log pane. FastF1's own chatter (cache hits, downloads, warnings) is piped into the panel at the bottom right instead of scribbling over the UI.

Install

Install it as a standalone command available from any directory:

uv tool install fast-f1-app
fast-f1-app

This builds an isolated environment for the app, so it does not touch your system Python. The executable lands in ~/.local/bin (C:\Users\<you>\.local\bin on Windows); if the command is not found, run uv tool update-shell and restart your terminal.

To move to a newer release later, uv tool upgrade fast-f1-app. To remove it, uv tool uninstall fast-f1-app.

If you prefer pipx: pipx install fast-f1-app works the same way.

From a checkout

To install the version in your working tree rather than the published one, run the same command against the directory:

uv tool install .

That installs a copy, so changes to the source will not appear until you re-run it. uv tool install --editable . makes the command track your working tree instead.

Run from a checkout

Without installing:

uv run python fast_f1_app.py

Using it

The app opens on the current weekend with its first session loaded. Pick a different Grand Prix from the Event dropdown and the tabs rebuild for that weekend; switch sessions with the tab strip.

Selecting a result row loads lap details for that driver. FastF1 caches session data, so the first load of a session is slow and later ones are quick.

The lap-time graphs and the fastest/slowest/average figures are built from clean laps only — pit in and out laps, and laps run under a safety car, VSC or red flag, are left out. A single out-lap is around twenty seconds off the pace, which is enough to stretch the axis and flatten every racing lap onto one row. The panel says how many laps were excluded, Laps still counts every lap completed, and the graph keeps real lap numbers on the x axis, so the excluded laps show up as gaps.

Key Action
Enter Show details for the highlighted driver
c Mark the highlighted driver for comparison (slot A, then B)
x Clear the comparison
r Reload the active session from FastF1
q Quit

Comparing two drivers

Marking a second driver with c opens the comparison view, as in the screenshot above: a per-lap delta graph of B − A, with each lap coloured by whoever was quicker — team colours, falling back to cyan/magenta when teammates share one — plus a side-by-side table of laps, clean laps, fastest/slowest/average lap, stops and compounds, with the A−B delta in the last column. Qualifying comparisons also list each driver's delta to pole and their sector times with sector-by-sector deltas.

The graph plots the difference rather than both drivers' lap times together because two drivers are usually within a second of each other while the axis has to span several, so overlaid series land on the same rows and cannot be told apart. Only laps both drivers ran cleanly get a delta.

Pressing c on a third driver starts a fresh comparison from that driver.

The track panel

The panel at the bottom left, visible in the screenshot above, draws the weekend's circuit from position telemetry, rotated to match the official circuit map and coloured by official sector: Sector 1 red, Sector 2 cyan, Sector 3 yellow.

It belongs to the weekend rather than to a session, so it loads once and stays put while you switch tabs. The drawing keeps the circuit's real proportions, which is why a roughly square circuit like the Hungaroring leaves space either side rather than being stretched to fill the panel.

Lengths are the published figures where the circuit is on file. Where it is not — a brand-new venue, say — the length is measured off the trace instead and shown with a , since measuring a lap that way can be off by up to about 2%.

Test

uv run python -m unittest discover -s tests

License

MIT — see LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fast_f1_app-0.2.0.tar.gz (30.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fast_f1_app-0.2.0-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

Details for the file fast_f1_app-0.2.0.tar.gz.

File metadata

  • Download URL: fast_f1_app-0.2.0.tar.gz
  • Upload date:
  • Size: 30.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for fast_f1_app-0.2.0.tar.gz
Algorithm Hash digest
SHA256 4c43f6e21e790bafb4830565cf9a95f6f5c4591b2b4262d750cdd0b7c4512010
MD5 640d142d7e7a41f06a21beed4d220056
BLAKE2b-256 c7c18975fb0be404e74f51de5f6f822a82dff19b9dbbd62de811986f13884f4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_f1_app-0.2.0.tar.gz:

Publisher: release.yml on ekss1121/fast-f1-app

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fast_f1_app-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: fast_f1_app-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 22.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for fast_f1_app-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3fbcd7da5a69b0ee78da8f94c171bbb54dcdc119de97f0cad5b8b5ac52f03ae8
MD5 fda3639fc4351d01e0c9db427573a566
BLAKE2b-256 10daf8b506474d0cd78ae210d55acdcbd37c854be62989d255f731c486b9c498

See more details on using hashes here.

Provenance

The following attestation bundles were made for fast_f1_app-0.2.0-py3-none-any.whl:

Publisher: release.yml on ekss1121/fast-f1-app

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page