{"id":33185584,"url":"https://github.com/sethigeet/watcher","last_synced_at":"2026-01-14T12:10:29.878Z","repository":{"id":57660005,"uuid":"443473935","full_name":"sethigeet/watcher","owner":"sethigeet","description":"A simple command line app to watch files in a directory for changes and run a command when files change!","archived":false,"fork":false,"pushed_at":"2022-03-25T11:19:12.000Z","size":32,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-06-20T17:54:58.845Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sethigeet.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}},"created_at":"2022-01-01T04:58:29.000Z","updated_at":"2023-08-31T05:14:33.000Z","dependencies_parsed_at":"2022-09-09T16:51:42.768Z","dependency_job_id":null,"html_url":"https://github.com/sethigeet/watcher","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sethigeet/watcher","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sethigeet%2Fwatcher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sethigeet%2Fwatcher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sethigeet%2Fwatcher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sethigeet%2Fwatcher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sethigeet","download_url":"https://codeload.github.com/sethigeet/watcher/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sethigeet%2Fwatcher/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28419561,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T10:47:48.104Z","status":"ssl_error","status_checked_at":"2026-01-14T10:46:19.031Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":[],"created_at":"2025-11-16T05:00:20.095Z","updated_at":"2026-01-14T12:10:29.873Z","avatar_url":"https://github.com/sethigeet.png","language":"Go","funding_links":[],"categories":["\u003ca name=\"file-watch\"\u003e\u003c/a\u003eFile watching for changes"],"sub_categories":[],"readme":"# Watcher - Develop your programs easily\n\nWatcher watches all the files present in the directory it is run from of the directory that is specified while running it and whenever a file is changed or a file is created/deleted from the directory, it runs the command specified while running it or a default command that it recognises from the contents of the current directory.\n\n## Features\n\n- [x] Choose which directory to watch for file changes\n- [x] Specify amount of time to wait before running the command after a file change occurs\n- [x] List the files that are being watched\n- [x] Choose whether to run the command on startup\n- [x] Set the maximum number of files that can be watched\n- [x] Supports never ending processes such as dev servers as the command\n- [x] Have a default ignore list\n- [x] Press keys for force refreshing even when file change is not detected\n- [x] Automatically recognize commands for popular project structure\n\n## Arguments\n\n#### Command\n\nThe command you want to run when any file changes\n\n```sh\nwatcher --cmd '\u003ccmd\u003e'\nor\nwatcher -x '\u003ccmd\u003e'\n```\n\n#### Directory\n\nThe directory that you want watcher to watch for file changes. _(default: \".\")_\n\n```sh\nwatcher --dir '\u003cdir\u003e'\n```\n\n#### Ignore\n\nThe files that you want to ignore. It also supports file globbing.\n\n```sh\nwatcher --ignore '\u003cfiles\u003e'\n```\n\n#### Ignore File\n\nA file that contains the files that you want to ignore. It follows the gitignore file syntax\n\n```sh\nwatcher --ignore-file '\u003cfile-name\u003e'\n```\n\n#### Hidden\n\nWhether the hidden files should also be watched for file changes. _(default: true)_\n\n```sh\nwatcher --hidden false\n```\n\n#### Clear\n\nWhether to clear the terminal every time the command is rerun due to changed. _(default: true)_\n\n```sh\nwatcher -c\nor\nwatcher --clear\n```\n\n#### Delay\n\nThe amount of time to wait before running the specified command after a file change occurs. _(default: 500ms)_\n\n```sh\nwatcher --delay 1000ms\n```\n\n#### Run on Start\n\nWhether the specified command should run when watcher has first started. _(default: true)_\n\n```sh\nwatcher --run-cmd-on-start false\nor\nwatcher -r false\n```\n\n#### List on Start\n\nWhether the list of files being watched should be printed when watcher has first started. _(default: false)_\n\n```sh\nwatcher --list-on-start true\n```\n\n#### Limit\n\nThe maximum number of files that can be watched. _(default: 10000)_\n\n```sh\nwatcher --limit 50000\nor\nwatcher -l 50000\n```\n\n\u003e ⚠️ Every system has a maximum value which cannot be exceeded. To find it look at:\n\u003e\n\u003e - **Linux**: `/proc/sys/fs/inotify/max_user_watches` contains the limit, reaching this limit results in a \"no space left on device\" error.\n\u003e - **BSD / OSX**: `sysctl` variables `kern.maxfiles` and `kern.maxfilesperproc`, reaching these limits results in a \"too many open files\" error.\n\n## Examples\n\n- **Basic** example (use _default_ options):\n  ```sh\n  watcher\n  ```\n- **Intermediate** example:\n  ```sh\n  watcher --delay 1s\n  ```\n- **Advanced** example:\n  ```sh\n  watcher -x 'go run .' --dir '~/Projects/watcher' --hidden false -l 50000\n  ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsethigeet%2Fwatcher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsethigeet%2Fwatcher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsethigeet%2Fwatcher/lists"}