← ClaudeAtlas

file-watcherlisted

Configure file watching hooks to auto-react to config changes, env file updates, and dependency modifications. Use to set up reactive workflows.
rohitg00/pro-workflow · ★ 2,259 · Data & Documents · score 83
Install: claude install-skill rohitg00/pro-workflow
# File Watcher Use Claude Code's `FileChanged` and `CwdChanged` hooks to create reactive workflows that respond to file system changes. ## Trigger Use when: - Setting up auto-reload for config changes - Watching for dependency updates - Monitoring build output - Creating reactive development workflows ## How File Watching Works Claude Code's `SessionStart` and `CwdChanged` hooks support returning `watchPaths` to register file watchers. The current `cwd-changed.js` script focuses on env injection; to add watch registration, your hook script must output this JSON structure: ```json { "hookSpecificOutput": { "hookEventName": "SessionStart", "watchPaths": [ "/absolute/path/to/.env", "/absolute/path/to/package.json" ] } } ``` When watched files change, the `FileChanged` hook fires with: ```json { "hook_event_name": "FileChanged", "file_path": "/path/to/changed/file", "event": "change" } ``` ## Environment Injection `CwdChanged` and `FileChanged` hooks can write to `CLAUDE_ENV_FILE` to inject environment variables into subsequent Bash commands: ```bash echo "export PROJECT_TYPE=node" >> "$CLAUDE_ENV_FILE" echo "export TEST_CMD='npm test'" >> "$CLAUDE_ENV_FILE" ``` ## Common Watch Patterns ### Watch .env for Changes ```javascript const envFile = path.join(projectRoot, '.env'); if (fs.existsSync(envFile)) { output.hookSpecificOutput = { hookEventName: 'SessionStart', watchPaths: [envFile] }; } ``` ### Watch package.json for D