{"id":13437266,"url":"https://github.com/watchexec/watchexec","last_synced_at":"2026-02-25T12:24:11.854Z","repository":{"id":37782908,"uuid":"68546136","full_name":"watchexec/watchexec","owner":"watchexec","description":"Executes commands in response to file modifications","archived":false,"fork":false,"pushed_at":"2025-05-05T15:36:24.000Z","size":3490,"stargazers_count":5963,"open_issues_count":62,"forks_count":165,"subscribers_count":25,"default_branch":"main","last_synced_at":"2025-05-12T13:05:14.872Z","etag":null,"topics":["command-line","developer-tools","file-watchers","linux","macos","rust","windows"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/watchexec.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"liberapay":"passcod"}},"created_at":"2016-09-18T20:41:31.000Z","updated_at":"2025-05-12T06:48:04.000Z","dependencies_parsed_at":"2023-11-25T14:29:31.454Z","dependency_job_id":"a7921e1e-52c3-4eb4-a04f-9c8de3b181f0","html_url":"https://github.com/watchexec/watchexec","commit_stats":{"total_commits":1251,"total_committers":66,"mean_commits":"18.954545454545453","dds":"0.32054356514788174","last_synced_commit":"8b392794237dba93ba337c84421247406db81cff"},"previous_names":["mattgreen/watchexec"],"tags_count":285,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watchexec%2Fwatchexec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watchexec%2Fwatchexec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watchexec%2Fwatchexec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/watchexec%2Fwatchexec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/watchexec","download_url":"https://codeload.github.com/watchexec/watchexec/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253745150,"owners_count":21957317,"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":["command-line","developer-tools","file-watchers","linux","macos","rust","windows"],"created_at":"2024-07-31T03:00:55.549Z","updated_at":"2026-02-23T00:50:20.082Z","avatar_url":"https://github.com/watchexec.png","language":"Rust","readme":"[![CI status on main branch](https://github.com/watchexec/watchexec/actions/workflows/tests.yml/badge.svg)](https://github.com/watchexec/watchexec/actions/workflows/tests.yml)\n\n# Watchexec\n\nSoftware development often involves running the same commands over and over. Boring!\n\n`watchexec` is a simple, standalone tool that watches a path and runs a command whenever it detects modifications.\n\nExample use cases:\n\n* Automatically run unit tests\n* Run linters/syntax checkers\n* Rebuild artifacts\n\n\n## Features\n\n* Simple invocation and use, does not require a cryptic command line involving `xargs`\n* Runs on OS X, Linux, and Windows\n* Monitors current directory and all subdirectories for changes\n* Coalesces multiple filesystem events into one, for editors that use swap/backup files during saving\n* Loads `.gitignore` and `.ignore` files\n* Uses process groups to keep hold of forking programs\n* Provides the paths that changed in environment variables or STDIN\n* Does not require a language runtime, not tied to any particular language or ecosystem\n* [And more!](./crates/cli/#features)\n\n\n## Quick start\n\nWatch all JavaScript, CSS and HTML files in the current directory and all subdirectories for changes, running `npm run build` when a change is detected:\n\n    $ watchexec -e js,css,html npm run build\n\nCall/restart `python server.py` when any Python file in the current directory (and all subdirectories) changes:\n\n    $ watchexec -r -e py -- python server.py\n\nMore usage examples: [in the CLI README](./crates/cli/#usage-examples)!\n\n## Install\n\n\u003ca href=\"https://repology.org/project/watchexec/versions\"\u003e\u003cimg align=\"right\" src=\"https://repology.org/badge/vertical-allrepos/watchexec.svg\" alt=\"Packaging status\"\u003e\u003c/a\u003e\n\n- With [your package manager](./doc/packages.md) for Arch, Debian, Homebrew, Nix, Scoop, Chocolatey…\n- From binary with [Binstall](https://github.com/cargo-bins/cargo-binstall): `cargo binstall watchexec-cli` \u003c!-- this line does NOT contain a typo --\u003e\n- As [pre-built binary package from Github](https://github.com/watchexec/watchexec/releases/latest)\n- From source with Cargo: `cargo install --locked watchexec-cli`\n\nAll options in detail: [in the CLI README](./crates/cli/#installation),\nin the online help (`watchexec -h`, `watchexec --help`, or `watchexec --manual`),\nand [in the manual page](./doc/watchexec.1.md).\n\n\n## Augment\n\nWatchexec pairs well with:\n\n- [checkexec](https://github.com/kurtbuilds/checkexec): to run only when source files are newer than a target file\n- [just](https://github.com/casey/just): a modern alternative to `make`\n- [systemfd](https://github.com/mitsuhiko/systemfd): socket-passing in development\n\n## Extend\n\n- [watchexec library](./crates/lib/): to create more specialised watchexec-powered tools.\n  - [watchexec-events](./crates/events/): event types for watchexec.\n  - [watchexec-signals](./crates/signals/): signal types for watchexec.\n  - [watchexec-supervisor](./crates/supervisor/): process lifecycle manager (the _exec_ part of watchexec).\n- [clearscreen](https://github.com/watchexec/clearscreen): to clear the (terminal) screen on every platform.\n- [command group](https://github.com/watchexec/command-group): to run commands in process groups.\n- [ignore files](./crates/ignore-files/): to find, parse, and interpret ignore files.\n- [project origins](./crates/project-origins/): to find the origin(s) directory of a project.\n- [notify](https://github.com/notify-rs/notify): to respond to file modifications (third-party).\n\n### Downstreams\n\nSelected downstreams of watchexec and associated crates:\n\n- [cargo watch](https://github.com/watchexec/cargo-watch): a specialised watcher for Rust/Cargo projects.\n- [cargo lambda](https://github.com/cargo-lambda/cargo-lambda): a dev tool for Rust-powered AWS Lambda functions.\n- [create-rust-app](https://create-rust-app.dev): a template for Rust+React web apps.\n- [dotter](https://github.com/supercuber/dotter): a dotfile manager.\n- [ghciwatch](https://github.com/mercurytechnologies/ghciwatch): a specialised watcher for Haskell projects.\n- [tectonic](https://tectonic-typesetting.github.io/book/latest/): a TeX/LaTeX typesetting system.\n","funding_links":["https://liberapay.com/passcod"],"categories":["Applications","Rust","Command Line","应用程序 Applications","Related Tools","Command Line Tools","DevShit","Command Line Apps","应用","应用 Applications","windows","Other","\u003ca name=\"file-watch\"\u003e\u003c/a\u003eFile watching for changes","Table of Contents"],"sub_categories":["System tools","Dependency Management","系统工具 System tools","Windows CLI apps","系统工具","Dev Tools"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwatchexec%2Fwatchexec","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwatchexec%2Fwatchexec","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwatchexec%2Fwatchexec/lists"}