I once integrated IFTTT with google sheets to automatically add a line to a spreadsheet when I entered and exited work. And then made some more pages in the sheet in order to have it all neat and orderly for timekeeping. A huge advantage was that I could correct small mistakes whenever I wanted, so it didn't matter much if the integration itself was a bit spotty.
org-mode in Emacs. On a headline representing a task or event, `C-c C-x C-i` to clock-in, `C-c C-x C-o` to clock-out. The agenda view includes what you've clocked in to during each day, and from it, `R` can give you a clock report for the timeframe that the agenda view is showing.
I also use org to clock my hours. The clocktable makes it even better to aggregate/report your hours. You can look at a 1-month block separated by week (I report my hours weekly) with the granularity you want. A very versatile tool!
I find that it doesn't matter which app you use because at the end of the day you need the discipline to update your time tracking when starting and ending your work time.
Yes, see ManicTime [0], Timing [1] and ActivityWatch [2] for that.
They passively record what you do, on computer and phone, and at the end of the day (or when invoicing is due) allow you to link what you did to projects.
Use ManicTime if you're mostly on Windows, Timing appears to be good if you're mostly on OS X, and ActivityWatch takes the same approach in an open-source cross-platform project.
I have ManicTime set to record a screenshot every 15 seconds, and record window title and document paths on every app switch. Invoicing still takes time, but knowing what you did and when helps to take all the guesswork out of it, especially for chaotic days.
I don't know if shameless plugs are allowed here (sorry if not!), but I have an open source project for Mac that's aimed at exactly this problem. Every ~10 minutes (configurable), it pops up an unobtrusive prompt to ask you what you're working on right now. It then has some basic reporting and aggregating functionality. It's not specifically targeted for consulting / invoicing (I made it because I often ended my day wondering what the heck I'd done all day), and it's sometimes a tad rough around the edges, but it could help. https://whatdid.yuvalshavit.com / https://github.com/yshavit/whatdid
(I'm newish to HN, so please let me know if this message is inappropriate!)
For my specific work flow I was actually thinking of scraping all my git repos to see my activity. Because I'm always working in a git repo, or mostly.
I actually already did try using some sort of recursive git status/log viewer that I can't remember the name of now. Didn't keep it up but I think a program that scrapes my git repos, and perhaps aggregates with other activity logs, would be the best fit.
I went back and forth between a couple of them -- Kimai2 and InvoiceNinja, back when Ninja was still on v4. Ultimately, every time tracking system does things a little differently, and after switching back and forth again, I've settled back on InvoiceNinja v5 (https://invoiceninja.com/).
If all you need is time tracking, Kimai2 and several others will do the job just fine. But I've found in my line of work that it's useful to be able to produce formal quotes and invoices for tracking purposes. Ninja lets you do all of that, no extensions or modules required, and all of the components are integrated with each other (quotes can be converted to invoices, projects, or both, invoicing can be done by task or by project, expenses can be included in invoices, etc.) and it also features a very nice automated emailing system for client invoice/quote notifications and even a guest frontend for them to log into.
So all in all, I've found InvoiceNinja to be extremely useful and can't recommend it enough.
Is there a reason you need time tracking and invoice generation to be connected? In my case I need a monthly invoice that just needs the total hours worked for that month. It's always 8 hours times number of days worked.
I'm very happy with https://klog.jotaen.net/ it has extremely simple text format editable from anywhere and a command converting those to JSON (sadly not the other way around).
There's a feature limited free version. Lots of options to track times, jobs, breaks, options for how to deal with day roll over, etc. Unfortunatly Google forced them to break/disable the location tracking feature (despite that it was only doing using the information on-device) - which was super handy to 'clock in/clock out' when arriving at a site.. There's no server, but several backup options to some services or on-device storage.
Back when I did hourly reporting I used http://timingapp.com/. It tracks what applications and windows are open and then you connect those to tasks/projects/etc later, which was a must for me since I always forgot both to do time reporting and what I had been working on.
(I am not associated with Timing, just a happy user)
I tried a few time tracking apps, and none come close to Timing. It's easy to use, gets regular updates, it's easy to setup projects and define rules (such that you don't have to track by hand). Has a handy integration with calendar, you can directly book meetings.
I’ve mostly just been using spreadsheets and building formulas/macros to calculate revenue, etc. It works and doesn’t have tons of features most apps do.
ManicTime [0] passively records your computer and phone activity in minute detail.
This makes it great for consultants, i.e. people working for multiple clients every day. You can focus on making your clients happy, and at the end of the day (or week, or month), still accurately assign time spent on each project.
ManicTime:
- Takes a screenshot every X seconds,
- Records window titles, document paths, urls,
- Records phone call metadata, phone location, foreground phone app (Android only).
ManicTime has a very intuitive zoomable timeline interface to assign screenshots and other recorded activity to projects. Everything is stored offline. If you want, a free to use self-hosted server ManicTime server helps with backup and multi-device synchronisation.
ManicTime works best on Windows and with Android, although an OS X client exists.
Pricing: 67 USD for a one year license (so: no subscription that holds your data hostage). ManicTime is not free, but knowing what you did and when (down to the minute) gives it a quick ROI.
To let it sync with other computers I let it store the files in nextcoloud (they are only plain text files). There is just basic functionality, but you can also set different hour rates per project and let it show the total sum of hours for a project.
As a huge bonus, if you started using or currently use TaskWarrior (console based task management), it integrates seamlessly and will track time spent on a task for you.
It's an awesome, open source, extremely robust, and well thought out little ecosystem.
I have been very happy with Daily Time Tracking, dailytimetracking.com (Mac)
What is great about is that it just polls you every n minutes (based on your preferences), and then you just: Press the 'V' button (if you are working on the same as before – our Shift+Ctrl+S) OR Write in the new task that you are working on OR Select an earlier task from a dropdown menu. Time is then automatically added to the task chosen. Then you can just see the total of time spent on each task or export the data to CSV, JSON etc.
Not affiliated in any way, but has been working great for me.
Funny enough, I've been considering a mini content series on modelling one in Postgres and then using different low-code tools for cross-platform engagement. Would this be of any interest? I guess this is the right group to ask.
96 comments
[ 3.2 ms ] story [ 148 ms ] threadhttps://github.com/kevinpapst/kimai2
awesome-selfhosted lists 4 self-hosted systems: https://github.com/awesome-selfhosted/awesome-selfhosted#tim...
(ActivityWatch, Kimai, TimeTagger, Traggo)
https://gitime.readthedocs.io/en/latest/
The advantage being that you can always stick a random formula in for whatever you want to find out right now and you didnt need before.
It wont generate your invoices But Î find that a minor problem. How many customers do you invoice per month anyway?
It's my 1st of the month morning coffee ritual. Pretty good for morale.
https://orgmode.org/manual/The-clock-table.html
TIL! https://orgmode.org/manual/Clocking-commands.html
Track time on different tasks, invoice later on.
Edit: Mobile App online available with paid subscription.
That's my biggest issue. I work in a chaotic way.
They passively record what you do, on computer and phone, and at the end of the day (or when invoicing is due) allow you to link what you did to projects.
Use ManicTime if you're mostly on Windows, Timing appears to be good if you're mostly on OS X, and ActivityWatch takes the same approach in an open-source cross-platform project.
I have ManicTime set to record a screenshot every 15 seconds, and record window title and document paths on every app switch. Invoicing still takes time, but knowing what you did and when helps to take all the guesswork out of it, especially for chaotic days.
[0] https://www.manictime.com/ [1] https://timingapp.com/ [2] https://activitywatch.net/
(I'm newish to HN, so please let me know if this message is inappropriate!)
I actually already did try using some sort of recursive git status/log viewer that I can't remember the name of now. Didn't keep it up but I think a program that scrapes my git repos, and perhaps aggregates with other activity logs, would be the best fit.
If all you need is time tracking, Kimai2 and several others will do the job just fine. But I've found in my line of work that it's useful to be able to produce formal quotes and invoices for tracking purposes. Ninja lets you do all of that, no extensions or modules required, and all of the components are integrated with each other (quotes can be converted to invoices, projects, or both, invoicing can be done by task or by project, expenses can be included in invoices, etc.) and it also features a very nice automated emailing system for client invoice/quote notifications and even a guest frontend for them to log into.
So all in all, I've found InvoiceNinja to be extremely useful and can't recommend it enough.
https://old.reddit.com/r/selfhosted/search?q=time+tracking&r...
I've written a Python script to ease my everyday (and monthly) interactions with it like excel report for my employer https://github.com/nazarewk-iac/nix-configs/blob/main/packag...
https://play.google.com/store/apps/details?id=com.dynamicg.t...
There's a feature limited free version. Lots of options to track times, jobs, breaks, options for how to deal with day roll over, etc. Unfortunatly Google forced them to break/disable the location tracking feature (despite that it was only doing using the information on-device) - which was super handy to 'clock in/clock out' when arriving at a site.. There's no server, but several backup options to some services or on-device storage.
I tried a few time tracking apps, and none come close to Timing. It's easy to use, gets regular updates, it's easy to setup projects and define rules (such that you don't have to track by hand). Has a handy integration with calendar, you can directly book meetings.
This makes it great for consultants, i.e. people working for multiple clients every day. You can focus on making your clients happy, and at the end of the day (or week, or month), still accurately assign time spent on each project.
ManicTime:
ManicTime has a very intuitive zoomable timeline interface to assign screenshots and other recorded activity to projects. Everything is stored offline. If you want, a free to use self-hosted server ManicTime server helps with backup and multi-device synchronisation.ManicTime works best on Windows and with Android, although an OS X client exists.
Pricing: 67 USD for a one year license (so: no subscription that holds your data hostage). ManicTime is not free, but knowing what you did and when (down to the minute) gives it a quick ROI.
[0] https://www.manictime.com/
https://github.com/pstaender/punched
To let it sync with other computers I let it store the files in nextcoloud (they are only plain text files). There is just basic functionality, but you can also set different hour rates per project and let it show the total sum of hours for a project.
Not associated, but a big fan. Console based, so easily scriptable. Use it not for consulting but time tracking between projects.
As a huge bonus, if you started using or currently use TaskWarrior (console based task management), it integrates seamlessly and will track time spent on a task for you.
It's an awesome, open source, extremely robust, and well thought out little ecosystem.
I assume you mean https://timewarrior.net/
What is great about is that it just polls you every n minutes (based on your preferences), and then you just: Press the 'V' button (if you are working on the same as before – our Shift+Ctrl+S) OR Write in the new task that you are working on OR Select an earlier task from a dropdown menu. Time is then automatically added to the task chosen. Then you can just see the total of time spent on each task or export the data to CSV, JSON etc.
Not affiliated in any way, but has been working great for me.
CLI TUI, just a list of tasks, track time across them or manually add the time. Backing is a yaml file, so you can adjust if needed.
Runs anywhere you can use Go to compile to.