{"id":23092026,"url":"https://github.com/thiswillbeyourgithub/daily_fact_ntfy","last_synced_at":"2025-08-16T09:30:53.640Z","repository":{"id":258692892,"uuid":"874424752","full_name":"thiswillbeyourgithub/Daily_Fact_Ntfy","owner":"thiswillbeyourgithub","description":"Receive a daily ntfy notification about a fun fact about something you're interested in using an LLM","archived":false,"fork":false,"pushed_at":"2024-12-11T11:45:58.000Z","size":20,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-11T12:33:50.952Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","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/thiswillbeyourgithub.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-10-17T19:58:52.000Z","updated_at":"2024-12-11T11:46:02.000Z","dependencies_parsed_at":"2024-11-12T18:33:04.982Z","dependency_job_id":"b99aad95-562d-4c53-b3ca-52a46afc8076","html_url":"https://github.com/thiswillbeyourgithub/Daily_Fact_Ntfy","commit_stats":null,"previous_names":["thiswillbeyourgithub/dailyntfyaifact","thiswillbeyourgithub/daily_fact_ntfy"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thiswillbeyourgithub%2FDaily_Fact_Ntfy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thiswillbeyourgithub%2FDaily_Fact_Ntfy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thiswillbeyourgithub%2FDaily_Fact_Ntfy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thiswillbeyourgithub%2FDaily_Fact_Ntfy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thiswillbeyourgithub","download_url":"https://codeload.github.com/thiswillbeyourgithub/Daily_Fact_Ntfy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230027908,"owners_count":18161837,"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","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-12-16T21:26:49.672Z","updated_at":"2025-08-16T09:30:53.623Z","avatar_url":"https://github.com/thiswillbeyourgithub.png","language":"Shell","readme":"# Daily Fact Ntfy\n\nThis project sends notifications with AI-generated interesting facts about specified topics using ntfy.sh.\n\n## Description\n\n`Daily Fact Ntfy` is a shell script that:\n1. Generates a subtopic about your chosen topic\n2. Creates an interesting fact about that subtopic in the context of your topic using an AI language model\n3. Optionally waits a random amount of time within a specified range\n4. Sends this fact as a notification via ntfy.sh\n\n## Prerequisites\n\n- zsh shell\n- curl\n- [uv](https://github.com/astral-sh/uv) (for [ShellArgParser](https://github.com/thiswillbeyourgithub/ShellArgParser))\n- [llm](https://github.com/simonw/llm) (an AI language model CLI tool)\n- An [ntfy.sh](https://ntfy.sh) topic\n\n## Setup\n\n1. Clone this repository:\n   ```\n   git clone https://github.com/yourusername/Daily_Fact_Ntfy\n   cd Daily_Fact_Ntfy\n   ```\n\n2. Make the script executable:\n   ```\n   chmod +x Daily_Fact_Ntfy.sh\n   ```\n## Usage\n\nBasic usage:\n\n```zsh\n./Daily_Fact_Ntfy.sh --topic TOPIC --ntfy_topic TOPIC_NAME [options]\n```\n\nRequired arguments:\n- `--topic TOPIC`: Main topic to generate facts about\n- `--ntfy_topic TOPIC_NAME`: Ntfy.sh topic name for notifications\n\nOptional arguments:\n- `--min_t MIN`: Minimum seconds to wait (default: 0)\n- `--max_t MAX`: Maximum seconds to wait (default: 1)\n- `--topic_extra_args ARGS`: Additional arguments for topic LLM call\n- `--subtopic_extra_args ARGS`: Additional arguments for subtopic LLM call\n- `--topic_extra_rules RULES`: Additional rules for topic generation\n- `--subtopic_extra_rules RULES`: Additional rules for subtopic generation\n- `--verbose`: Enable verbose logging\n- `--strip-thinking`: Remove \u003cthinking\u003e...\u003c/thinking\u003e tags from output\n\nExample:\n```bash\n./Daily_Fact_Ntfy.sh --topic \"Psychiatry\" --ntfy_topic \"my-notifications\" --min_t 3600 --max_t 7200\n```\n\nThis will:\n1. Generate a subtopic about psychiatry (say 'simulating depression in mice')\n2. Create an interesting fact about that subtopic (the explanation about the subtopic)\n3. Wait between 1 to 2 hours (to be surprised by the notification on your phone)\n4. Send the fact as a notification via ntfy.sh\n\n## Custom LLM Arguments\n\nYou can customize the behavior of the AI language model by providing additional arguments through `--topic_extra_args` or `--subtopic_extra_args`. These are passed directly to the `llm` command. For example:\n\n```bash\n./Daily_Fact_Ntfy.sh --topic \"Psychiatry\" --ntfy_topic \"my-notifications\" --topic_extra_args \"-m gpt-4 -o temperature 0.7\"\n```\n\nMore advanced example using Claude, custom rules, and thinking tags:\n```bash\n./Daily_Fact_Ntfy.sh --ntfy_topic \"my-notifications\" \\\n  --topic \"Psychiatry research\" \\\n  --min_t 0 --max_t 5 \\\n  --subtopic_extra_args \"-m claude -o temperature 2\" \\\n  --topic_extra_args \"-m claude -o temperature 1.5\" \\\n  --topic_extra_rules \"Answer in B1 level spanish from Argentina. Use a style similar to 'Pàgina 12'. For length 2 to 3 paragraphs. Start your answer by your internal thoughts in \u003cthinking\u003e tags then answer directly.\" \\\n  --verbose --strip-thinking\n```\n\nThis will:\n1. Use Claude instead of the default model\n2. Generate facts in Spanish\n3. Remove the model's thinking process from the output\n4. Send the notification almost immediately (0-5 seconds delay)\n\nNote: Default temperatures are:\n- 2.0 for subtopic generation\n- 1.5 for fact generation\n\n## Contributing\n\nContributions, issues, and feature requests are welcome. Feel free to check issues page if you want to contribute.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthiswillbeyourgithub%2Fdaily_fact_ntfy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthiswillbeyourgithub%2Fdaily_fact_ntfy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthiswillbeyourgithub%2Fdaily_fact_ntfy/lists"}