About Features Leaderboard Files Privacy Archived ← Home Support
Installation Guide

Get It
Running.

Pick your platform below. Windows, Linux, and macOS (Apple Silicon) all ship as ready-to-run apps — no Python needed — and Android has its own standalone app. Prefer to run from source instead? That's available on every platform too.

Share the guide

Windows setup

01

Download

Most people want the .exe above. The source download is only useful if you want to read or modify the code — run it with pip install -r requirements.txt then python launcher.py (the Python Source walkthrough below has the exact commands for each platform).

Prefer the terminal? In PowerShell: iwr https://github.com/ransh2014/gt7telemtrace/releases/latest/download/gt7telem-windows.zip -OutFile gt7telem-windows.zip for the .exe, or swap in gt7telem-source.zip for the Python source.

iwr https://github.com/ransh2014/gt7telemtrace/releases/latest/download/gt7telem-windows.zip -OutFile gt7telem-windows.zip
Prefer pip? pip install gt7tracetelem installs it as a library too — note the importable module is gt7telem (not gt7tracetelem): import gt7telem, or run gt7telem from the terminal. If you already have an unrelated package that installs a top-level gt7telem module, the two will conflict — check first with pip show gt7telem.
pip install gt7tracetelem
Prefer a package manager? TRACE is also on winget, Scoop, and Chocolatey. Package-manager releases go through a review step, so a new version can take a little while to show up there. For the very latest build, use the .exe download above.
winget install ransh2014.TRACE
scoop bucket add gt7telem https://github.com/ransh2014/scoop-gt7telem scoop install gt7telem/gt7telem
choco install gt7telem

Right-click gt7telem-windows.zip → Extract All, then double-click TRACE.exe inside the extracted folder.

Windows SmartScreen warning? Click More info → Run anyway. This happens because the .exe isn't code-signed yet, not because anything's wrong. TRACE applied for a free code-signing certificate through SignPath Foundation, but wasn't approved yet (they look for a project with more public visibility), so the warning stays for now. The code is open source, and every build comes from a public GitHub Actions run.
02

Pick a Tool

A menu pops up with three tools — Live Dashboard, Lap Analyst, and Race Analyst. Pick one to launch it. (The Track Map isn't a separate menu entry — it's a live panel inside the Live Dashboard.) Re-open TRACE.exe any time to switch tools.

03

Set Your Console IP (Dashboard only)

Make sure GT7 is open and running on your PS4/PS5 first. In the Dashboard, type your console's IP into the field at the top and hit Enter — it's remembered automatically next time you open TRACE.

Finding your IP: On PS4/PS5 → Settings → Network → View Connection Status → IP Address

Linux setup

01

Download

Most people want the binary above. The binary needs glibc 2.35 or newer (Ubuntu 22.04+, Fedora 36+, Debian 12+ or similar). Use the source download if your distro is older than that, or if you just want to read the code.

Prefer the terminal? curl -LO https://github.com/ransh2014/gt7telemtrace/releases/latest/download/gt7telem-linux.zip for the binary, or swap in gt7telem-source.zip for the Python source.

curl -LO https://github.com/ransh2014/gt7telemtrace/releases/latest/download/gt7telem-linux.zip
Prefer pip? pip install gt7tracetelem installs it as a library too — note the importable module is gt7telem (not gt7tracetelem): import gt7telem, or run gt7telem from the terminal. If you already have an unrelated package that installs a top-level gt7telem module, the two will conflict — check first with pip show gt7telem.
pip install gt7tracetelem
02

Unzip and Make Executable

Extract the zip, open a terminal in that folder, and run:

chmod +x TRACE && ./TRACE
Built and tested on Ubuntu (glibc). Should run on most modern distros with a desktop environment. Needs a display — won't run headless.
03

Pick a Tool

A menu pops up with three tools — Live Dashboard, Lap Analyst, and Race Analyst. Pick one to launch it. (The Track Map isn't a separate menu entry — it's a live panel inside the Live Dashboard.) Re-run TRACE any time to switch tools.

