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
- Records with GPS as a foreground service. It never asks for background location.
- Calls out the stats through the phone's own text-to-speech engine. Pace, distance, time, splits, heart rate, zone, on whichever items and order you pick, every so many kilometres/miles or minutes.
- Heart rate from Bluetooth LE and ANT+ chest straps, or a Garmin watch broadcasting. Zones while you run, per-split averages after, and an automatic reconnect when the strap drops out.
- Splits, personal bests, fastest segments. Repeat a route and the phone recognises it, with no segment database anywhere. Today's run gets compared with the same run last month.
- Treadmill mode for runs with no signal. Zone coaching still works, and you type the distance in yourself at save time.
- Offline maps. MapLibre draws vector tiles from the regions you download.
- Weather at the start of an outdoor run, spoken once and saved with the run.
- Edit a recorded run. Trim the walk at the start, or cut out a GPS glitch. Intuitive GPS editing tool included.
- GPX export, and a full backup of runs and settings into one file you keep wherever you want.
- Strava upload, one run at a time, only when you choose to. Nothing uploads on its own. But when yo do, it's fast and easy
- Metric or imperial. Light or dark. English only (for now).
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:
| Recipient | When | What |
|---|---|---|
| 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.
- Fired by events. A completed split, a heart-rate zone change, a pace that drifts, a climb coming. The app decides something is worth saying and asks the model to say it. A cadence setting stops it going quiet for too long.
- The model sees the current numbers, summaries of recent runs and bests, the profile you entered, your goal today, and the persona you picked (supportive, data-driven or tough love).
- The model is currently
openai/gpt-5.6-luna, withdeepseek/deepseek-v4-flashas a backup. The models are chosen based on extensive testing of the output. - After the run you get a short spoken debrief. Went offline for the run? It is fetched later and shows up on the run's detail page instead.
- It costs money. It's a paid model call, so Pro is a Google Play subscription, monthly or annual, through Play.
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.
| Permission | Used for |
|---|---|
| ACCESS_FINE_LOCATION | Recording the route while a run is tracked. If you granted only approximate location, the app asks specifically for precise and says why. |
| ACCESS_COARSE_LOCATION | Android 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_LOCK | Keeps GPS sampling going with the screen off. Held only while a run is tracked. |
| POST_NOTIFICATIONS | The 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. |
| VIBRATE | Declared for haptic feedback. |
Get it
Android 8.0 or newer, from Google Play. No card and no account for the free part.