An end-to-end encrypted time tracker for macOS — for individuals and teams.
Tokify is an end-to-end encrypted time tracker for macOS. Use it privately on your own or with a team: shared activities sync to every team member, while the sync service cannot read what you worked on.
The desktop app is where you start and stop activities, browse your history, and understand time by project. The menu bar is a compact timer and status view that stays visible while you work.
The desktop app stores activities locally in SQLite. Existing ~/.tock.txt
history is imported automatically the first time Tokify opens an empty database;
the original file is left untouched as a backup.
Encrypted sync is opt-in. Activities are encrypted on your device before they leave it, so the sync service never sees what you or your team worked on. Everyone on a team shares the same activity history: when one person updates an activity, it is synced to the other team members.
For local-only tracking, simply keep using Tokify without enabling sync.
curl -fsSL https://raw.githubusercontent.com/relegate-to/tokify/main/install.sh | shThis downloads the latest release, unpacks Tokify.app into /Applications, and
clears the macOS quarantine flag so it opens cleanly the first time.
- Grab
Tokify-<version>-macos-universal.zipfrom the Releases page. - Unzip and drag
Tokify.appinto/Applications. - On first launch macOS may warn that the app is from an unidentified
developer (Tokify is not yet signed with an Apple Developer ID). Either:
- Right-click
Tokify.app→ Open → Open in the confirmation dialog, or - Run
xattr -dr com.apple.quarantine /Applications/Tokify.apponce.
- Right-click
You'll need Go (matching go.mod), Node 18+, and the Wails CLI:
go install github.com/wailsapp/wails/v2/cmd/wails@latest
git clone https://github.com/relegate-to/tokify
cd tokify
make desktop-build-universal
open cmd/tock-desktop/build/bin/Tokify.appmake desktop-doctor will verify the toolchain is ready.
The menu bar shows ● 0:42 while tracking and ○ when idle. Open the desktop
app to start an activity, review your timeline, explore reports, manage
projects, and configure encrypted team sharing and account settings.
Tokify also has a scriptable CLI backed by the same SQLite database as the
desktop app. Build it locally with make cli-build (which creates
bin/tokify) or install it on your PATH with make cli-install.
tokify start "Client work" "Draft proposal"
tokify current
tokify stop
tokify lastCompleted entries can be managed without opening the app. Times accept HH:MM,
YYYY-MM-DD HH:MM, or RFC 3339; list prints exact start timestamps for edits
and deletions. Mutations reject overlapping or future entries, and deletion
requires an explicit --yes.
tokify add --start "2026-09-24 13:00" --duration 45m "Admin" "Submit expenses"
tokify list --date 2026-09-24 --project "Admin"
tokify edit --note "Receipt batch 4" "2026-09-24T13:00:00+09:00"
tokify remove --yes "2026-09-24T13:00:00+09:00"watch is designed for status bars and other desktop widgets. A normal call
prints only the current elapsed time and exits, so it is cheap to poll:
$ tokify watch
00:42:17When idle it prints nothing and exits successfully. Use --idle, --json, or
--format when the consumer needs an explicit or richer status; use --follow
to stream an updated line every second instead of polling:
tokify watch --idle "--:--:--"
tokify watch --format '{{.Project}} · {{.Description}} · {{.Duration}}'
tokify watch --follow --interval 5sRun tokify help or tokify <command> --help for the complete command list.
TOKIFY_PROFILE selects the same development profile as the desktop app, and
TOKIFY_DATABASE can point the CLI at a different database explicitly.
From the menu in the top-right of the window, you can export your activity log as CSV, JSON, or plain TXT. You can scope the export to a date range and an optional project. The resulting file is saved wherever you like — handy for invoicing, reporting, or piping into a spreadsheet.
- Desktop activity database:
~/.tock.db(SQLite) - Legacy import source:
~/.tock.txt(read once when the database is empty and then retained as a backup)
When encrypted sync is enabled, shared activity data is kept up to date for your team without making that activity history readable to the sync service.
Tokify began as a desktop fork of
tock by Vladimir Kriuchkov.
It retains the original domain model and GPL-3.0-or-later license, but now ships
the Tokify macOS app and tokify CLI rather than the old tock product. See
TOKIFY.md for attribution details.
make desktop-dev # Wails dev server with hot reload
make desktop-build # host-architecture .app, fast incremental
make desktop-build-universal # arm64 + amd64 fat binary
make cli-build # build bin/tokify
make cli-install # install tokify on your Go binary path
make test # Go tests (runs in Docker)
make linter # golangci-lint (runs in Docker)The frontend (cmd/tock-desktop/frontend/) is React + TypeScript with
Tailwind v4 and shadcn/ui. Backend bindings are auto-generated by Wails into
frontend/wailsjs/.
More notes for working on the desktop app are in
cmd/tock-desktop/README.md.
GPL-3.0-or-later, inherited from upstream tock. See LICENSE.