{"id":42669046,"url":"https://github.com/mdm-code/wtime","last_synced_at":"2026-01-29T10:22:35.453Z","repository":{"id":116289187,"uuid":"361112545","full_name":"mdm-code/wtime","owner":"mdm-code","description":"Wtime lets you organize your time into manageable chunks.","archived":false,"fork":false,"pushed_at":"2022-04-29T15:01:28.000Z","size":27,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-06-21T09:58:13.688Z","etag":null,"topics":["socket","time","uds"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mdm-code.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-24T08:41:51.000Z","updated_at":"2023-09-26T12:03:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"92a58721-52c9-4524-be0f-31fa4cbf3c74","html_url":"https://github.com/mdm-code/wtime","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/mdm-code/wtime","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdm-code%2Fwtime","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdm-code%2Fwtime/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdm-code%2Fwtime/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdm-code%2Fwtime/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdm-code","download_url":"https://codeload.github.com/mdm-code/wtime/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdm-code%2Fwtime/sbom","scorecard":{"id":633233,"data":{"date":"2025-08-11","repo":{"name":"github.com/mdm-code/wtime","commit":"d846a805ba9d398f0f589c8ce7ff07d719b2471e"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.4,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/15 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/mdm-code/wtime/go.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/mdm-code/wtime/go.yml/main?enable=pin","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/go.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'","Warn: branch protection not enabled for branch 'develop'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-21T08:26:46.875Z","repository_id":116289187,"created_at":"2025-08-21T08:26:46.875Z","updated_at":"2025-08-21T08:26:46.875Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28875450,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T09:47:23.353Z","status":"ssl_error","status_checked_at":"2026-01-29T09:47:19.357Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["socket","time","uds"],"created_at":"2026-01-29T10:22:34.424Z","updated_at":"2026-01-29T10:22:35.439Z","avatar_url":"https://github.com/mdm-code.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Actions Status](https://github.com/mdm-code/wtime/workflows/CI/CD/badge.svg)](https://github.com/mdm-code/wtime/actions)\n\n# Wtime\n\nThis program gives you better control over your time at work by splitting work\ninto manageable chunks of time. Conversely, you can use it to make sure your\nstand up and exercise regularly.\n\n\n## Introduction\n\nSitting for hours without a break in front of a computer is bad for your health\nand general wellbeing. Every thirty minutes or so, you might want to stand up\nand do a little bit of exercise so that you do not put too much strain on your\nspine and your body in general.\n\nSplitting your work time into manageable chunks can give a better control over\nthe time spent working so that you do not go out of focus or start doing\novertime because you don't really now how long you've worked.\n\nThe program let's you control your time at work by splitting it into productive\nsessions followed by short breaks. Say, you might want to split your time into\nthirty-minute-long intervals with twenty-five minutes of work followed by a\nfive-minute break. You sit back for twenty-five minutes, stay focused on a task\nand then you stand up, do some work that requires you to move, or if there is\nnothing else to do, then do a little bit of stretching, push-ups or whatever\nrocks your boat. You won't regret it.\n\n\n## How to use it?\n\nYou can use it and modify it however you like, but if I can suggest something,\nthen I would stick to a very basic and non-intrusive usage.\n\nAll options that you can pass at the startup can be accessed with the `--help`\nflag.\n\nFirst, you kick start the server:\n\n```sh\nwtime -work=25 -rest=5\n```\n\nYou might want to pass your own alternating emoji to the `-emojis` parameter.\nThere should be no more no less but two of them.\n\nIt is all happening on the same host, so there are no ports here, just Unix\nDomain Sockets (UDS). UDS-based implementation is faster and unambiguous.\nYou grab a socket file and channel all the communication through this one\nfile.\n\nThen you can grab its output with `netcat` without any hassle or whatever:\n\n```sh\nnc -U /tmp/wtime.sock\n```\n\nOr you can put it on your `tmux` status line, for example, with this line:\n\n```\nset -g status-right \"#(nc -U /tmp/wtime.sock) %A, %B %-e, %Y, %-l:%M:%S%p\"\n```\n\nYou can try and use some of that `cat` magic and dial in to the socket in\nloops to get a counter for work time followed by a moment of respite.\n\n\n## Development setup\n\nThere isn't much going on here for Go as all tools ship with the compiler.\nAll core commands are specified in the `Makefile`.\n\n\n### Development environment\n\nYou might want to install the package to see how it works:\n\n```sh\nmake install\n```\n\nMake sure your Go environment is properly set up, but this is something that\nyou should take care on your own. There are many ways, and I am not elaborate\non it here and now.\n\n\n### Testing\n\nTo run the test suite key in:\n\n```sh\nmake test\n\n# or\n\ngo test -v ./...\n```\n\nTo build the binary:\n\n```sh\ngo build --race -o bin/wtime main.go\n```\n\nYou can do both things at once by typing bare `make`.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdm-code%2Fwtime","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmdm-code%2Fwtime","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdm-code%2Fwtime/lists"}