AudioRun - a new GPS running tracker

One-page summary of the (hopefully) most useful information about the app.

Updated 2026-09-10 · describes version 1.0.0

What
A new GPS running tracker for Android, the same sort of app as Strava or RunKeeper, just without the ads and the need to set an account. The audio and audio handling is what set this app apart from the rest. Information such pace, splits, elevation and heart rate is spoken into your earbuds, and it all plays nicely with other audio apps such as Spotify or audiobook apps.
Requires
Android 8.0 or newer (API 26) and GPS. Text-to-speech comes with the phone. The app targets Android 16 (API 36).
What's free
All of it except the optional AI coach. Recording, announcements, heart rate, splits and repeated-route matching, treadmill mode, offline maps, weather, editing, GPX export and backup, Strava upload. No ads, no account, no time limit.
What is Pro
Only AI coaching. That means customizable live coaching mid-run and the debrief afterwards. The AI coach is genuinely helpful, and can be used both for unstructured training and for races with specific goals.
Account
None. You can install it and run without ever telling me or anyone else who you are. You will not get any emails from me.
Contact
mail@mjones-foui.no

Who built this?

AudioRun has been in development since February 2025 (it used to be called JogGPS, and was used exclusively by me and my friends). I decided to make it available to a broader audience, and after a lot of work and 22 beta versions I was able to release the public version in september 2026.

Why develop AudioRun?

The idea behind AudioRun was born out of frustration with the other running apps out there. I loved the tracking and audio announcements of apps like Strava, but strongly disliked the constant nagging to subscribe to the premium versions for what I consider basic features (like run stats that are already collected, but locked behind paywall). I also wanted to customize the audio announcements (choosing what you hear, and how often), but this is suspiciously missing from other running apps I've tried.

So, I wanted to create an app that was completely ad-free and had all the features I wanted, without having to dismiss advertisements at every turn. I love data (in general) and find it artificial to lock access to basic data behind a paywall.

It was also important to me that the audio announcements were handled by the system's TTS engine, which is separate from other audio apps. This means you can use AudioRun while listening to music or other audio. The audio announcements will play on top of the other audio that is already playing. Other running apps will often trip up when you combine them with spotify, audiobooks, or even GPS watches that use audio announcements (such as the Garmin Forerunner watches).

What it does

Where your data goes

The app records everything into a on-device database. Four things can leave the phone, and each one is either off by default or triggered by you:

RecipientWhenWhat
tiles.openfreemap.org Whenever the map is on screen and the area is not downloaded Ordinary tile requests, so your IP address and the area you are looking at. Nothing identifying attached.
openweathermap.org Once at the start of each outdoor run, if the weather setting is on Your approximate area
strava.com Only when you tap Upload on a run That run's full route, timestamps, heart rate, name and description. Login happens on Strava's own page, and the app never sees the password.
openrouter.ai, via my relay Only with AI coaching switched on and consented to Derived numbers (pace, distance, elevation, heart rate and zone), the profile fields you entered, short summaries of recent runs, your goal for the run. GPS coordinates are never sent.

The server relay is a small PHP script on my web host. The relay provides access, and forwards the request to the AI model. OpenRouter sees the relay's address, not yours. The privacy policy goes into more detail.

Your run database and settings ride along in Android's normal backup to your Google account, minus the Strava auth.

How the coaching works

The coach is a language model. It gets a small, structured view of the run and answers with one sentence.

Two posts go deeper. Coaching on events, not just kilometers and Tuning an AI running coach.

Permissions

Every permission in the manifest, with the reason for each one. Nothing is asked for background location, contacts, storage, camera or microphone.

PermissionUsed for
ACCESS_FINE_LOCATIONRecording the route while a run is tracked. If you granted only approximate location, the app asks specifically for precise and says why.
ACCESS_COARSE_LOCATIONAndroid requires it to be declared alongside fine location. Not used on its own.
FOREGROUND_SERVICE
FOREGROUND_SERVICE_LOCATION
The run is a foreground service with a persistent notification. Android 14 and later require the typed variant.
WAKE_LOCKKeeps GPS sampling going with the screen off. Held only while a run is tracked.
POST_NOTIFICATIONSThe run notification with its pause and stop buttons.
BLUETOOTH_SCAN
BLUETOOTH_CONNECT
Finding and talking to a heart-rate strap. Scanning is declared neverForLocation, so Android does not treat it as a position source.
BLUETOOTH
BLUETOOTH_ADMIN
The same two things on Android 11 and older, which had no separate scan and connect permissions. Not requested on newer versions.
INTERNET
ACCESS_NETWORK_STATE
Map tiles, weather, Strava and coaching, and knowing when you are offline so a debrief can be retried later.
VIBRATEDeclared for haptic feedback.

Get it

Android 8.0 or newer, from Google Play. No card and no account for the free part.