# Time Cop tracks hours on the device and nowhere else

> Time Cop is a Flutter time tracking app that is offline-only, keeps everything in a local database and exports to CSV, with builds for Android, iOS and Linux. It suits a person who wants to record hours without an account or a subscription, and it is a small app whose last published release dates from 2022.

**hamaluik/timecop** — A time tracking app that respects your privacy and the gets the job done without being fancy.

- Repository: https://github.com/hamaluik/timecop
- Website: https://timecop.app/
- Stars: 886 · Forks: 169
- Language: Dart
- License: Apache-2.0
- Published: 2026-10-20 · Updated: 2026-10-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/hamaluik-timecop

## A tracker built by someone tired of trackers

Time Cop is described as a time tracking app that respects your privacy and gets the job done without getting too fancy, and the motivation section explains that framing in the first person.

The author would rather not do time tracking at all, but since it is a necessity for the work, the choice is between an app and manual notes, which the author is bad at. The apps already on the stores were tried and each had at least one pain point that eventually drove them off: some cost more money than they should, some have poorly designed interfaces, some are far too complicated, some do not export data easily, most require an internet connection, and there are privacy concerns with a large number of them.

That list is effectively the product specification. Every feature in the app answers one of those complaints. Offline-only answers the connectivity complaint, the privacy commitment answers the tracking one, the export features answer the data-portability one, and the deliberate smallness answers the complexity one.

The README is also candid about the project's status. It is a tool the author uses every day for work, and it is also a sample project to work off of and share with others, which came out of the question of why not use a needed tool as an opportunity to practise mobile development and learn some new things. The application is created pretty much entirely in Dart using Flutter, and the author made heavy use of the Bloc pattern.

## What offline-only actually rules out

Two of the feature bullets are about what the app does not do, and they are the ones that determine who should use it.

Fully private, with no tracking, spying or advertising, and offline-only and mobile-first. The privacy claim is a design consequence rather than a policy: if the app never opens a network connection, there is nothing to send anywhere, and the export path runs through a file the user chooses. The user interface is described as privacy respecting in the project title as well, and the store listings are linked for Google Play, F-Droid, the iOS App Store and Flathub, so the Linux build is distributed as a Flatpak alongside the mobile packages.

The cost of that choice is that there is no sync. A user with a phone and a laptop has two separate sets of data, and the CSV export and the database export are the bridge between them. For a single-device user, which is the case the app is designed around, that is a feature rather than a limitation.

The export features are the two escape hatches. Data can be exported as a .csv file, filtered by timespans and projects, and the app's database can be exported for full access to all of its data. A .csv filtered by timespan and project is the shape a contractor or a freelancer needs for a client invoice, and the raw database export is for the person who wants to query the data themselves.

There is no account system, no team, no timesheet approval, and no dashboard. Time Cop records time and gets it out again.

## Parallel timers, projects, and a start button

The interaction model is worth understanding because it is where the app is unusual rather than generic.

Tasks are tracked with multiple parallel timers that can be started with the tap of a button, so several can run at once rather than one replacing another. Timers can be associated with projects to group the work, and the project grouping is explicitly optional, to group your work or don't.

Starting, stopping, editing and deleting timers whenever with no fuss is listed as a separate capability, and the screenshots directory shows the dashboard, the editor, the projects view, the export view and the about view, in both light and dark, for iOS. The editor is a first-class screen rather than a hidden long-press menu, which is the visible consequence of a design that puts editing and deleting on the same footing as starting and stopping.

Automatic light mode and dark mode based on the device settings removes another setting from the app, which fits the small-and-simple goal. Someone who has tried several apps and found each one irritating at some point is not going to be won over by a theme picker.

For an adopter, the honest test is whether parallel timers match how the work actually happens. A consultant billing several clients in a day wants them. Someone who does one thing at a time will find the feature inert and will rely on the single-timer case.

## Localisation done by machine, with humans fixing it

The language list is long and the method behind it is unusual enough to be worth stating accurately.

