{"id":19406647,"url":"https://github.com/nirum/timesheets","last_synced_at":"2026-06-17T11:32:01.196Z","repository":{"id":7937519,"uuid":"9328668","full_name":"nirum/timesheets","owner":"nirum","description":"simple shell scripts to keep track of your workday","archived":false,"fork":false,"pushed_at":"2013-05-07T21:41:12.000Z","size":3958,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-25T00:51:21.363Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nirum.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-04-09T18:35:38.000Z","updated_at":"2022-02-25T18:30:42.000Z","dependencies_parsed_at":"2022-09-25T05:11:26.508Z","dependency_job_id":null,"html_url":"https://github.com/nirum/timesheets","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nirum/timesheets","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirum%2Ftimesheets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirum%2Ftimesheets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirum%2Ftimesheets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirum%2Ftimesheets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nirum","download_url":"https://codeload.github.com/nirum/timesheets/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nirum%2Ftimesheets/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34447264,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-17T02:00:05.408Z","response_time":127,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T11:43:00.666Z","updated_at":"2026-06-17T11:32:01.181Z","avatar_url":"https://github.com/nirum.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"tman\n=====\n\nA simple time management tool.\n\nOverview\n--------\n\n`tman` is a simple command-line time management tool. One creates projects and then clock in and \nout as you work to keep track of the time spent on each. The goal of `tman` is to help the user\nbe more aware of spent actually working on projects.\n\nUsage\n-----\n\nYou can always type `tman -h` for general information about `tman`, or `tman help \u003ccommand\u003e` for\nmore detailed information about a specific command. Usage is probably best shown with a few \nexamples. \n\nTo create a new project, use `tman new my-project`. This creates a JSON file with the name\nmy-project.json, which contains information about the time you spend working on the project. \n\nTo start logging time on this project, write `tman in my-project`.  The command generates a hex \ntag for this particular clock-in event, and associates with it a timestamp. You can control the \nformat of the timestamp strings in your tmanrc.\n\nWhen you're done working on `my-project` simply call `tman out my-project`, which associates \nanother timestamp with this event. You can also clock out on project on which you are current\nclocked in by just calling `tman out`.\n\nYou can also add short notes, something like git commit notes, to each clock in or out event, by\ncalling `tman in my-project notes`. Notes should be a quoted string.\n\nTo see a list of all your projects, call `tman list`. This lists the projects, and highlights\nwhatever project is active with a `\u003c`. To see the history of clock events, you can use `tman\nshow my-project`.\n\nThere are also more advanced options. One example is this. Imagine you're working on `my-project`, \nbut then you forget to clock out at the end of the day. To rectify this situation, you can\nenforce a particular timestamp by passing the `--time=t` option. `t` can be a relative time. In\nthis example, if you forgot to clock out, but you finished your work two hours ago, you can write\n`tman out my-project --time=-2h`. In general, specifying times in the relative\nfashion here, like `-2.5h` or `-2h30m`, should just work. I'm still working to implement more\nflexible time specifications, so that you can say things like, `yesterday at 4PM`.\n\nAnother option is to pass the `--tag=t` flag. As mentioned above, each clock-in or -out event \nis associated with a hex string \"tag\". Passing this option applies whatever logging event you'd\nlike to the event in the project with the given tag. \n\nLet's see an example. Suppose that you clocked out of a project, and this event was given the tag\n`0c22eefac1002b`. Now let's say that you actually kept working on the project for a few more\nhours, but forgot to clock back in. You can adjust the clock-out time associated with that\ngiven tag, by calling `tman out my-project --tag=0c22eefac1002b`. This will udpate the clock-out\ntime to be the current time. You can also specify the time in this case by doing something like\n`tman out my-project --tag=0c22eefac1002b --time=-30m`. This updates the clock-out time for the \nevent with tag `0c22eefac1002b` to be 30 minutes prior to the current time. \n\nSince writing project names and long, arbitrary hex tags gets pretty tedious, you can also specify\nproject names and tags by writing only the first few characters of either one. `tman` will auto-\ncomplete the name if it is uniquely specified, or ask you to pick one if it's not. This will allow\nyou to update your incorrect clock-out time by calling `tman out my-project --tag=0c2`. Remember\nthat you can always see the list of clock events by calling `tman show my-project`.\n\ntodo\n-----\n+ [x] nail down basic structure of project JSON structures\n+ [x] write commands to create new project file\n+ [x] include functionality to apply time/notes updates to individual clock in/out events\n+ [x] basic autocomplete of project names and tags\n+ [x] functions to list all projects and show project history\n+ [ ] functions to search for given keywords\n+ [ ] functions to see statistics/summaries for projects\n+ [ ] connect these summaries with javascript!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnirum%2Ftimesheets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnirum%2Ftimesheets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnirum%2Ftimesheets/lists"}