12 KiB
⏳ ZeroClock
Your time. Your data. Your rules.
A local-first time tracker for freelancers, artists, and anyone who believes the value of their labor belongs to them - not a cloud platform.
No subscriptions. No surveillance. No corporate middleman between you and your work.
What is ZeroClock?
ZeroClock is a desktop time tracker that runs entirely on your machine. Every second you track, every invoice you generate, every report you pull - it all lives in a single SQLite database on your own hard drive. No accounts. No sign-ups. No data harvested. No monthly rent for the privilege of knowing how you spend your own time.
It was built for the people who do the work: freelancers juggling five clients, illustrators billing by the hour, developers who want transparency in how their days are spent, and small collectives who refuse to feed their labor data into someone else's growth metrics.
🎯 Core features
⏲ Timer
A big, readable timer front and center. Start it, pause it, stop it. Switch projects mid-session without losing a second. The two-column layout keeps the timer always visible while you scroll through recent sessions.
- Start / Stop / Pause / Resume with a single click or a global keyboard shortcut
- Quick-switch projects mid-session without stopping the timer
- Idle detection - ZeroClock notices when you step away and asks what to do with that time
- App tracking - optionally detect which applications are running and associate time with projects
- Favorites - save project presets as reorderable chips for one-click tracking
- Mini timer - a tiny, always-on-top floating window so the timer is never out of sight
📋 Entries
Every tracked session becomes an entry you fully control.
- Filter and search by project, client, date range, billable status, or tags
- Bulk operations - select multiple entries to change projects, toggle billable, or delete
- Split entries - break a long session into multiple entries when you forgot to switch
- Duplicate entries - repeat yesterday's work with one click
- Bulk add - create several entries at once for retroactive logging
- Entry templates - save and reuse common entry patterns
- Pagination with smooth loading for thousands of entries
👥 Clients and projects
Organize your work however makes sense for you - not how a product manager decided you should.
- Clients with name, email, company, and address
- Projects with hourly rates, budgets, color coding, and task breakdowns
- Cascade awareness - before deleting a client or project, see exactly what depends on it
- Archive projects without losing data
- Group projects by client or view them flat
📊 Reports
Understand where your time goes. Spot the clients who drain you. Find the projects that sustain you.
- Hours breakdown - bar charts, tables, daily/weekly/monthly summaries
- Profitability analysis - compare hours tracked against budgets, see who pays fairly
- Expense reports - track costs alongside time for a complete picture
- Work patterns - heatmaps and weekday distributions revealing your natural rhythms
- Export to CSV or PDF for sharing with clients or keeping your own records
🧾 Invoicing
Generate invoices from your tracked time without leaving the app.
- Multiple templates - choose from several professional invoice designs
- Invoice pipeline - track invoices through Draft, Sent, Paid, and Overdue stages
- Automatic line items from tracked time entries
- Recurring invoices - set up repeating invoices on a schedule
- Payment tracking - record partial or full payments against invoices
- Overdue detection with badge notifications
- PDF export - download polished invoices ready to send
- Business identity - your name, address, and logo on every invoice
💰 Expenses
Time is not the only thing worth tracking.
- Log expenses against projects with amounts, dates, and categories
- Receipt attachments with a built-in lightbox viewer
- Link to invoices - mark expenses as invoiced so nothing slips through
- Filter by date range with quick presets (this week, last month, this quarter)
📅 Views
Calendar
See your tracked time laid out in a familiar day / week / month calendar grid. Import .ics files from external calendars to see everything in one place. Click any slot to create an entry.
Timesheet
A weekly grid for structured time entry, row by row. Lock completed weeks to prevent accidental edits. Copy last week's structure when your schedule repeats. Add rows for new project-task combinations and fill in hours per day.
Dashboard
A bird's-eye view of your work: today's hours, weekly progress toward goals, recent entries with one-click replay, and a getting-started checklist for new users.
🔧 Customization
ZeroClock adapts to you. Not the other way around.
| Setting | Options |
|---|---|
| Theme | Dark, Light, or follow your OS |
| Accent color | Amber, Blue, Green, Rose, Purple, Teal |
| UI font | 15+ Google Fonts with live preview |
| Timer font | 16 curated monospace fonts |
| UI scale | 80% to 150% zoom |
| Sound effects | Configurable events, volume, and synthesis mode |
| Reduce motion | System, Always, or Never |
| Dyslexia-friendly mode | OpenDyslexic font throughout the interface |
System tray
- Close to tray - the window disappears but ZeroClock keeps running silently
- Minimize to tray - minimize hides to the system tray instead of the taskbar
- Left-click the tray icon to bring the window back
Keyboard shortcuts
- Global hotkeys - toggle the timer or show the app from anywhere on your desktop
- In-app shortcuts - navigate, start/stop, and manage entries without touching the mouse
- Customizable - remap shortcuts to whatever feels natural
💾 Data ownership
This is the part that matters. Your data never leaves your machine.
- Single SQLite file - your entire history in one portable database
- Auto-backup - scheduled backups to a folder you choose, with configurable frequency and retention
- Manual export - full JSON export of every table, every entry, every setting
- CSV export - pull reports into a spreadsheet whenever you need to
- JSON import - bring data in from other tools
- No cloud sync - because "we got hacked" emails should not be part of your time-tracking experience
- No accounts - nothing to delete because nothing was ever collected
Your labor, your records, your hard drive.
♿ Accessibility
ZeroClock is built to be usable by everyone. Not as an afterthought, but as a foundation.
WCAG 2.2 AAA compliance
- 7:1 contrast ratios on all text throughout the interface
- Focus indicators visible on every interactive element
- Semantic HTML with proper landmarks, headings, and ARIA roles
- Screen reader support - live regions announce timer state changes, meaningful labels on every control
- Tooltips on every button - hover or focus any icon button for a description of what it does, with proper
aria-describedbylinking and Escape to dismiss - Keyboard navigation - every feature is reachable without a mouse
- Reduce motion - respect your OS preference or override it manually
- Dyslexia-friendly mode - switch the entire interface to OpenDyslexic with one toggle
- UI scaling - zoom the interface from 80% to 150% without breaking layouts
Accessibility is not a feature. It is a baseline.
📦 Downloads
Grab the latest release from the releases page.
| Platform | File | Notes |
|---|---|---|
| Windows x64 | zeroclock-v*.exe |
Portable executable, no installer needed |
| Linux x86_64 | ZeroClock-x86_64.AppImage |
Portable AppImage, no installation needed |
Linux AppImage
Download, make executable, and run:
chmod +x ZeroClock-x86_64.AppImage
./ZeroClock-x86_64.AppImage
- Built on Ubuntu 24.04 (glibc 2.39) - compatible with most distros from mid-2024 onwards
- Portable - data is stored next to the AppImage file
- Automatically installs a
.desktopfile and icon on first run - Wayland and X11 supported
Troubleshooting:
If you see a black or blank window, try:
WEBKIT_DISABLE_DMABUF_RENDERER=0 ./ZeroClock-x86_64.AppImage
If that does not help:
WEBKIT_DISABLE_COMPOSITING_MODE=1 ./ZeroClock-x86_64.AppImage
NixOS users should run via nixGL:
nixGL appimage-run ./ZeroClock-x86_64.AppImage
🚀 Building from source
Prerequisites
- Node.js 18+
- Rust (latest stable)
- Platform-specific Tauri dependencies - see the Tauri prerequisites guide
Build and run
# Clone the repository
git clone https://git.lashman.live/lashman/zeroclock.git
cd zeroclock
# Install frontend dependencies
npm install
# Run in development mode
npx tauri dev
# Build for production
npx tauri build
Building the Linux AppImage
To build a portable AppImage with broad compatibility, use the Docker build script:
./build-appimage.sh
This builds inside an Ubuntu 24.04 container and outputs to dist-appimage/. Requires Docker.
The database is created automatically on first launch in the same directory as the executable.
🏗️ Architecture
zeroclock/
src/ # Vue 3 frontend
components/ # Reusable UI components
composables/ # Shared composition functions
directives/ # Vue directives (tooltips, etc.)
stores/ # Pinia state management
utils/ # Helpers, formatters, audio
views/ # Page-level components
styles/ # Tailwind CSS and theme variables
src-tauri/ # Rust backend
src/
commands.rs # Tauri IPC command handlers
database.rs # SQLite schema and migrations
lib.rs # App setup, tray, plugins
seed.rs # Sample data generator
The frontend and backend communicate through Tauri's IPC bridge. The frontend never touches the filesystem directly - all data flows through typed Rust commands that validate, query, and persist to SQLite.
🤝 Contributing
ZeroClock is built in the open. If you find it useful, you are welcome to help make it better.
- Report bugs by opening an issue
- Suggest features - especially if they help workers track and own their time more effectively
- Submit patches - fork, branch, and open a pull request
- Improve accessibility - if something does not work with your assistive technology, that is a bug
Good-faith contributions from people who care about the work are always welcome.
📝 License
ZeroClock is released under CC0 1.0 Universal - dedicated to the public domain. No permissions needed. No conditions. No strings. Take it, use it, change it, sell it, give it away. The work belongs to everyone.
Built for the people who do the work.
No venture capital. No growth metrics. No exit strategy.
Just a tool that respects your time.