04

Set Your Console IP (Dashboard only)

Make sure GT7 is open and running on your PS4/PS5 first. In the Dashboard, type your console's IP into the field at the top and hit Enter — it's remembered automatically next time you open TRACE.

Finding your IP: On PS4/PS5 → Settings → Network → View Connection Status → IP Address

macOS setup

01

Download

Most people want the .app above — built automatically on every release via GitHub Actions, no Python required. The source download is only useful if you want to read or modify the code, or you're on an older Intel Mac.

Prefer the terminal? curl -LO https://github.com/ransh2014/gt7telemtrace/releases/latest/download/gt7telem-macos.zip for the .app, or swap in gt7telem-source.zip for the Python source.

curl -LO https://github.com/ransh2014/gt7telemtrace/releases/latest/download/gt7telem-macos.zip
Prefer pip? pip install gt7tracetelem installs it as a library too — note the importable module is gt7telem (not gt7tracetelem): import gt7telem, or run gt7telem from the terminal. If you already have an unrelated package that installs a top-level gt7telem module, the two will conflict — check first with pip show gt7telem.
pip install gt7tracetelem
Prefer Homebrew?
brew tap ransh2014/gt7telem brew install --cask gt7telem

Unzip, then drag TRACE.app into Applications (or just double-click it from the extracted folder).

"TRACE.app is damaged / can't be opened" warning? TRACE.app is ad-hoc signed (a local signature with no Apple-issued certificate) — this satisfies macOS's baseline signature check but Gatekeeper still flags it as coming from an unidentified developer, not because anything's wrong. Right-click the app → Open → Open again in the dialog. If macOS still refuses, run xattr -cr /Applications/TRACE.app in Terminal once. Full notarization needs a paid Apple Developer account, which isn't set up yet.
xattr -cr /Applications/TRACE.app
02

Pick a Tool

A menu pops up with three tools — Live Dashboard, Lap Analyst, and Race Analyst. Pick one to launch it. (The Track Map isn't a separate menu entry — it's a live panel inside the Live Dashboard.) Re-open TRACE.app any time to switch tools.

03

Set Your Console IP (Dashboard only)

Make sure GT7 is open and running on your PS4/PS5 first. In the Dashboard, type your console's IP into the field at the top and hit Enter — it's remembered automatically next time you launch it.

Finding your IP: On PS4/PS5 → Settings → Network → View Connection Status → IP Address

Android setup

01

Download

This is the full app on your phone — Live Dashboard, Lap Analyst and Race Analyst — and it receives the PS5's telemetry itself, so you don't need a PC. It's a free APK download, not a Play Store app.

Open the downloaded file. Android will ask you to allow installs from your browser or file manager (Settings → Install unknown apps); allow it for the install. If Play Protect says it hasn't seen the app before, tap More details → Install anyway.

Why the warnings? Sideloaded apps always show them. The APK is signed with TRACE's own key and built on GitHub Actions from the open-source code, so every update installs over the previous one.
02

Pick a Tool

A menu shows Live Dashboard, Lap Analyst and Race Analyst. The footer also has Records (your best lap per car and track), Backup Laps and the account and theme buttons. Allow notifications when asked if you want personal-best and race-end alerts.

03

Set Your Console IP (Dashboard only)

Make sure GT7 is open and running on your PS4/PS5 first and that your phone is on the same Wi-Fi network as the console. In the Dashboard, type your console's IP into the field at the top and connect — it's remembered next time.

Finding your IP: On PS4/PS5 → Settings → Network → View Connection Status → IP Address

Core protocol by

Bornhall — GT7 UDP Telemetry
The decryption, packet format, and byte structure that make this software possible.
Please go star the original repo.
↗ github.com/Bornhall/gt7telemetry

Car & track database by

