{"id":28873764,"url":"https://github.com/felipap/nudge","last_synced_at":"2026-06-14T21:31:23.092Z","repository":{"id":295507120,"uuid":"990281320","full_name":"felipap/nudge","owner":"felipap","description":"👉 AI that nudges you into flow. Available for  macOS.","archived":false,"fork":false,"pushed_at":"2026-04-16T01:59:43.000Z","size":22679,"stargazers_count":43,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-16T03:30:47.031Z","etag":null,"topics":["ai","electron","oss","productivity","typescript"],"latest_commit_sha":null,"homepage":"https://nudge.fyi","language":"TypeScript","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/felipap.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-25T21:30:00.000Z","updated_at":"2026-04-16T01:59:47.000Z","dependencies_parsed_at":"2025-05-28T22:36:41.537Z","dependency_job_id":"fbc0685f-5178-4572-88f3-dc17125dfbe9","html_url":"https://github.com/felipap/nudge","commit_stats":null,"previous_names":["felipap/compass","felipap/pi"],"tags_count":48,"template":false,"template_full_name":null,"purl":"pkg:github/felipap/nudge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipap%2Fnudge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipap%2Fnudge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipap%2Fnudge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipap%2Fnudge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/felipap","download_url":"https://codeload.github.com/felipap/nudge/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipap%2Fnudge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34339193,"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-14T02:00:07.365Z","response_time":62,"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":["ai","electron","oss","productivity","typescript"],"created_at":"2025-06-20T16:01:04.758Z","updated_at":"2026-06-14T21:31:23.068Z","avatar_url":"https://github.com/felipap.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://github.com/user-attachments/assets/1ae2fe14-c93f-4bfe-8d66-aa59046343ad\" width=\"128\" alt=\"Logo\" /\u003e\n\n# Nudge\n\nThe AI that nudges you into flow.\n\n\u003cp align=\"left\"\u003e\n  \u003ca href=\"#about\"\u003eAbout\u003c/a\u003e\n  ·\n  \u003ca href=\"#download\"\u003eDownload\u003c/a\u003e\n  ·\n  \u003ca href=\"#demo\"\u003eDemo\u003c/a\u003e\n  ·\n  \u003ca href=\"#faq\"\u003eFAQ\u003c/a\u003e\n\u003c/p\u003e\n\u003c/p\u003e\n\n## About\n\nNudge is an app for macOS that watches your screen and helps you stay in flow. Describe an activity and a duration (\"I want to vibe code for an hour\") and Nudge will notify you when it looks like you're doing something else.\n\n\u003cp\u003e\n\u003cimg src=\"https://github.com/user-attachments/assets/ca091ed8-d4c7-4e53-9570-6db4f4b34f6a\" width=\"500\" /\u003e\n\u003c/p\u003e\n\n## Download\n\nSee the [releases page](https://github.com/felipap/nudge/releases/latest) to find the latest DMGs.\n\n## Demo\n\nhttps://github.com/user-attachments/assets/5d93bc18-efcc-44ca-a4dd-a859efee6d21\n\n## FAQ\n\n[Ask a new question.](https://github.com/felipap/nudge/discussions/new/choose)\n\n\u003cdetails\u003e\n  \u003csummary\u003e\n    \u003cstrong\u003eHow does Nudge work?\u003c/strong\u003e\n  \u003c/summary\u003e\n  \u003cp\u003e\n    During a focus session, Nudge takes screenshots every minute and asks a multimodal AI (e.g., GPT-4o-mini) whether you're doing the activity you chose for that session. When it detects you're distracted, Nudge sends you a notification.\n  \u003c/p\u003e\n  \u003cp\u003e\n    You can read the detection code at \u003ca href=\"https://github.com/felipap/nudge/blob/main/src/ai/openai/assess-capture/index.ts\"\u003e/main/src/ai/openai/assess-capture/index.ts\u003c/a\u003e.\n  \u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n  \u003csummary\u003e\n    \u003cstrong\u003eWhat is Nudge Cloud?\u003c/strong\u003e\n  \u003c/summary\u003e\n  \u003cp\u003e\n    By default, Nudge sends screenshots directly to OpenAI using your API key. If you don't have an OpenAI key, you can use \"Nudge Cloud,\" which proxies requests through **nudge.fyi**.\n  \u003c/p\u003e\n  \u003cp\u003e\n    Screenshots may contain sensitive data, but I don't retain or observe them. I only host this server to make Nudge accessible to non-technical users.\n  \u003c/p\u003e\n  \u003cp\u003e\n    You can contact me at felipe AT portalform.com with any questions or concerns.\n  \u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n  \u003csummary\u003e\n    \u003cstrong\u003eWhat data does Nudge collect?\u003c/strong\u003e\n  \u003c/summary\u003e\n  \u003cp\u003e\n    \u003cstrong\u003eWith Nudge Cloud:\u003c/strong\u003e Nudge Cloud acts as a proxy server and doesn't collect any screenshot or session activity data. We save request headers to prevent abuse, as the server is currently free up to 20 session-hours a month. (I'm eating the cost for the sake of this experiment.)\n  \u003c/p\u003e\n  \u003cp\u003e\n    \u003cstrong\u003eWithout Nudge Cloud:\u003c/strong\u003e Data is exchanged directly with OpenAI. The data sent to GPT-4o may be accessible by the owner of the API key you enter.\n  \u003c/p\u003e\n  \u003cp\u003e\n    Error tracking: We use \u003ca href=\"https://sentry.io\" target=\"_blank\"\u003eSentry\u003c/a\u003e for crashes and telemetry, but \u003ca href=\"https://docs.sentry.io/platforms/javascript/configuration/options/#sendDefaultPii\" target=\"_blank\"\u003ewe don't collect PII as far as I know\u003c/a\u003e. I will consider making this optional in future versions.\n  \u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n  \u003csummary\u003e\n    \u003cstrong\u003eCan I use other AI backends?\u003c/strong\u003e\n  \u003c/summary\u003e\n  \u003cp\u003e\n    Not yet, but I'll add support if there's demand. \u003ca href=\"https://github.com/felipap/nudge/discussions/new\"\u003eStart a discussion to request specific providers.\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n  \u003csummary\u003e\n    \u003cstrong\u003eHow much does Nudge cost in AI usage?\u003c/strong\u003e\n  \u003c/summary\u003e\n  \u003cp\u003e\n    Costs depend on the model you use, your screen size, and capture frequency.\n  \u003c/p\u003e\n  \u003cp\u003e\n    During testing on July 2nd, 2025: a 1470x956 Mac screenshot used ~14k input tokens in GPT-4o-mini. At default settings (1-minute capture frequency), this works out to $0.002 per minute that Nudge is active, or about $0.12 per hour.\n  \u003c/p\u003e\n  \u003cp\u003e\n    I'm looking for ways to reduce these costs. If you have ideas, \u003ca href=\"https://github.com/felipap/nudge/discussions/new\"\u003estart a discussion.\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/details\u003e\n\n## Status\n\n[![Downloads Badge](https://img.shields.io/github/downloads/felipap/nudge/total.svg?color=green)](https://tooomm.github.io/github-release-stats/?username=felipap\u0026repository=nudge)\n[![Build Status](https://img.shields.io/github/actions/workflow/status/felipap/nudge/test.yml)](https://github.com/felipap/nudge/actions)\n[![Eval Status](https://img.shields.io/github/actions/workflow/status/felipap/nudge/evals.yml?color=orange\u0026label=evals)](https://github.com/felipap/nudge/actions)\n\n## License\n\nGPL-3.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelipap%2Fnudge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffelipap%2Fnudge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelipap%2Fnudge/lists"}