Skip to main content

pitlane

Formula 1 in your terminal. Live timing, a track position line, driver battles, standings, results and the season calendar. One Python file, no dependencies.

pitlane live timing during the 2026 Bahrain Grand Prix: status banner, track position line, timing tower with mini-sectors and tyres, and race control

Features

Live timing (pitlane live), during practice, qualifying, sprint and race sessions:

  • Status banner coloured by track status: green flag, yellow, Safety Car, VSC, red flag, chequered.
  • Event pop-ups for overtakes, pit stops, fastest laps, retirements and Safety Car / red flags.
  • Track line showing every car as a dot on one lap, so you can see who is physically near whom, lapped cars included. Press g to switch to a gap view, which shows trains of cars and DRS fights.
  • Timing tower:
    • positions gained or lost against the grid
    • gap and interval, with intervals under 1s highlighted for DRS range
    • last and best laps
    • live mini-sectors
    • tyre compound and laps since the stop
    • pit stops
  • Driver focus (← / →):
    • the battle with the cars ahead and behind, and whether each gap is closing
    • live sector times and speed traps
    • best laps and sectors, each with its rank in the field
    • the full tyre history
    • a lap-time graph
  • Race control messages, colour-coded.

Everything else:

Command What it shows
pitlane Dashboard: next race with session countdowns, last podium, both championships
pitlane next [--watch] Next race weekend, with a live countdown to every session
pitlane drivers Driver championship
pitlane teams Constructor championship
pitlane schedule Season calendar, with sprint weekends marked
pitlane results [ROUND] Race result: grid, time or retirement, points, fastest lap
pitlane quali [ROUND] Qualifying with Q1 / Q2 / Q3 times
pitlane sprint [ROUND] Sprint result

Options: -s 2021 for any past season, -r to skip the 5-minute cache, --no-color, --version. All times are shown in your local timezone.

Install

You need Python 3.8 or newer. There are no other dependencies.

With pipx or uv (recommended, since they keep pitlane in its own environment):

pipx install pitlane
uv tool install pitlane

Or try it without installing anything:

uvx pitlane live

Plain pip install pitlane works too. You can also grab the single file and run it:

curl -O https://raw.githubusercontent.com/bilal-psd/pitlane/main/pitlane.py
python3 pitlane.py

To update later: pipx upgrade pitlane or uv tool upgrade pitlane.

Live timing keys

Key Action
← / → (or h / l) Highlight a driver. Race control is replaced by their driver panel
g Switch between track position and gap-to-leader view
esc Clear the highlight
q / Ctrl+C Quit

The layout adapts to your terminal. On wide screens the side panel sits next to the timing tower. On narrower ones it moves underneath, and less important columns are hidden. Panels keep a fixed height, so nothing jumps around while the cars move.

How it works

  • Standings, results and calendar come from the Jolpica F1 API, the community-run successor to Ergast. Responses are cached for 5 minutes in ~/.cache/pitlane, and if you're offline the cached data is used.

  • Live timing reads Formula 1's public live timing feed, the same one that powers the official live timing pages. No account is needed.

  • Track positions are estimates. The feed's car coordinates need an F1 TV subscription, so pitlane works out each car's place on the lap from timing data instead:

    • Race: the leader's mini-sector progress, plus each car's gap.
    • Practice and qualifying: each car's own mini-sectors.

    They're usually within a second or two of where the car really is. They're less precise behind the Safety Car, when lap times change suddenly.

Limitations

  • Driver history: F1 locks a session's archive until it ends. So the lap-time graph and "closing / dropping" trends in the driver panel only cover laps since you started pitlane.
  • Not available: car telemetry, the circuit map, team radio and the live championship projection all need an F1 TV login.
  • Platforms: tested on macOS. Linux should behave the same. On Windows, live timing runs without keyboard controls; WSL or Windows Terminal is recommended.

Disclaimer

pitlane is an unofficial fan project. It is not associated in any way with the Formula 1 companies. F1, FORMULA ONE, FORMULA 1, FIA FORMULA ONE WORLD CHAMPIONSHIP, GRAND PRIX and related marks are trade marks of Formula One Licensing B.V. Timing data belongs to its respective owners. This tool only displays it for personal use.

License

MIT

Metadata

Release files for pitlane 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pitlane 0.1.0
File Size Uploaded
pitlane-0.1.0.tar.gz 24.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pitlane 0.1.0
File Interpreter ABI Platform
pitlane-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 48.4 kB

Release files / pitlane-0.1.0.tar.gz

Download URL pitlane-0.1.0.tar.gz
Size 24.1 kB
Tags Source
SHA-256 checksum
How to use checksums
b461d035f9d592c868d0b493adb77763355d55af9e2b049045cb7c505729e3bc
BLAKE2b-256 checksum
How to use checksums
e6125c9d703648282fb01c6eae11200b0d0345a09aaab98b479643ff4f964096
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / pitlane-0.1.0-py3-none-any.whl

Download URL pitlane-0.1.0-py3-none-any.whl
Size 24.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
694c0bef4aba9ec3ca4f7ad77151ff1a63692c47abc8de2ace5fe5b183f78c85
BLAKE2b-256 checksum
How to use checksums
6f435ab8d573ff06b12b01b58caf18b7bad1987c95f7e2c9d99a2373d31a5c9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page