Package suggestion/creation wanted: logging my work effort



In my wildest dreams, the package I’m looking for pops up a one-line text editor once every half hour (configurable), prompting me to write a sentence about my current effort and focus. (e.g. “What are you working on?”)


Once I hit enter, the window is gone, and my timestamped entry lands in a nicely formatted file- so when I need to do my timecard, or write up accomplishments for my annual review, I have a single resource that documents my work.

Hitting escape should dismiss the window, and the timestamped entry should indicate dismissal, as well as the file currently edited (or tab name, I suppose, for those times the current tab isn’t a file).

Thoughts? Suggestions?


This makes me think of the tomato timer technique. There are a couple packages already available, this one and this one. I don’t know if they provide any service you could use, but it could be worth giving them a look.

What you want to implement seem to be quite simple.

  • Package configuration holds a pointer to the file you want to save logs into. Probably you want some watcher on that file, so you avoid IO errors in case something happens to it.
  • Package configuration holds the timer counter too.
  • When counter reaches zero, you display a modal view with a mini text-editor inside. Pressing enter will save your text in the log file with a corresponding timestamp.
  • If you’re planning to do some data analysis on the log itself, you should pick a well-formed format. JSON could be ideal if you want to manipulate those data easily.

It might be irrelevant, but I implemented a clock package with a nice refreshing mechanism. I link you the repo, just in case you want to give a look under the hood for the timer!

Hope this helps, enjoy!


Another tangentially related thing: Wakatime is a service that tracks your coding time across multiple languages and platforms. It has plugins for many editors, including Atom, so if you’re looking for data about your work habits, it would be a good thing to consider.