From 821a7e5c67ae5051b2bde142309489890989b263 Mon Sep 17 00:00:00 2001 From: jbranchaud Date: Fri, 14 Nov 2025 00:32:13 -0600 Subject: [PATCH] Add Do Project Time Tracking From The CLI as a Workflow TIL --- README.md | 3 +- .../do-project-time-tracking-from-the-cli.md | 35 +++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 workflow/do-project-time-tracking-from-the-cli.md diff --git a/README.md b/README.md index 69fc5a6..2a5a062 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ pairing with smart people at Hashrocket. For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186). -_1687 TILs and counting..._ +_1688 TILs and counting..._ See some of the other learning resources I work on: @@ -1946,6 +1946,7 @@ If you've learned something here, support my efforts writing daily TILs by - [Create A Local Sanity Dataset Backup](workflow/create-a-local-sanity-dataset-backup.md) - [Create A Public URL For A Local Server](workflow/create-a-public-url-for-a-local-server.md) - [Create Todo Items In Logseq](workflow/create-todo-items-in-logseq.md) +- [Do Project Time Tracking From The CLI](workflow/do-project-time-tracking-from-the-cli.md) - [Enable Dev Tools For Safari](workflow/enable-dev-tools-for-safari.md) - [Forward Stripe Events To Local Server](workflow/forward-stripe-events-to-local-server.md) - [Get URL For GitHub User Profile Photo](workflow/get-url-for-github-user-profile-photo.md) diff --git a/workflow/do-project-time-tracking-from-the-cli.md b/workflow/do-project-time-tracking-from-the-cli.md new file mode 100644 index 0000000..7537650 --- /dev/null +++ b/workflow/do-project-time-tracking-from-the-cli.md @@ -0,0 +1,35 @@ +# Do Project Time Tracking From The CLI + +The [`watson` CLI utility](https://github.com/jazzband/Watson) is built to help +track time across projects right from the terminal. It is written in Python and +can be installed via `brew` or `pip3`. + +To start tracking a new or existing project, I can specify it by name like so: + +```bash +$ watson start my-project +reporting +Starting project my-project [reporting] at 00:28 +``` + +This starts a timer for the `my-project` project and includes the tag +`reporting`. Tags are optional but can give some context to what part of a given +project this time session is for. + +At any point during a session, we can check the status. + +```bash +$ watson status +Project my-project [reporting] started 14 seconds ago (2025.11.14 00:28:31-0600) +``` + +And when we are done working on that project for the time being, we can stop it. + +```bash +$ watson stop +Stopping project my-project [reporting], started a minute ago and stopped just now. (id: e8e8ed5) +``` + +Once we're ready to start another session (`timeframe`), we just need to run +`watson start ...` again. + +See `watson --help` for other subcommands provided by the utility.