New
Apps 821Makers 820This week 821
Promote your app−30%
0views in
the last 30 days

Logo

Taktra

Local time tracking without the overhead.

The timer view of Taktra with a running timer

Table of Contents

Introduction

Taktra is a local-first time tracker for the desktop. Install it, start a timer, and you are done: there is no server to run, no account to create and no cloud that holds your data. Everything happens on your machine, and your data is a plain file you own.

  • Your data, your file. Each profile is a single *.taktra file wherever you keep it. Backing it up or moving it is as simple as copying a document.
  • Works offline, always. No server, no account, no telemetry. The only network access is the optional update check, which can be turned off.
  • A timer one click away. From the start page, the tray icon or a global shortcut.
  • Lean by design. It starts instantly, lives quietly in the tray and does one thing well.

Features

  • Projects, activities and tags; recurring work is simply the same activity booked again
  • Clients to see who the work is for
  • Time entries with start and end, as a plain duration or by a start/stop timer, with Markdown notes
  • Quick start from the tray or a global shortcut, and an always-on-top mini timer
  • Reports by project, client and tag over any period
  • Custom fields on projects, clients and activities, e.g. an order number or a cost center
  • Export to CSV, JSON or Excel in a stable format for billing and other tools, with the columns chosen per export and saved as templates on demand, and with sums per day, also with the days as columns like a time sheet
  • Several profiles, each in its own file, like KeePass databases
  • Light and dark theme, English and German, command palette and keyboard shortcuts
  • An in-app help that explains the concepts in short chapters

Screenshots

Entries of one day as a timeline Reports with the tracked time per day Export as a monthly time sheet with a preview of the file
Projects of the sample profile Quick start window Entries in the dark theme

Screenshots show the generated sample profile.

Download

Taktra is available for Windows so far. The latest release offers two packages:

  • Installer (taktra-<version>-setup.exe): installs per user without admin rights and keeps itself up to date.
  • Portable zip (taktra-<version>-portable.zip): runs without installation. It does not update itself but points to new releases.

The welcome screen offers a sample profile to look around before booking your own time.

Motivation

I built Taktra for my own work. I needed to keep track of how my time is split across projects and recurring tasks, and the tools I looked at were either hosted services that hold my data or self-hosted platforms that require running and maintaining a server, a database and user accounts — far too much overhead for one person who just wants to book a few hours a day.

What I wanted was something lean: an app that starts instantly, works offline, and keeps everything in a single local file that I can back up or move myself. Taktra is exactly that and deliberately not more — no server to run, no account, no BI tool, just booking time and seeing where it went.

Development

The development environment needs nothing besides Node.js. better-sqlite3 ships prebuilt binaries for Windows, macOS and Linux, so no compiler toolchain is required.

Requirements:

  • Node.js 24+ and NPM

Installs the dependencies, including Electron itself.

npm install

Starts the app in development mode with hot reload for the renderer.

npm run dev

Profiles and settings are stored in the user data directory — %APPDATA%\taktra on Windows, ~/Library/Application Support/taktra on macOS, ~/.config/taktra on Linux. The sample profile on the welcome screen is the quickest way to get realistic data for development.

Database Migrations

The schema lives in src/main/db/schema/. After changing it, generate a migration and commit it together with the schema change. Generated migrations are never edited by hand.

npm run db:generate -- --name <what_changed>

Checks

Type checking, linting and formatting must pass before a change is done. CI runs them on every push and pull request.

npm run typecheck
npm run lint
npm run format

Build

Packaging is configured for Windows so far. The build runs the type check, bundles the app with electron-vite and creates two packages in dist/: an installer (taktra-<version>-setup.exe) that installs per user without admin rights and lets you choose the folder, and a portable zip (taktra-<version>-portable.zip) that runs without installation.

npm run build:windows

npm run build:unpack builds an unpacked app directory instead, which is handy for a quick test of the production build.

Release

Releases are built by GitHub Actions. Pushing a tag v<version> that matches the version in package.json builds both packages on Windows and creates a draft GitHub release. Its notes are taken from the matching section in CHANGELOG.md, so that section has to exist before tagging. The draft is only visible once it is published by hand.

  1. In CHANGELOG.md, rename ## [Unreleased] to ## [<version>] - <date> and add a new empty ## [Unreleased] above it.

  2. Commit, tag and push.

    git tag v<version>
    git push origin main v<version>
    
  3. Check the draft release on GitHub and publish it.

Running the release workflow manually rehearses the same steps from the [Unreleased] section without creating a release; the packages are kept as workflow artifacts.

License

Copyright (c) 2026 Constantin Müller

GNU AFFERO GENERAL PUBLIC LICENSE or LICENSE for more details.

Forbidden

Hold Liable: Software is provided without warranty and the software author/license owner cannot be held liable for damages.

Description taken from the repository README.

Ratings

–
0 ratings
5 0
4 0
3 0
2 0
1 0

Rate this app

Sign in to rate

Comments 0

Sign in to comment

No comments yet.

Related apps

#time-tracking · #local · #desktop