Skip to main content

PyPI version Build Status

Letsdo, the CLI time tracker

Letsdo helps you to be more productive and focused, tracking the time you spend on various tasks:

$ letsdo letsdo-readme
  Starting task 'letsdo-readme'

You can pass whatever string to Letsdo in order to describe your task

$ letsdo best readme in the istory of github
  Starting task 'best readme in the istory of github'

and change its description if you like

$ letsdo --change best readme in the history of github
  Renaming task 'best readme in the istory of github' to 'best readme in the History of github'

but if you just made a little typo, might be better to use –replace and –with flags:

$ letsdo --replace github --with GitHub

$ letsdo –change best readme in the history of github Renaming task ‘best readme in the History of github’ to ‘best readme in the History of GitHub’

When a task is running, executing Letsdo will prompt the time spent on it

$ letsdo
  Working on 'best readme in the History of GitHub' for 0:01:32

Once the task is completed, just ‘stop’ it:

$ letsdo --stop
  Stopped task 'best readme in the History of GitHub' after 0:01:45

Let’s say you do not want to stop, but just move to another task, use –to flag

$ letsdo previous task
  Starting task 'previous task'
$ letsdo --to  new task
  Stopped task 'previous task' after 0:00:08
  Starting task 'new task'

Now stop, and see some reports

$ letsdo --stop
  Stopped task 'new task' after 0:00:25

Total time for each task (tasks with the same name are considered as one)

$ letsdo --report
  [0] 2016-11-14| 0:00:00 - letsdo-readme
  [1] 2016-11-14| 0:01:00 - best readme in the History of GitHub
  [2] 2016-11-14| 0:01:00 - previous task
  [3] 2016-11-14| 0:00:00 - new task

See all the tasks’ start and stop time, day by day (time is in 24h format)

$ letsdo --report --full
===================================
2016-11-14| Total time: 0:02:00
-----------------------------------
2016-11-14| 0:00:00 (16:03 -> 16:03) - letsdo-readme
2016-11-14| 0:01:00 (16:04 -> 16:05) - best readme in the History of GitHub
2016-11-14| 0:01:00 (16:06 -> 16:07) - previous task
2016-11-14| 0:00:00 (16:07 -> 16:07) - new task

See total time per task and per day

$ letsdo --report --daily
===================================
2016-11-14| Total time: 0:02:00
-----------------------------------
2016-11-14| 0:00:00 - letsdo-readme
2016-11-14| 0:01:00 - best readme in the History of GitHub
2016-11-14| 0:01:00 - previous task
2016-11-14| 0:00:00 - new task

Now, back working again on a previous task, too bad the name is too long to type it! No problem, just use –keep flag to keep working on the last task

$ letsdo --keep
  Starting task 'new task'

But, I do not want to work on the last! Then use the –id flag (the task index is the one reported with –report flag)

$ letsdo --stop
  Stopped task 'new task' after 0:00:50
$ letsdo --keep --id 1
  Starting task 'best readme in the History of GitHub'

Clearly, all the flags support the short version (-k for –keep, -i for –id, etc.)

The Report comes from a plain text file under /.letsdo-data

The comes from Letsdo configuration file, stored in your $HOME directory:

$ cat ~/.letsdo
letsdopath: ~/Dropbox/

Having a configuration file is not necessary, if not present, Letsdo will use the $HOME folder to store its data. However, setting a datapath is useful in order to share the tasks with multiple systems (on Dropbox for example)

Finally, Letsdo does not really need a task name to start, so you can start tracking your work and choose a name for it later.

$ letsdo
No running task. Let's create a new unnamed one (y/N)?:

or with the –force flag

$ letsdo --force
  Starting task 'unkown'

and if you’ve forgotten to start/stop a task at the right moment, just use the –time flag followed by the HOUR:MINUTE string of the correct moment.

@Contexts, +tags and autocompletion

One can specify the task with @contexts (only one per tasks) and +tags (no limits) and Letsdo bash completion is smart enough to autocomplete also @contexts and @tags. Use –autocomplete flag for more information

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

letsdo-0.3.4.tar.gz (7.1 kB view details)

Uploaded Source

File details

Details for the file letsdo-0.3.4.tar.gz.

File metadata

  • Download URL: letsdo-0.3.4.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for letsdo-0.3.4.tar.gz
Algorithm Hash digest
SHA256 f07eb7fb8856032be835c9ee55339a6cf1adb4ea203f341b23c3daefd2660ff8
MD5 425739a318dbc091d59490ed65afdc95
BLAKE2b-256 ad4d90a632d94b9ceed85fd08e35b9540258df13f52ece8422834ed40f11aa94

See more details on using hashes here.

Release history Release notifications | RSS feed

2.1.0

2 files

2.0.2

2 files

2.0.1

2 files

2.0.0

2 files

0.7.4

2 files

0.7.1

2 files

0.7.0

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

This release

0.3.4 This release

1 file

0.3.3

1 file

0.3.2

1 file

0.3.1

1 file

0.3.0

1 file

0.2.2

1 file

0.1.0

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page