| Crates.io | wachit |
| lib.rs | wachit |
| version | 0.2.2 |
| created_at | 2025-11-17 14:12:13.846164+00 |
| updated_at | 2025-11-28 12:24:02.85463+00 |
| description | Instant rebuilds for your dev workflow |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1936848 |
| size | 37,387 |
View live website here: wachit.dev
Wachit is a lightweight file watcher tool that helps develop applications by automatically restarting the server when file changes in the directory are detected.
Wachit does not require any additional changes to your code or development process. Wachit is a replacement wrapper for your runtime executable. To use wachit, replace your runtime command on the command line when executing your script.
Make sure rust is installed on your system. If not you can refer to the rust Installation instructions here:
cargo install wachit
And wachit will be installed globally to your system path.
Wachit supports multiple language runtimes including Node.js, Python, Go, and Rust (Cargo).
Navigate to your project directory and run the command in the following format:
wachit [wachit options] [target file name]
You can pass multiple options to configure wachit runtime:
--inspect: Enables inspect mode (currently supports Node.js). This will be serialized to node --inspect [provided-file-name].--exec=<RUNTIME>: Specify the runtime executable. Options: NODE, PYTHON, GOLANG, CARGO. Defaults to NODE.--watch=<extensions>: Comma-separated list of file extensions to watch (e.g., --watch=.js,.ts,.json).--ignore=<extensions>: Comma-separated list of file extensions to ignore (e.g., --ignore=.test.js,.spec.ts).# Run a Node.js application
wachit index.js
# Run a Python application
wachit --exec=PYTHON main.py
# Run with Node.js inspect mode
wachit --inspect server.js
# Watch specific file types
wachit --watch=.js,.json --exec=NODE app.js
# Ignore specific file types
wachit --ignore=.test.js,.spec.js index.js
# Run a Go application
wachit --exec=GOLANG main.go
# Run a Rust application
wachit --exec=CARGO
You must provide a target file name. Wachit will use the specified executable (or default to node) to run that file.
If a wachit.json file is present in the current working directory, wachit will prioritize it over any CLI arguments. The configuration file will override all CLI arguments.
{
"executable": "NODE",
"target": "index.js",
"inspect": false,
"watch_list": [".js", ".ts"],
"ignore_list": [".test.js"],
"delay": 2000
}
type Config = {
executable: "NODE" | "PYTHON" | "GOLANG" | "CARGO"; // Runtime executable
target: string; // Target filename with path
inspect: boolean; // Whether to enable inspect mode (Node.js only)
watch_list: string[]; // List of file extensions to watch
ignore_list: string[]; // List of file extensions to ignore
delay: number; // Restart delay in milliseconds (default: 2000)
}
Wachit automatically ignores common directories and files:
node_modules/build/dist/target/ (for Rust projects).next/.git/.vscode/.env.gitignorewachit.json.js, .jsx, .ts, .tsx.py.go.rsWachit is not perfect and that is why it needs talented developers like you to contribute.
If you have a feature suggestion or come across a bug please don't hesitate to open a ticket. I have too much free time on my hands to not go through your ideas and suggestions. If you get my approval on any feature or bugfix, you can contribute with the following steps:
That's all.