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.1.tar.gz (6.8 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for letsdo-0.3.1.tar.gz
Algorithm Hash digest
SHA256 e1c85dbfbcf0afea3377347c6484c0818e8afd73057ed1788824e7fd7ba4618f
MD5 fcff0dfda30fc8195ac9d6fe94dd4192
BLAKE2b-256 d240635f9ec7f0ae63e62b71c24ed5b1d682b648cb94e7d88a534860590f403b

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

0.3.4

1 file

0.3.3

1 file

0.3.2

1 file

This release

0.3.1 This release

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