ddm999 — gt7info
GT7's telemetry stream only ever hands over a raw numeric car ID — every real car name you see across all four tools (Dashboard, Track Map, Lap Analyst, Race Analyst) is resolved through ddm999's community-maintained gt7info database, covering every car, track, and manufacturer in the game. Tracks don't even get an ID from GT7 at all, so the TRACK dropdown is seeded from the same database's course list. This project just ships a snapshot of it (car_ids.csv and course_ids.csv) and reads from it — the lookup itself, and the work of keeping it current as Polyphony adds new content, is entirely ddm999's.
↗ github.com/ddm999/gt7info

Enjoying TRACE?

Support the Project
TRACE is free and always will be. If it's made your GT7 sessions better and you want to throw a few bucks toward keeping it maintained, a coffee goes a long way.
Support on Ko-fi

This section is for anyone using the "Python Source" download instead of the ready-to-run app — a full walkthrough assuming nothing is set up yet.

1. Open a terminal in the extracted folder

Windows: unzip the download, open the folder in File Explorer, then right-click inside it (on empty space) → Open in Terminal. If that option isn't there, press Win, type cmd, hit Enter, then type cd followed by a space and drag the folder into the window to fill in the path, then press Enter.

macOS: unzip the download, press Cmd + Space, type Terminal, hit Enter. Type cd followed by a space, then drag the unzipped folder into the Terminal window — it'll fill in the path automatically — and press Enter.

Linux: unzip the download, right-click inside the folder in your file manager → Open Terminal Here (wording varies by desktop environment — GNOME/KDE both have some version of this).

2. Check Python is installed (3.10 or newer)

Run this in the terminal you just opened:

# macOS / Linux python3 --version # Windows python --version

If you see a version number 3.10 or higher, skip to step 3. If you get command not found, 'python' is not recognized, or a version below 3.10, install/update Python first:

Windows / macOS: download the installer from python.org/downloads and run it. On Windows, make sure to tick "Add python.exe to PATH" on the first install screen — easy to miss, and without it the python command won't work afterward.
Linux: sudo apt install python3 python3-pip python3-venv python3-tk (Ubuntu/Debian) or the equivalent for your distro.

sudo apt install python3 python3-pip python3-venv python3-tk

Once installed, close and reopen the terminal, then re-run the version check above to confirm it worked.

3. Install the dependencies

# macOS / Linux pip3 install -r requirements.txt # Windows pip install -r requirements.txt

This pulls in numpy, pandas, matplotlib, and pycryptodome — takes a minute or two. If you get pip: command not found, your Python install didn't include pip; reinstalling from python.org (not a system package manager) usually fixes it.

4. Run it

# macOS / Linux python3 launcher.py # Windows python launcher.py

A small menu window should pop up with three tools — Live Dashboard, Lap Analyst, and Race Analyst. Pick one to launch it. (The Track Map is a panel inside the Live Dashboard, not a separate menu entry.)

Common errors

ModuleNotFoundError: No module named 'tkinter' — macOS: your Python didn't include it; reinstall via the official python.org installer, not Homebrew. Linux: run sudo apt install python3-tk.

ModuleNotFoundError: No module named 'numpy' (or pandas/matplotlib) — step 3 didn't finish or errored partway through; re-run the pip install command and read the error output.

Nothing happens when you double-click launcher.py directly — that's expected on most systems; run it through the terminal with the command above instead.

sudo apt install python3-tk

Once it's running, your PS4/PS5 IP is entered once in the Dashboard's IP field and saved automatically from then on — no config file editing needed.

Optional — custom sample rates: The REC RATE dropdown is limited to 10/20/30/60 Hz in the GUI, but if you're running from source you can add your own values by editing RECORD_RATE_OPTIONS = [10, 20, 30, 60] near the top of gt7telem/dashboard.py — any Hz value you add there shows up as a real, working dropdown option next time you launch it. No other config needed.

FAQ

Does this work on PS5?

Yes. The telemetry UDP stream is identical on PS4 and PS5. Just set your PS5's IP in the Dashboard the same way.

Is there an Android app?

