{"id":47942200,"url":"https://github.com/maranix/monitor","last_synced_at":"2026-04-04T08:11:53.289Z","repository":{"id":236299633,"uuid":"792332718","full_name":"maranix/monitor","owner":"maranix","description":"A cli tool for reloading command/services on filesystem changes","archived":false,"fork":false,"pushed_at":"2024-05-18T18:40:53.000Z","size":40,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-19T18:45:52.108Z","etag":null,"topics":["cli","cobra","directory-watcher","file-watcher","go","golang","live-reload","task-runner"],"latest_commit_sha":null,"homepage":"","language":"Go","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/maranix.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-04-26T13:02:09.000Z","updated_at":"2024-05-31T06:27:47.389Z","dependencies_parsed_at":"2024-05-18T18:48:13.737Z","dependency_job_id":null,"html_url":"https://github.com/maranix/monitor","commit_stats":null,"previous_names":["maranix/monitor"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/maranix/monitor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maranix%2Fmonitor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maranix%2Fmonitor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maranix%2Fmonitor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maranix%2Fmonitor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maranix","download_url":"https://codeload.github.com/maranix/monitor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maranix%2Fmonitor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31392286,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T04:26:24.776Z","status":"ssl_error","status_checked_at":"2026-04-04T04:23:34.147Z","response_time":60,"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","cobra","directory-watcher","file-watcher","go","golang","live-reload","task-runner"],"created_at":"2026-04-04T08:11:48.965Z","updated_at":"2026-04-04T08:11:53.285Z","avatar_url":"https://github.com/maranix.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/maranix/monitor/assets/59292838/4d8598f2-a345-4ab3-b533-e07a1d3e9610\" alt=\"Monitor Logo\" width=\"300\" height=\"300\"/\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eMonitor\u003c/h1\u003e\nMonitor is a CLI tool for reloading commands/services on filesystem changes. It leverages the `fsnotify` package to watch for changes in a specified directory and executes command when changes are detected.\n\n\u003e [!WARNING]\n\u003e ### Project Status\n\u003e Monitor is currently under active development and is a part of my daily development workflow.\n\u003e\n\u003e As I am still learning GoLang, the APIs, features, and other aspects of the tool are subject to regular changes. This project serves as both a practical tool and a learning experience.\n\u003e\n\u003e I welcome any suggestions on features, code practices, and improvements. If you have any feedback, please feel free to open an issue. I'd love to learn more and discuss potential enhancements!\n\n## Features\n\n- Watches a specified directory for file changes.\n- Debounces events to prevent multiple executions from rapid subsequent changes.\n- Ignores extra `CHMOD` events on Linux to avoid duplicate command executions.\n\n## Installation\n\nTo install Monitor, you need to have Go installed on your machine. Then, you can build the project using the following commands:\n\n```bash\ngit clone https://github.com/yourusername/monitor.git\ncd monitor\ngo build -o monitor .\n```\n\n## Usage\n\nAfter building the project, you can run the monitor command with the following options:\n\n```bash\n./monitor \u003cdirectory\u003e \u003ccommand/service to run\u003e\n```\n\n## Flags\n\n- `--verbose`, `-v` gives out the verbose output.\n\n## Commands\n\n- `version`: prints the cli version\n\n## Example\n\nTo watch the current directory and output `hello` everytime a modification is made within the directory:\n\n```bash\n./monitor ./ \"echo hello\"\n\nor\n\ngo run main.go ./ \"echo hello\"\n```\n\n## Contributions\n\nContributions are welcome! Please feel free to submit a Pull Request for anything you might like to see or have any issues with.\n\n## License\n\nThis project is Licensed under [MIT License](https://github.com/maranix/monitor/blob/main/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaranix%2Fmonitor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaranix%2Fmonitor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaranix%2Fmonitor/lists"}