{"id":34090055,"url":"https://github.com/patsuckow/pomodorotimer","last_synced_at":"2026-03-27T04:31:30.764Z","repository":{"id":54806815,"uuid":"230800250","full_name":"patsuckow/pomodorotimer","owner":"patsuckow","description":"Console Pomodoro timer with playing the melody of the signal or with the generation of an end time signal. Displays a push notification on Linux and Mac OS X.","archived":false,"fork":false,"pushed_at":"2025-09-15T19:33:25.000Z","size":280,"stargazers_count":21,"open_issues_count":1,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-03T04:59:05.727Z","etag":null,"topics":["cli","countdown","countdown-timer","eta","freelance","freelancer-time","pomodoro","pomodoro-technique","pomodoro-timer","pomodoro-timer-music","pomodorotimer","productivity","productivity-timer","productivity-tools","stopwatch","time-management","time-management-tools","timer","timer-counter","tomato"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/pomodorotimer/","language":"Python","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/patsuckow.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://www.paypal.me/patsuckow","https://www.buymeacoffee.com/patsuckow"]}},"created_at":"2019-12-29T20:32:38.000Z","updated_at":"2025-09-15T19:33:22.000Z","dependencies_parsed_at":"2024-08-18T05:30:33.605Z","dependency_job_id":"e3c1cea6-ba68-4746-a8ae-b32cfa51be3d","html_url":"https://github.com/patsuckow/pomodorotimer","commit_stats":{"total_commits":23,"total_committers":2,"mean_commits":11.5,"dds":0.04347826086956519,"last_synced_commit":"4703ea81ce0f6bc75f9c94310d0620e0a5bb4313"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/patsuckow/pomodorotimer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patsuckow%2Fpomodorotimer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patsuckow%2Fpomodorotimer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patsuckow%2Fpomodorotimer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patsuckow%2Fpomodorotimer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/patsuckow","download_url":"https://codeload.github.com/patsuckow/pomodorotimer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patsuckow%2Fpomodorotimer/sbom","scorecard":{"id":722657,"data":{"date":"2025-08-11","repo":{"name":"github.com/patsuckow/pomodorotimer","commit":"ffc5718e71d3b94f2c21435041517af9e1f112a3"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.4,"checks":[{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"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":"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":"Code-Review","score":0,"reason":"Found 0/28 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":"Dangerous-Workflow","score":-1,"reason":"no workflows found","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":"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":"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":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"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":"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":"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":"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":"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":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"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":"Vulnerabilities","score":9,"reason":"1 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2025-49 / GHSA-5rjg-fvgr-3xxf"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-22T11:50:13.254Z","repository_id":54806815,"created_at":"2025-08-22T11:50:13.254Z","updated_at":"2025-08-22T11:50:13.254Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31019381,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-27T03:51:26.850Z","status":"ssl_error","status_checked_at":"2026-03-27T03:51:09.693Z","response_time":164,"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":["cli","countdown","countdown-timer","eta","freelance","freelancer-time","pomodoro","pomodoro-technique","pomodoro-timer","pomodoro-timer-music","pomodorotimer","productivity","productivity-timer","productivity-tools","stopwatch","time-management","time-management-tools","timer","timer-counter","tomato"],"created_at":"2025-12-14T14:09:41.350Z","updated_at":"2026-03-27T04:31:30.745Z","avatar_url":"https://github.com/patsuckow.png","language":"Python","readme":"# pomodorotimer (CLI Pomodoro Timer)\nConsole Pomodoro timer with playing the melody of the signal or with the \ngeneration of an end time signal. Displays a push notification on Linux and \nMac OS X.\n\n**Support**: [![Donate via PayPal](https://www.paypalobjects.com/webstatic/mktg/Logo/pp-logo-100px.png)](https://www.paypal.me/patsuckow) or [![Buy us a Cofee](https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png)](https://www.buymeacoffee.com/patsuckow)\n\n# Pomodoro Technique:\nPomodoro Technique - [see](https://en.wikipedia.org/wiki/Pomodoro_Technique)\n\n![plan](https://user-images.githubusercontent.com/12321741/72369481-459b5180-3711-11ea-9bb6-e6eed7a4a1e4.jpg)\n\nWe will use the traditional Pomodoro scheme:\n\n![technique](https://user-images.githubusercontent.com/12321741/72372975-77fc7d00-3718-11ea-944b-69e426dc30b2.png)\n\n### It is important:\n**According to the principle of the Pomodoro technique - if you are\ndistracted while doing work, then you must interrupt the current time\nand start a new Pomodoro. And this means that you need to write time in to\nthe database only after the specified time has passed and not earlier.**\n\n**If you follow this principle, the Pomodoro Technique will be for you exactly \nthe tool for which it was invented, namely, not to calculate the time of your \nwork and breaks in work, but to make you concentrate on continuous and \nconcentrated execution of works during one Pomodoro, i.e. within 25 minutes.**\n\n---\n\nWe call the program from any directory in the console and set the countdown \ntime:\n\n![1](https://user-images.githubusercontent.com/12321741/72445421-bcdcee00-37c2-11ea-863f-9f3fc9c36a9f.gif)\n\nWhen the time ends, a sound signal will be played, push notification will be \ndisplayed and it is proposed to enter a new countdown time. And also, it will \ndisplay the time that is OUT, in the form of a colored time bar, where:\n- red color - working time (25 minutes)\n- green color - time for a short or long break (5, 15 or 30 minutes)\n\n![2](https://user-images.githubusercontent.com/12321741/72445482-cfefbe00-37c2-11ea-9a0f-6fe319b13946.gif)\n\n![3](https://user-images.githubusercontent.com/12321741/72445528-e433bb00-37c2-11ea-82bb-44fb220ba732.gif)\n\n![4 2](https://user-images.githubusercontent.com/12321741/72445885-82278580-37c3-11ea-9edc-fc5dedd40276.gif)\n\n![5 2](https://user-images.githubusercontent.com/12321741/72446142-0a0d8f80-37c4-11ea-94bf-fc789bfb426b.gif)\n\nThe type of push notification depends on your OS and the type of graphical \nshell used, for example:\n\n![Peek 2019-12-30 22-35](https://user-images.githubusercontent.com/12321741/71597566-cde7f700-2b54-11ea-83a9-133cc737d32c.gif)\n\n## How to install:\n\n#### From PyPI:\n\n    pip install pomodorotimer\n\n#### From sources:\n\nAlternatively you can install **pomodorotimer** from sources directory:\n\n    git clone https://github.com/patsuckow/pomodorotimer\n    cd pomodorotimer\n    pip install -r requirements.txt\n    pip install .\n    cd ..\n    rm -rf pomodorotimer\n\n## How run **pomodorotimer**:\n```\npomodoro\n```\n\n## Work with statistics Pomodoro`s:\n\nGet statistics today:\n```\npomodoro --statistic=today\n```\nWe get something like this in the browser window:\n\n![stat-2](https://user-images.githubusercontent.com/12321741/72270776-b9b4f700-3636-11ea-972b-e92d767beaad.jpg)\n\nAll-Time Statistics:\n```\npomodoro --statistic=all\n```\nWe get something like this in the browser window:\n![all](https://user-images.githubusercontent.com/12321741/72447777-f879b700-37c6-11ea-9fda-edd623b8442f.png)\n\nDelete (clear) statistics for today:\n```\npomodoro --statistic=delete-today\n```\nDelete (clear) all statistics:\n```\npomodoro --statistic=delete-all\n```\n\n## Requirements:\nSee in requirements.txt\n\n**pomodorotimer** works with python 3.10.13 or higher.\n\n\n## How uninstall **pomodorotimer** 😭:\n```\npip uninstall pomodorotimer\n```\n\n## Licence:\n![GNU GPL v 3 0](https://user-images.githubusercontent.com/12321741/67310082-c4636280-f505-11e9-83a7-d23e8037c54f.png)\n\n## Authors:\n\n**Alexey Patsukov 🇷🇺** - [GitHub profile](https://github.com/patsuckow)\n\n### Submit issues\n\nIf you spotted something weird in application behavior or want to propose a \nfeature you are welcome.\n\n### Write code\n\nIf you are eager to participate in application development and to work on an \nexisting issue (whether it should\nbe a bugfix or a feature implementation), fork, write code, and make a pull \nrequest right from the forked project page.\n\n### Spread the word\n\nIf you have some tips and tricks or any other words that you think might be of \ninterest for the others — publish it\nwherever you find convenient.\n\nRead also:\n- https://francescocirillo.com\n- https://habr.com/ru/post/446996/\n- http://career-philol.ru/page/adaptive/id341091/blog/3189767/\n","funding_links":["https://www.paypal.me/patsuckow","https://www.buymeacoffee.com/patsuckow"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatsuckow%2Fpomodorotimer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpatsuckow%2Fpomodorotimer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatsuckow%2Fpomodorotimer/lists"}