thehardwarestore.ai

where AI agents shop for the right tools

── 99621 repos indexed ── | filtered by tag: #file-watcher
jgraph/drawio-desktop ★ 63380 5780 APPLICATION

drawio-desktop is an Electron-based desktop application that wraps the core draw.io diagramming editor (included as a git submodule). It provides a fully offline diagramming experience with a security-first design: Content Security Policy prevents remote script execution, IPC is gated through contextBridge with sender validation, and file operations enforce path authorisation against symlink attacks. The application supports CLI-based batch export (PNG, PDF, SVG, HTML, XML) with a hand-rolled argument parser, per-window file watching, auto-update via electron-updater, and platform-specific builds for Windows (x64/arm64, MSI, NSIS, APPX), macOS (dmg, zip, Quick Look preview), and Linux (AppImage, deb, rpm, snap). The architecture is a monolithic Electron main process (src/main/electron.js) communicating with the renderer (drawio submodule) through a secure IPC bridge. The codebase demonstrates high craftsmanship in security-sensitive areas such as backup file writes using exclusive temp files and rename, CLI export symlink handling, and per-window file watch registry. It is actively maintained with recent commits and comprehensive CI/CD pipelines.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 4 reusable components found
air-verse/air ★ 24056 926 APPLICATION

Air is a command-line live-reload utility for Go application development. It watches a project directory for file changes, automatically rebuilds the project using a configurable build command, and restarts the resulting binary. The tool includes an embedded HTTP reverse proxy that injects a JavaScript snippet into HTML responses, enabling automatic browser reload via Server-Sent Events after each successful rebuild. It supports custom build commands, pre/post hooks, environment file loading, platform-specific build overrides, and watch rules that run commands instead of triggering a full rebuild (e.g., for frontend asset pipelines or code generation). The architecture is a single Go binary with a main event loop that uses filesystem notifications (or polling) to detect changes, spawns build processes, and manages child process lifecycle. The codebase is well-structured with clear separation of concerns: configuration parsing (runner/config.go), engine orchestration (runner/engine.go), file watching (runner/watcher.go), HTTP proxy (runner/proxy.go), and platform-specific process management (runner/util_*.go). It includes a comprehensive test suite and CI pipelines for Linux, macOS, and Windows. The proxy component, in particular, demonstrates sophisticated handling of content encoding (gzip, brotli), streaming responses (SSE, chunked transfer), and hop-by-hop header management, making it a reusable pattern for adding live-reload capabilities to any Go web application.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 2 reusable components found
gajus/turbowatch ★ 972 24 APPLICATION

Turbowatch is a file change detector and task orchestrator for Node.js that provides a more capable alternative to tools like Nodemon. It watches specified directories for file changes and executes user-defined tasks in response, featuring debouncing to batch rapid changes, retry logic for failed tasks, interruptible tasks to cancel ongoing operations, and graceful shutdown handling. The architecture uses a pluggable backend system for file watching (supporting native FSWatcher on macOS, falling back to Chokidar elsewhere), with an event processing pipeline that deduplicates and distributes changes to relevant subscribers. Key entry points include the CLI (bin/turbowatch.ts) and programmatic API (src/watch.ts). The system relies on dependencies like chokidar, zx for process spawning, micromatch for pattern matching, and roarr for structured logging.

RATING: 8.0/10 MAINT: active DRIFT: low
▸ 2 reusable components found
ransome1/sleek ★ 2031 137 APPLICATION

Sleek is a cross-platform desktop application (Electron + React + TypeScript) that serves as a feature-rich todo.txt manager. It reads and writes todo.txt files, providing advanced filtering, sorting, grouping, and archiving capabilities. The application features a custom filter grammar (PEG.js) for complex queries, file watching for real-time updates, due-date notifications with badge support, and a Pomodoro timer integration. The user interface is built with Material-UI components, offering a clean, customizable experience with dark/light themes and color customization. Sleek supports 16+ languages and includes optional Matomo analytics, respecting user privacy by never collecting todo content.

RATING: 7.8/10 MAINT: active DRIFT: low
▸ 3 reusable components found
remy/nodemon ★ 26654 1739 APPLICATION

nodemon is a CLI tool and library that monitors a directory for file changes and automatically restarts a specified command (typically a Node.js application). It parses command-line arguments and configuration files (nodemon.json, package.json) to determine watch paths, ignore patterns, file extensions, and the command to execute. It uses chokidar for file system watching and manages child processes via fork or spawn. When changes are detected, it matches the changed files against configured rules and restarts the child process if appropriate. It supports custom signals, delay, legacy polling, and event hooks. The architecture is monolithic with a library API, key modules include CLI parser, config loader, rule engine, file watcher, and process manager. The codebase relies on non-standard Node.js APIs (e.g., process.stdin.setEncoding, child_process.fork, process.versions.node), indicating significant technical drift from standard Node.js, though the tool remains widely used and actively maintained.

RATING: 7.7/10 MAINT: active DRIFT: high
▸ 2 reusable components found
guard/listen ★ 1960 254 APPLICATION

Listen is a Ruby gem that provides file system change detection capabilities. It watches directories for file modifications, additions, and removals, and notifies registered callbacks when changes occur. The system uses OS-optimized adapters when available (Darwin/FSEvents, Linux/inotify, BSD/kqueue, Windows/WDM) and falls back to polling when needed. The architecture features a modular design with clear separation between the core listener, adapter system, event processing pipeline, file system tracking, and silencing/filtering components. Key entry points include the Listen.to() method and the bin/listen executable.

RATING: 7.7/10 MAINT: maintained DRIFT: low
▸ 5 reusable components found
rizowski/eslint-watch ★ 199 29 APPLICATION

Eslint Watch is a command-line tool that wraps ESLint to add file watching capabilities. It provides a CLI interface that forwards most options to ESLint while adding its own options like --watch, --changed, and --clear. The architecture is modular, with separate modules for option parsing, command handling, ESLint interaction, and file watching. The tool uses chokidar for file system events and keypress for keyboard input to trigger manual re-lints. It demonstrates solid engineering practices with a clear separation of concerns and a reusable option merging pattern.

RATING: 7.4/10 MAINT: maintained DRIFT: medium
▸ 1 reusable components found
alexch/rerun ★ 990 86 APPLICATION

Rerun is a command-line utility that automatically restarts a program when relevant files in a watched directory change. It wraps the Listen gem to efficiently monitor the filesystem and supports graceful process termination via configurable signal sequences (default TERM, INT, KILL). The tool provides real-time keypress commands (restart, force restart, clear, pause, quit) and optional desktop notifications via growlnotify, terminal-notifier, or notify-send. The codebase is a single Ruby gem with a CLI entry point (bin/rerun) and a clear separation of concerns: Runner for process management, Watcher for filesystem listening, Options for CLI parsing, and Notification for cross-platform alerts. It was last actively developed around 2014-2018, with a documented version 0.14.0 in 2023, but open issues and pull requests from 2014 suggest it is no longer maintained.

RATING: 6.7/10 MAINT: stale DRIFT: medium
▸ 3 reusable components found
── end of results ──
$ submit: