{"id":33185688,"url":"https://github.com/will-moss/dawson","last_synced_at":"2026-03-01T01:18:54.471Z","repository":{"id":254613340,"uuid":"847058884","full_name":"will-moss/dawson","owner":"will-moss","description":"Track your project's statistics on Hacker News and Github, and get notified on every new interaction","archived":false,"fork":false,"pushed_at":"2024-09-16T08:16:06.000Z","size":506,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-09-17T10:06:46.068Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/will-moss.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":"2024-08-24T18:18:19.000Z","updated_at":"2024-09-16T08:16:09.000Z","dependencies_parsed_at":"2024-09-16T09:47:03.843Z","dependency_job_id":null,"html_url":"https://github.com/will-moss/dawson","commit_stats":null,"previous_names":["will-moss/dawson"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/will-moss/dawson","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/will-moss%2Fdawson","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/will-moss%2Fdawson/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/will-moss%2Fdawson/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/will-moss%2Fdawson/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/will-moss","download_url":"https://codeload.github.com/will-moss/dawson/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/will-moss%2Fdawson/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285731803,"owners_count":27222214,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-22T02:00:05.934Z","response_time":64,"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":"2025-11-16T05:00:20.099Z","updated_at":"2025-11-22T04:01:30.625Z","avatar_url":"https://github.com/will-moss.png","language":"Python","funding_links":[],"categories":["\u003ca name=\"online\"\u003e\u003c/a\u003eOnline search and resources"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003ch1 align=\"center\"\u003eDawson\u003c/h1\u003e\n    \u003cp align=\"center\"\u003e\n      Track your project's statistics on Hacker News and Github, and get notified on every new interaction\n    \u003c/p\u003e\n    \u003cp align=\"center\"\u003e\n      \u003ca href=\"#introduction\"\u003eIntroduction\u003c/a\u003e -\n      \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e -\n      \u003ca href=\"#install\"\u003eInstall\u003c/a\u003e\n    \u003c/p\u003e\n\u003c/p\u003e\n\n\u003cimg src=\"/assets/SCREENSHOT.png\" alt=\"Dawson\" /\u003e\n\n## Table of Contents\n\n- [Introduction](#introduction)\n- [Features](#features)\n- [Install](#install)\n- [Examples](#examples)\n- [Troubleshoot](#troubleshoot)\n- [Credits](#credits)\n\n## Introduction\n\nDawson is a tiny utility that enables you to track your project's submission on Hacker News, and your project's repository on Github.\nOn every new comment, upvote, fork, issue, or star, Dawson will send you a desktop notification so you can quickly react and anticipate.\n\nI decided to create that tool after noticing that my latest project ([Isaiah](https://github.com/will-moss/isaiah)) had made it to the\nfront page of Hacker News, and brought hundreds of reactions and comments. I wanted to be able to track everything without having to refresh\nmy browser every other minute, and quickly reply to questions and suggestions. That's why I built Dawson\n\n## Features\n\nDawson has these features implemented :\n- Track any given Hacker News post or Github repository\n- Send a desktop notification on every new comment, upvote, fork, issue, or star\n- Open the monitored page when clicking on notifications\n- Customize the monitoring (frequency, title, sound, number of notifications, etc.)\n\nEverything fits into one small Python file, and you can either install Dawson, or copy the script and run it locally.\n\n## Install\n\nBefore proceeding, please make sure that your system meets the following requirements:\n- Python 3.x is installed, and available as the `python3` executable\n- Pip 3.x is installed, and available as the `pip3` executable\n- On Mac OS, read the troubleshooting section\n\nThen, you may choose one of the options below.\n\n#### Using the remote install script\n\nA remote install script was created to help you install Dawson in one line, from your terminal:\n\n\u003e As always, check the content of every file you pipe in bash\n\n```bash\n# Run the install script\ncurl https://raw.githubusercontent.com/will-moss/dawson/master/scripts/remote-install.sh | bash\n\n# Dawson should be available now\ndawson -h\n```\n\n#### Using the local install script\n\nA local install script was created to help you install Dawson in a few lines, from your terminal:\n\n```bash\n# Retrieve the code\ngit clone https://github.com/will-moss/dawson\ncd dawson\n\n# Run the local install script\n./scripts/local-install.sh\n\n# Dawson should be available now\ndawson -h\n```\n\n#### Manual install\n\nDawson being nothing more than a Python script, you can install it manually with the following commands:\n\n```bash\n# Retrieve the code\ngit clone https://github.com/will-moss/dawson\ncd dawson\n\n# Install the two dependencies\npip3 install -r requirements.txt\n\n# Option 1 : Run Dawson using the Python executable\npython3 dawson.py -h\n\n# Option 2 : Run Dawson using the executable (a Python script with a shebang)\n./dawson -h\n```\n\n## Examples\n\nPlease find below a few examples to help you get started with Dawson.\n\n#### Track your project's submission on Hacker News\n\n```bash\n# Monitor for changes every 10 seconds\ndawson -u https://news.ycombinator.com/item?id=\u003cYOUR-ID\u003e -f 10\n\n# Using Python\npython3 dawson.py -u https://news.ycombinator.com/item?id=\u003cYOUR-ID\u003e -f 10\n```\n\n#### Track your project's repository on Github\n\n```bash\n# Monitor for changes every 30 seconds\ndawson -u https://github.com/\u003cAUTHOR\u003e/\u003cREPOSITORY\u003e -f 30 -T \u003cTOKEN\u003e\n\n# Using Python\npython3 dawson -u https://github.com/\u003cAUTHOR\u003e/\u003cREPOSITORY\u003e -f 30 -T \u003cTOKEN\u003e\n```\n\n#### Track your project on both Hacker News and Github, with custom settings, and background jobs\n\n```bash\n# Every process runs in the background, emits no notification sound, and has its own notification title\ndawson -u https://news.ycombinator.com/item?id=\u003cYOUR-ID\u003e -f 10 -s -t \"Hacker News - Activity recorded\" \u0026\ndawson -u https://github.com/\u003cAUTHOR\u003e/\u003cREPOSITORY\u003e -f 10 -T \u003cTOKEN\u003e -s -t \"Github - Activity recorded\" \u0026\n```\n\n#### Run Dawson in the background using screen\n\n```bash\n# Create a screen dedicated to Dawson\nscreen -S dawson\n\n# Run Dawson\ndawson -u https://news.ycombinator.com/item?id=\u003cYOUR-ID\u003e -f 10\n\n# Leave the screen instance in the background\n\u003cCTRL+A\u003e \u003cD\u003e\n```\n\n## Troubleshoot\n\nShould you encounter any issue running Dawson, please refer to the following common questions, and problems with their solutions.\n\n#### Can I use Dawson to monitor multiple projects at the same time?\n\nDawson can monitor one project at a time, but you can run multiple instances of Dawson in parallel.\n\nFor example, you may want to track your project on both Hacker News and Github.\nTo do so, you should run Dawson two times : once for Hacker News, and once for Github.\nAnd you can, definitely, run Dawson in parallel as many times as wanted to track multiple projects at the same time.\n\nI would recommend using `screen` or native background jobs for that purpose, and make sure that you don't hit API rate limits.\n\n#### Dawson fails at monitoring my project on Github\n\nFirst, please ensure that your Github repository is publicly accessible. If it isn't,\nyou must supply the `-T \u003cTOKEN\u003e` command-line argument.\n\nSecond, you may have hit Github API rate limits. In this case, you should generate a Github API Token, and supply it to Dawson\nusing the `-T \u003cTOKEN\u003e` command-line argument. By default, the public unauthenticated Github API is restricted to 60 requests per hour, which is very low.\n\nUltimately, please make sure that :\n- Your monitoring frequency (`-f \u003cFREQUENCY\u003e` argument) isn't too small.\n- Your Github's repository URL looks like so : `https://github.com/\u003cAUTHOR\u003e/\u003cREPOSITORY\u003e`\n\n#### Notifications don't work on Mac OS\n\nDawson uses the great `Desktop Notifier` library to manage notifications on every operating system.\n\nShould you encounter an issue on Mac OS, I suggest reading : [https://desktop-notifier.readthedocs.io/en/latest/#notes-on-macos](https://desktop-notifier.readthedocs.io/en/latest/#notes-on-macos)\n\nFor a simple explanation :\n- To display notifications in the Notification Center of Mac OS, an app needs to be signed and properly configured.\n- If your version of Python comes from `brew` or another package manager, it certainly isn't signed, or not configured as Mac OS expects it to be.\n- The solution is to download Python from the official [python.org](https://python.org) website, run their installer, and use that version of Python to run Dawson.\n\nAlso, because Dawson is not a packaged and signed app for Mac OS, it can't send notifications on its own. It requires Python (which is signed and packaged!).\nPackaging and signing Dawson could be doable, but it would require jumping hoops and paying for an Apple Developer License.\n\n#### Something else\n\nPlease feel free to open an issue, explaining what happens, and describing your environment.\n\n## Contribute\n\nIf you can help in any way, please do. Here's a few ideas :\n- Open an issue if you encounter a bug\n- Suggest new features and improvements\n- Anything else that comes to your mind!\n\n## Credits\n\nHey hey ! It's always a good idea to say thank you and mention the people and projects that help us move forward.\n\nBig thanks to the creator of [Desktop Notifier](https://github.com/samschott/desktop-notifier)\nfor the powerful and convenient cross-os notification library.\n\nAnd don't forget to mention Dawson if it makes your life easier!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwill-moss%2Fdawson","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwill-moss%2Fdawson","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwill-moss%2Fdawson/lists"}