Recency-sorted mosaic
Every file is a tile sized to its name and colored by type. A fresh edit jumps its file to the top, and ties fall back to code-first so source never hides under images and archives.
fwatch points at any folder and turns it into a living mosaic. Every file is a tile, ordered by what changed last, colored by type. Edits flash, diffs stream in, and you can scrub back through the whole history.
fwatch is built around one idea: whatever just changed should be the easiest thing to see.
Every file is a tile sized to its name and colored by type. A fresh edit jumps its file to the top, and ties fall back to code-first so source never hides under images and archives.
Editors that save by renaming a temp file or recreating the original would normally look like noise. fwatch folds those back into the real content diff with adds and removes.
The right column keeps a scrollable, newest-first log of git-style diffs. It never auto-clears, so you can scroll back through history, including changes to files that were since deleted.
Flip to a navigable galaxy where files are stars around your repo at the center. Same-folder files cluster, the camera flies to whatever changed, and each dot recolors by action.
On Windows, fwatch shows which files are opened and by which process and user, with a distinct blue glow. Reads by the local web server are grouped on their own toggle so you can include or hide them.
Slow a burst of edits down to a few per second to watch it play out, or scrub the time-based timeline to replay any moment. Hit LIVE to snap back to the present.
One Python process watches the folder, computes diffs, and pushes them to the browser. All the playback logic lives client side.
Native filesystem events through watchdog, or a fast polling fallback when it is not installed.
fwatch reads the changed file and builds a structured diff, coalescing temp-rename and recreate saves.
Changes stream over Server-Sent Events. Plain HTTP, no extra library, low latency to the browser.
The browser lays out the mosaic, draws diffs, and runs the speed and timeline controls with no round trips.
Because speed and time travel run entirely in the browser, scrubbing the timeline or changing playback speed never costs a server round trip. If a slow client drops events, sequence numbers and a history endpoint let it resync without losing its place. Port 80 is usually taken by Apache or similar, so fwatch defaults to 7878.
A filesystem watcher cannot see reads, since opening a file changes nothing on disk. Windows can report them through Security auditing, so fwatch picks them up from there.
When a local web server like Apache, Nginx, PHP, or IIS serves your project, it reads files constantly. fwatch groups those reads separately and hides them by default. Flip the server toggle in the demo to watch the web server fetch assets as you browse.
Reads arrive over a generic endpoint, so a Linux or macOS producer can feed the same data. Only the Windows producer ships today. Common noise like the search indexer and antivirus is filtered by default.
# 1. once, in an elevated PowerShell .\enable_audit.ps1 -Path C:\path\to\project # 2. start the visualizer python fwatch.py C:\path\to\project --open # 3. start the read watcher, alongside it .\fwatch_audit.ps1
One file, one command. fwatch opens your browser and starts watching.
:: watch a project folder and open the browser fwatch.bat C:\path\to\your\project :: or just watch the current folder fwatch.bat
./fwatch.sh /path/to/your/project # or call Python directly python3 fwatch.py /path/to/your/project --open
Then open http://localhost:7878/. fwatch skips noisy folders like .git, node_modules, and __pycache__ by default, plus editor scratch files. Add your own with --exclude, change the port with --port, or see everything with --no-default-excludes.
That is the only hard requirement. fwatch uses only the standard library, so there is nothing else to pull in.
Install it for instant native filesystem events. Without it, fwatch falls back to fast polling and tells you which mode is active.
The mosaic is plain JavaScript with no CDN. The 3D view uses WebGL, with three.js vendored locally.
fwatch is a local tool that watches any folder and draws every file as a tile in a live mosaic in your browser. Tiles are ordered most-recently-changed first and colored by file type. When a file changes, its tile flashes and the real diff lands in a scrollable change log.
Yes. fwatch watches the filesystem, so it shows changes from any program touching the folder: editors, build steps, scripts, formatters, and coding agents. It is not tied to a single tool.
No. fwatch runs on Python 3.8 or newer using only the standard library. The optional watchdog package gives instant native events instead of polling, but it is not required.
Many editors save by writing a temp file and renaming it over the original, or by deleting and recreating the file. fwatch detects these patterns and folds them back into a normal modify diff, so you see the real content change instead of an opaque moved or deleted event.
On Windows, yes. The OS reports reads through Security auditing, so any program or user that opens a file shows up with a blue glow and the reading process and account on hover. Reads by the local web server, such as Apache, Nginx, PHP, or IIS, are grouped separately and hidden by default behind a server toggle.
No. fwatch is a local dev tool. It binds to 127.0.0.1 and serves the interface to your own browser. Nothing leaves your machine.
Run it against a repo mid-build, or while an agent is editing, and watch the activity surface in real time.