Yes — TRACE for Android is a free APK (Android 8.0+) with the same Live Dashboard, Lap Analyst and Race Analyst. Your phone receives the PS5's telemetry directly, so no PC is needed. It's a direct APK download rather than a Play Store app — see the Android tab above.

My race or lap saved as incomplete — why?

Usually the PC went to sleep or hibernated mid-session, which stops the telemetry packets. The Dashboard's KEEP AWAKE checkbox (on by default) keeps Windows, macOS and Linux awake the whole time it's open and lets go when you close it; the Android app holds the phone awake the same way. That can't stop a closed lid or a manual Sleep/Hibernate, so leave the lid open during a race. If packets stop mid-recording, the Dashboard log shows a warning.

Does it record endurance (timed) races automatically?

Not yet. TRACE only auto-starts and auto-stops recording for races with a set number of laps. For an endurance or timed race, press Record Race yourself at the start, keep the Dashboard open for the whole race (the recording is held in memory until it stops), and press Stop Record Race after the chequered flag. If you never press Record Race, nothing is saved.

Can I change how often samples are recorded?

Yes — there's an optional REC RATE dropdown next to the connection controls in the Live Dashboard (10 / 20 / 30 / 60 Hz). It only affects Record Lap / Record Race; it never invents data between real packets, only thins samples down to whatever rate you pick. Laps and races recorded at different rates still compare correctly against each other in the Lap Analyst and Race Analyst — both go off each sample's actual timestamp, not an assumed fixed interval.

Why is TRACK a dropdown instead of a text box?

GT7's telemetry doesn't report a track ID the way it does a car ID. TRACE guesses the track from where the lap starts and asks you to confirm, and the field itself isn't left free-typed (and quietly splitting one track's laps across "suzuka" / "Suzuka Circuit" / "suzuka_circuit" depending on how you typed it that session), it's a searchable picker seeded from ddm999's gt7info course database — 120+ real circuit and layout names, reverse layouts and sub-layouts included. You can still type a name that isn't in the list.

GT7 added a new track that's not in the dropdown yet — what do I do?

