A calm desktop time tracker for macOS.
Tokify is a small, focused time tracker that lives in your menu bar. Start an activity, get on with your work, glance at the bar to see how long you've been at it. Close the window and Tokify keeps tracking from the menu bar; click it to bring the window back, or quit when you're done.
Activities are stored as a plain-text log in your home directory — the same human-readable file format used by the tock command-line tool, so you can read, grep, edit, or back up your data with anything that handles text.
curl -fsSL https://raw.githubusercontent.com/finchett/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/finchett/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, ○ when idle. The window has a
single input for what you're working on, a list of today's activities (and any
earlier days you scroll back to), and an account/settings page reachable from
the title bar.
Tokify can keep your Microsoft Teams status message in sync with whatever you're currently tracking — turn it on in Settings → Integrations.
How it works:
- You sign in once with the same Microsoft account you use for Teams. A real Microsoft sign-in window opens (not a web view inside Tokify) and the access token is written to your macOS Keychain, never to a file.
- You pick which projects the integration applies to. Activities under other projects are left private — your Teams status doesn't change.
- When you start an activity under a tracked project, its description becomes your Teams status message. When you stop, the message is cleared.
A few things to know:
- The integration uses the standard Microsoft sign-in flow that the Teams web client itself uses — no admin approval, no Azure AD app registration required. Tenants with strict Conditional Access policies may still block it.
- On the sign-in prompt, you must choose Yes for "Stay signed in?" — sign-in won't complete otherwise.
- Tokify only ever writes your status message. It does not read your Teams messages, send messages, or access any other Teams data.
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.
Tokify reads and writes the same files as the tock CLI:
- Activity log:
~/.tock.txt(plain-text, one entry per line) - Configuration:
~/.config/tock/tock.yaml(optional — defaults are fine)
This means you can use Tokify and tock side by side, sync the log file with any
tool that handles text, or move to a different backend (TimeWarrior, TodoTXT,
SQLite) by editing the config. See tock.yaml.example for
the full list of options.
Tokify is a desktop frontend built as a respectful fork of
tock by Vladimir Kriuchkov.
The fork adds cmd/tock-desktop/ (a Wails app) and reuses tock's domain
services so the CLI and GUI stay behaviorally identical. The Go module path is
kept as github.com/kriuchkov/tock so upstream merges apply cleanly.
The upstream tock README is preserved verbatim at
docs/tock.md. See TOKIFY.md for how the fork
relates to upstream.
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 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.

