Concepts

Privacy

TripLibre has no account, no server, no analytics SDK and no sync. Your travel history stays on your iPhone unless you export it yourself. This page lists every exception, and every statement on it can be checked in the code.

What is stored

One SQLite file inside the app's sandbox (Library/Application Support/HHT/travel.sqlite) holds raw GPS fixes, CoreMotion activity, inferred and corrected visits and trips, your places, flights, life phases, stamps you tapped, and the audit log. A stamp keeps only a coarse location (rounded to about 110 m) and doesn't need a precise fix to be saved.

Backups and exports are visible in the Files app under On My iPhone › TripLibre.

When TripLibre uses the network

Recording, inference, corrections, stats, widgets, backups and exports all work offline. The app goes online only in these cases:

What is sentWhenTo
Nothing, by default——
One place coordinate at a timeOnly if Settings › Look up addresses is on (off by default)Apple's geocoder (CLGeocoder)
Map tile requests for the visible areaWhenever a map is on screenApple Maps
Nothing about you (it downloads a public CSV)Only when you tap Download airport list and confirmThe OurAirports data mirror on GitHub Pages (davidmegginson.github.io)
Whatever you choose to shareExport › ShareThe destination you pick

Map tiles reveal the area you are looking at to Apple, like any map app. TripLibre has no server of its own, so the developer never receives anything.

!

Your iOS device backup (iCloud or Finder) includes the app's container, like any other app's data, and that includes the database and the daily backups. Turn off iCloud Backup for TripLibre if you don't want that.

What an export contains

An export is the main way data leaves your phone, so it is worth knowing exactly what is in one.

To share less today, open the export folder in Files and delete travel.sqlite and any other files you don't want to send before you share it. The full file list is in the Data dictionary.

Planned Choosing specific dates, trips and a level of detail, with the database snapshot following the same choice (see the roadmap). Not available yet.

You're in control

Erase removes the rows, but SQLite can leave fragments of deleted data in unused parts of the file until they are overwritten. If that matters for your threat model, delete the app as well.

Re-identification risk

Keeping data on the phone removes the server, not the sensitivity. A location history reveals where you sleep, work, worship, see a doctor and spend the night, and a handful of such places is often enough to identify a person even with the name removed.

Sharing safely

If you publish anything, share aggregates only: cities, airports, flight routes, mode shares, trip counts. Never share raw_location_points, visits, or trip routes near home. If you give data to a research study, make sure you know who will hold it, for how long, and how to withdraw. See Research uses & limitations.

App Store privacy details

In progress The App Store version (see the roadmap) will be the same app with the same behaviour. Its App Store privacy details will be written from this page, and this page will be updated if anything about data handling changes.

Verifying it yourself

Because TripLibre is open source, you don't have to take this page's word for it. All network access is in three places:

Export contents are defined in Packages/HHTCore/Sources/HHTCore/Export/Exporter.swift, and Erase in TravelStore.eraseAll(). To report a privacy or security problem, see SECURITY.md.