dev-tools 5 min read

unf – Filesystem Flight Recorder for AI Agents

unf records every file change in real time so you can rewind any edit, diff any moment, and recover from AI agent mistakes without git commits.

By
Share: X in
unf filesystem flight recorder product thumbnail

TL;DR

TL;DR: unf is an open-source local daemon that continuously snapshots every file change you make, letting you rewind, diff, and restore files at any point in time — no git commits required.

Source and Accuracy Notes

⚠️ This section is MANDATORY. All links must be verified from actual source, not guessed.

What Is unf?

unf (stylized unf) is a local-first filesystem flight recorder. It runs as a background daemon that watches your project directory and snapshots every file change in real time — whether that change comes from your editor, a script, an AI coding agent, or anything else that writes to disk.

The core pitch: you never have to think about committing again. If you saved it, unf has it. This is particularly valuable in the age of AI agents that can make many rapid edits, some of which you may want to undo.

Key capabilities:

  • Zero-commit workflow — no git overhead, every save is automatically recorded
  • Hardware-level undo — restore any file to its state at any past timestamp
  • Ghost file recovery — recover files that were never tracked by git (e.g. build artifacts, temp files)
  • Minute-by-minute diffs — see exactly what changed between any two time points
  • Per-file timelineunf log <file> shows every saved version of a specific file

Setup Workflow

Prerequisites

  • Rust 1.80+ (if building from source)
  • macOS or Linux (Homebrew/deb packages available)

Install via Homebrew (macOS / Linux)

brew install cyrusradfar/unf/unf

Install via Debian / Ubuntu

curl -fsSLO https://downloads.unfudged.io/releases/v0.18.5/unf_0.18.5_amd64.deb
sudo dpkg -i unf_0.18.5_amd64.deb

For ARM64:

curl -fsSLO https://downloads.unfudged.io/releases/v0.18.5/unf_0.18.5_arm64.deb
sudo dpkg -i unf_0.18.5_arm64.deb

Build from Source

git clone https://github.com/cyrusradfar/homebrew-unf.git
cd homebrew-unf
cargo build --release
# Binary at target/release/unf

Start Recording

cd ~/my-project
unf watch       # Start recording file changes

Quick Commands

unf log src/main.rs          # See every saved version of a file
unf diff --at "5m"            # What changed in the last 5 minutes?
unf restore --at 10m          # Roll back to 10 minutes ago
unf status                    # Watcher status and snapshot stats
unf config                    # Show storage location and disk usage
unf stop                      # Stop the global daemon

CLI Reference

| Command | Description | |---------|-------------| | unf watch | Start watching the current directory | | unf unwatch | Stop watching the current directory | | unf status | Watcher status and recent snapshot stats | | unf log <file> | Timeline of all recorded versions | | unf diff --at <time> | Show changes since a point in time | | unf restore --at <time> | Roll back to a point in time | | unf cat --at <time> <file> | Print file contents at a point in time | | unf list | List all watched projects | | unf prune --older-than <time> | Remove old snapshots | | unf config | Show storage location and disk usage | | unf stop | Stop the global daemon | | unf restart | Restart the global daemon |

Deeper Analysis

Why This Matters for AI Agent Workflows

AI coding agents (Claude Code, Codex, etc.) can generate and apply many file changes rapidly. When something goes wrong — a botched refactor, an unwanted deletion — git may not have captured the intermediate state you need. unf fills this gap by maintaining a continuous, timestamped history of every file write, independent of version control.

Local-First Architecture

unf stores all snapshots locally on your machine. No cloud account, no sync service. The daemon runs in the background and records changes as they happen. This makes it suitable for projects with sensitive code that should not leave the machine.

Storage Management

Snapshots accumulate over time. The unf prune command removes snapshots older than a configurable threshold. The unf config command shows current disk usage so you can monitor growth.

Practical Evaluation Checklist

  • [ ] Installs via Homebrew on macOS without errors
  • [ ] unf watch starts daemon and begins recording changes
  • [ ] unf log shows timestamped history for a modified file
  • [ ] unf diff --at correctly shows changes since the specified time
  • [ ] unf restore --at correctly reverts a file to a past state
  • [ ] Daemon persists across terminal sessions
  • [ ] unf prune successfully removes old snapshots

Security Notes

  • All data stays local — no network transmission of file contents
  • MIT licensed, source available for audit
  • Runs as a local user-space daemon with no elevated privileges required for basic use

FAQ

Q: Does unf replace git? A: No. Git handles intentional, commit-scoped versioning with branching and remote collaboration. unf is a continuous, sub-commit-level history recorder. They are complementary — use git for planned versions, unf for everything in between.

Q: How much disk space does it use? A: It depends on your project size and edit frequency. The unf config command shows current disk usage. Use unf prune --older-than to clean up old snapshots.

Q: Does it work with binary files? A: The README emphasizes text-based files. Binary file support may be limited or excluded.

Q: Is there a desktop GUI? A: There is a separate macOS cask (brew install --cask cyrusradfar/unf/unfudged) for a desktop application interface, separate from the CLI tool.

Conclusion

unf fills a real gap for developers working with AI coding agents or anyone who wants a safety net for file edits without git overhead. It is MIT licensed, installs via Homebrew or deb packages, and stores all data locally. If you have ever made an edit you immediately regretted and wished you could go back, this is worth a try.