Run add_track.py from the Python source download — it asks for just the track name (no ID needed, since telemetry doesn't expose one to look up) and saves it to course_ids_local.csv next to your settings.json, so it survives TRACE upgrades. It'll show up in the dropdown next time you open the Dashboard. (Installed via pip/Chocolatey/WinGet? The same tool is gt7telem-add-track; for cars, gt7telem-add-car.)

The dashboard says OFFLINE — what do I check?

Two most common causes: the IP entered in the app is wrong, or your PC and PS4/PS5 are on different subnets (e.g. one on 2.4 GHz, one on 5 GHz). Also make sure GT7 is actually in-game, not just sitting on the PS home screen. The dashboard also switches to OFFLINE a couple of seconds after packets stop (game closed, console asleep) and back to LIVE by itself when they resume.

Windows says the app is unrecognized / SmartScreen blocked it.

That's expected for an unsigned indie tool — click More info then Run anyway. If your antivirus quarantines it, that's a false positive common with PyInstaller-built apps; you can allowlist the file. TRACE applied for a free code-signing certificate through SignPath Foundation but wasn't approved yet, so the warning stays for now; the code is open source and every build comes from a public GitHub Actions run.

How do I verify the Linux download hasn't been tampered with?

Every Linux release is signed with a dedicated GPG key. Grab the public key from the GitHub repo, then run gpg --import trace-public-key.asc followed by gpg --verify gt7telem-linux.zip.asc gt7telem-linux.zip. A "Good signature" result confirms the file matches what was built in CI.

Where are my recorded laps saved?

Almost always ~/TRACE/laps, so an upgrade can’t wipe them — that covers pip installs, the Python source download, the macOS app, and Chocolatey/WinGet installs. The one exception: a standalone .exe / binary unzipped into a folder you can write to stays portable and creates a laps folder right next to the executable. Either way the Lap Analyst and Race Analyst read from there automatically. To move it somewhere else, edit LAPS_FOLDER in settings.json and restart — there's no in-app setting for the laps folder.

What's the difference between Lap Analyst and Race Analyst?

Lap Analyst compares two individual laps in detail — 20 chart groups, sector timing, heat maps. Race Analyst compares two full race sessions side by side, with synced replay and CSV/HTML export.

What do the STRATEGY (est.) numbers in the Live Dashboard mean?

FUEL/LAP is the median fuel burn over your last few clean laps (a lap with a refuel, or after a restart, is ignored), so one thirsty lap can't skew it. FUEL LAPS is how many laps the fuel left will cover. In a race, FINISH shows how many laps of fuel you'd have spare, or how far short you are, and PIT BY is the lap to come in on to keep half a lap of fuel in hand (practice and time trial have no race length, so only PIT BY shows). A leading ~ means it's based on fewer than 3 laps. GT7 doesn't send tyre wear at all, so the tyre figures are estimates: PACE LOSS is how much slower your recent laps are than your best lap of the stint, TREND is the per-lap change, and TYRES turns that into Fresh / Good / Fading / Worn. Fuel burn-off makes the car quicker as the stint goes on, which hides some wear, so these under-read rather than over-read. A refuel starts a new stint automatically; for a tyre-only stop press [ NEW TYRES ].

How do I share a lap?

Load the lap in Lap Analyst and click Export Lap Card (PNG) in the EXPORT panel. You get a 1200×630 image with the lap time, top speed, fuel used, the speed trace and a speed-coloured track map, ready to post anywhere. Race Analyst has the same thing for a whole race: Export Race Card (PNG) shows your best lap, laps completed, top speed, every lap time and a map of your best lap.

Do the spoken alerts work on my system?

Windows and macOS use the built-in voice, nothing to install. On Linux install one speech tool, e.g. sudo apt install speech-dispatcher (gives spd-say) or sudo apt install espeak-ng. With no voice available TRACE plays the normal alert sound instead. Untick VOICE ALERTS in the Live Dashboard header to mute it. Nothing is sent anywhere — the voice is your own system’s.

How does the lap leaderboard work?

Load a lap in Lap Analyst, then hit Submit to Leaderboard in the LEADERBOARD sidebar panel. Submitting requires a free account — if you skipped that at first launch, it offers to create one right there (display name only, no email or password). It then asks for the PSN name to show on the row (remembered for next time, editable each submit) and sends your car, track, lap time, and a compact input trace to a shared per-car, per-track leaderboard. The Top-10 panel updates live. Submission is entirely opt-in — nothing goes anywhere unless you press that button. Full breakdown of exactly what's sent on the Privacy page.

Is my leaderboard submission public?

Yes — the leaderboard is public by design, so anyone using TRACE can see the Top-10 for a car/track and download a lap as a ghost. Use a PSN name you're fine having attached to that lap time. Physically-impossible times are rejected automatically, and suspiciously fast first times for a car and track get held for manual review before they publish.

What's the Consensus tab in Lap Analyst?

Press Load Community Line in the LEADERBOARD panel to pull a community-average speed/throttle/brake line, computed from the current top 10 leaderboard laps for your loaded car and track, and overlay it against your own lap on the Consensus chart tab. Needs at least one other public submission for that car+track to show anything.

Is there a native macOS app?

Yes — TRACE.app is built automatically on a GitHub-hosted Apple Silicon runner every release, no physical Mac needed on this end. See the macOS tab above. On an older Intel Mac, use the Python source download instead.

Where does the telemetry protocol come from?

The GT7 UDP telemetry stream was reverse-engineered by the community — specifically Bornhall, whose gt7telemetry repo figured out the Salsa20 decryption key and full packet structure. This project's core data layer is built on that work.

Where do the car and track names come from?

GT7's telemetry only reports a numeric car ID, and no track ID at all. Both the car name lookup and the TRACK dropdown's course list are sourced entirely from ddm999's gt7info community database — see the Features page for exactly which parts of the app that powers.