Watchman exists to watch files and record when they change. It can also trigger actions (such as rebuilding assets) when matching files change. It can recursively watch one or more directory trees. It does not follow symlinks. It knows they exist, but they show up the same as any other file in its reporting. You can query a root for file changes since you last checked, or the current state of the tree. You can subscribe to file changes that occur in a root.