The app is localised in English, Arabic, German, Spanish, French, Hindi, Japanese, Korean, Portuguese, Russian, Chinese (Simplified) and Chinese (Traditional), with Italian, Czech, Norwegian and Indonesian added through contributors. Translations are handled using Project Fluent, and the l10n directory and terms.flt file in the repository are the mechanism for that.

The part that raises an eyebrow is the second paragraph of the localizations section. Currently all translations except English, Italian, Czech, Norwegian and Indonesian were auto-translated by Google Translate using the author's own Translate Tool, and the project invites corrections through Weblate for any string that looks wrong.

So the pipeline is machine translation first, human review second, with the four languages that contributors maintained by hand as the exception. The README does not oversell this, and the Weblate link is there for people who want to improve a string. For a time tracker, the user interface is a small fixed set of phrases rather than prose, which is the case where machine translation plus review tends to work well.

The repository has a fastlane directory, which is the usual Flutter setup for store metadata and screenshots, along with screenshots.android.yaml and screenshots.ios.yaml, so the localised store listings are generated from the same source as the app.

## Getting the app: three stores, or build the branch yourself

The maintenance picture needs two numbers read together.

The repository is not archived, and the last push was on 2026-08-17, so there has been work on the branch in the last couple of months. The published releases, though, are v1.8.1 from 2022-11-22, an Android 13 fix, v1.8.0 from 2022-11-11, a Hacktoberfest release, and v1.7.2 from 2022-05-09, an Android 12 fix.

So the app people install from a store is roughly four years behind the branch, and the release naming tells you what those releases were about, which is platform compatibility fixes for new Android versions and a Hacktoberfest round. There is a CHANGELOG.md in the repository, and it is the place to see what has landed since.

The default branch is master, the primary language is Dart, and the licence is Apache-2.0 with a LICENSE file at the root, which the README links as open source, licensed under Apache-2.0, fork away. The topic list is short, with hacktoberfest as the only tag, which is consistent with a personal project that has been used as a Hacktoberfest contribution target.

The practical consequence is that the choice of where to get the app depends on what you need. A user who wants an app on their phone today takes the store build, and the Android 13 fix in the newest release is the most recent platform compatibility work. A developer who wants to run the current code builds from source, and the README points at the Flutter documentation for getting started, plus a Lab for writing a first Flutter app and a Cookbook of samples for anyone new to the framework.

## Conclusion

Time Cop suits a person who wants to record hours with no account, no subscription and no network connection, and who is happy with a deliberately small set of features. It is the wrong tool for a team that needs timesheets, invoicing, approvals or reporting, and it is the wrong tool if you need a maintained app on the app store today, since the newest published releases are v1.8.1 from 2022-11-22 even though the repository was pushed to on 2026-08-17. Before you adopt it, read the user stories document in the design directory, which the README treats as the development guide, and check the CHANGELOG.md for what has changed on the branch since the last release, because for a fork or a self-hosted deployment the branch is what you would run.

## FAQ

### Does Time Cop need an internet connection or an account?

No. The app is offline-only and mobile-first, and the README states that it is fully private with no tracking, spying or advertising. Data lives on the device and leaves only when you export it.

### Which platforms does Time Cop run on?

Android through Google Play and F-Droid, iOS through the App Store, and Linux through Flathub. The repository contains the android, ios, linux, macos and flatpak directories alongside the Dart source in lib.

### How do I get my time data out of Time Cop?

Data can be exported as a .csv file filtered by timespans and projects, and the app's database can be exported as well for full access to all of its data.

### Can Time Cop run several timers at once?

Yes. Timers for tasks can run in parallel and are started with the tap of a button, and each timer can optionally be associated with a project so the work can be grouped.

## Sources

- [hamaluik/timecop on GitHub](https://github.com/hamaluik/timecop)
- [License: Apache-2.0](https://github.com/hamaluik/timecop/blob/master/LICENSE)
- [Project website](https://timecop.app/)
- [README](https://github.com/hamaluik/timecop/blob/master/README.md)
- [Releases](https://github.com/hamaluik/timecop/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/hamaluik-timecop
