Windows
Free to install. It starts the service with Windows and puts antifind on your path. Buy the licence on antisoftworks.com.
AntiFind arrives in the Microsoft Store soon.
A search never walks your drive.
AntiFind reads the disk's own file table once and keeps every file name in memory. It follows each change as it is made. A folder walk made 29,000 to 103,000 drive reads for a million names.
Use command-line or GUI. It is up to you.
Download and try it free for 14 days Buy a licence, EUR 19
14 days to try · no registration · no ads
Version 1.1.0,
Free to install. It starts the service with Windows and puts antifind on your path. Buy the licence on antisoftworks.com.
AntiFind arrives in the Microsoft Store soon.
For 64-bit PCs with kernel 5.17 or newer. Check the file against the SHA-256 below; the apt repository in Install keeps it current.
antifind_1.1.0_amd64.deb Install with apt
Updates arrive with apt upgrade.
9c691164edef948e57cb8e4810721152d680019e73cdb02d879a0deb37c2be99$ sudo apt install ./antifind_1.1.0_amd64.deb $ sudo systemctl enable --now antifindd
For 64-bit PCs with kernel 5.17 or newer. Check the file against the SHA-256 below; the antisoftworks pacman repository in Install keeps it current.
antifind-bin-1.1.0-1-x86_64.pkg.tar.zst Install with pacman
Updates arrive with pacman -Syu.
f41b5c7a543232762838ece5760f06661e8e74269500af787e4e752a6c316fcb$ sudo pacman -U ./antifind-bin-1.1.0-1-x86_64.pkg.tar.zst $ sudo systemctl enable --now antifindd
SHA256SUMS and its signature SHA256SUMS.asc, for every file above.
Every version stays downloadable at the same address, for good. Check each file against its SHA-256 before you run it.
| Version | Date | Files and SHA-256 |
|---|---|---|
| 1.0.5 | antifind_1.0.5_amd64.deb7ee4ff73f56b324fab2f016c14187467e2fa9847d9e3f693026be436ed8f5bfcantifind-bin-1.0.5-1-x86_64.pkg.tar.zst a487d36130bd60f1aa08d5dd7b0e080d083d390c412cd03979226415120eb1c4 |
Milliseconds where other tools take seconds.
Each tool searched 10 million files for names containing readme and printed every match. Median of 30 warm runs.
Other tools walk folder by folder on every search, which is the slow part. AntiFind reads the drive's file table in one fast pass, then follows each change as it is made.
Walks the whole disk on every search. Seconds to minutes.
Fast, but it only knows what existed at the last nightly update.
Milliseconds. It reads the file table in one fast pass, then follows every change, so a new file is found 8 to 14 ms after it is made.
AntiFind is an instant file search for Linux and Windows. It reads the disk's own file table once and follows every change after that.
Every search answers from memory, on every filesystem. What differs is how the names are read the first time and how they stay current.
| Drive | Instant | Live |
|---|---|---|
| NTFS | Yes | Yes |
Also indexed: FAT32 and exFAT.
| Disk | Instant | Live | From Windows |
|---|---|---|---|
| ext4 | Yes | Yes | read-only |
| XFS | Yes | Yes | read-only |
| btrfs | Yes | Yes | read-only |
| ext2 · ext3 | Yes | Yes | Being checked |
Also indexed: F2FS, FAT12, FAT16, FAT32 and exFAT.
| Disk | Instant | From Windows |
|---|---|---|
| APFS | Yes | read-only |
| HFS+ | Yes | read-only |
| Pool | Instant | From Windows |
|---|---|---|
| ZFS | Yes | read-only |
Every one is instant. Changes appear live, as each system reports them. Linux and Mac disks are read from Windows too, read-only. Encrypted volumes and dRAID pools are skipped.
On Linux, AntiFind reads ext2 and ext3 straight from their file tables, just as it reads ext4.
| Where | Filesystem | How the names are read | Live updates |
|---|---|---|---|
| Linux | btrfs | Straight from the filesystem trees, on all cores | Yes, from the kernel |
| Linux | ext2, ext3, ext4 | Straight from the inode tables and folders | Yes |
| Linux | XFS | Straight from the inode trees and folders | Yes |
| Linux | F2FS | Straight from the node blocks and folders | Yes |
| Linux | NTFS (the ntfs3 driver) | Straight from the $MFT | Yes |
| Linux | FAT12, FAT16, FAT32 | Straight from the allocation tables | Yes |
| Linux | exFAT | Straight from the allocation tables | Read again every two minutes |
| Linux | Any other local filesystem | Folder by folder, in parallel | Where the kernel reports changes |
| Linux | FUSE, NFS, SMB, sshfs, rclone | Read live with --slow (slow drives) | Live, on each search |
| Windows | NTFS | Straight from the $MFT | Yes, from the change journal |
| Windows | FAT32, exFAT | Straight from the allocation tables | Yes |
| Windows | Network drives | Only with --slow, read live | Live, on each search |
| Windows | Linux, Mac and ZFS disks (ext4, XFS, btrfs, HFS+, APFS, ZFS) | Read straight from the disk, read-only. Each Linux volume is a drive Linux1, each Mac volume Mac1, each ZFS dataset Zfs1, and so on. Administrators only. Encrypted volumes: refused. The disk is only read. | Read again when the disk has been used elsewhere |
A direct read is compared with the mounted volume's own view, and what changed during the read is read again through the kernel; so the disk stays usable. With a cold cache a folder scan waits for the disk, so the direct readers matter most on spinning disks.
Never before has search been this fast.
AntiFind was measured against find, fd and plocate on one development computer. Every tool searched the same filesystem for the same question: every name that contains readme, every match printed. Median of 30 runs with a warm cache:
| Files | AntiFind | plocate | fd | find |
|---|---|---|---|---|
| 10 million, btrfs | 177 ms | 1.90 s | 1.15 s | 17.2 s |
| 4.5 million, /home on btrfs | 27 ms | 151 ms | 522 ms | 8.15 s |
| 1.8 million, / on btrfs | 7.9 ms | 25 ms | 145 ms | 2.22 s |
| 1.1 million, NTFS | 5.4 ms | 25 ms | 147 ms | 2.48 s |
| 160 000, ext4 | 1.8 ms | 5.7 ms | 26 ms | 255 ms |
One search feels instant in any fast tool, so the difference matters when a program runs searches thousands of times. For 10,000 searches across 1.8 million files on btrfs, AntiFind takes about 80 seconds at 7.9 ms each, plocate about 4 minutes at 25 ms each, and fd about 24 minutes at 145 ms each. A script, build tool or other program that calls find the same way spends about 6 hours at 2.22 s per search, so every millisecond saved gives that time back to the work.
A new file can be found 8 to 14 ms after it is made; plocate finds it after its next updatedb, which took
17.6 s for the 10 million files. Every tool found the same files. The index costs about 80 bytes per name, so 11 million names take
under 1 GB, and it is saved every ten minutes, so after a restart the service answers within about 2 seconds.
Where another tool wins, the numbers show it: plocate was faster in two of 25 measurements (a regular expression on the
10 million files, 271 ms against 359 ms, and one extension search on the ext4 disk, 7.7 ms against 9.6 ms), its database is smaller,
and index-free tools run on demand, using memory only during each search. The method and every number are in the benchmark notes.
| Feature | AntiFind | Everything | FSearch | locate | Windows Search |
|---|---|---|---|---|---|
| Windows | ✓ | ✓ | – | – | ✓ |
| Linux | ✓ | – | ✓ | ✓ | – |
| Reads the disk directly | ✓ 10 filesystems | ✓ NTFS | – scans folders | – scans folders | – crawls |
| Changes appear at once | ✓ 8 to 14 ms | ✓ | – rescan | – nightly | – behind |
| Linux and Mac disks from Windows | ✓ search and copy | – | – | – | – |
| Desktop app and command line | ✓ both | ✓ both | app | command line | app |
Compared with the tools' published descriptions, October 2026. Where another tool does better, the benchmark notes say so.
Type cafe and AntiFind finds café, so accents are optional when you type. Turn on Match accents, or add accents: to a search when the difference matters, such as résumé and resume. Arabic and Hebrew read right to left, and Chinese, Japanese, Korean, Thai and Hindi use the right fonts.
What you type, and what it finds
Click any picture to see it larger.
Results appear as you type. Filters sit in chips you can switch off. Thumbnails show pictures, and each result opens or shows its folder.
17 searches come built in, one click each. Make your own in a small editor, with filters, templates and sorting. The same searches run from the command line: af saved:name. In PowerShell, quote a bare name as '@name'.
@big@changed@recent@downloads@documents@pictures@videos@audio@archives@code@empty-files@empty-folders@duplicates@old-downloads@logs@executables@large-foldersEvery change on your disks, as it happens. Each kind has its own colour, and you can filter the list or pause it to read.
Each file made, changed, renamed or deleted appears at once, in a list you can filter, pause and open files from.
What changed, and when. Changes are grouped by time and folder, and you can mark a moment, such as before you install something.
Changes from the last 30 days are kept through restarts, so you can ask what changed since a time you pick, since you logged in, or since a pacman or apt install or removal.
When a matching file appears or changes, AntiFind can notify you, run your own program, copy it, move it, open it, open a web address or open it in AntiPDF. Test a rule first, then see what each rule did.
Act when a file appears: send a notification, start your own program, move or copy it. You confirm a preview first, and every run is logged and can be copied.
Where your space goes: a ring and a list you can drill into, split by file type.
Growth over time, the biggest folders and files. One click into any folder shows what fills it.
Find duplicate files, empty folders, huge folders and forgotten downloads in one click. The terminal runs the same searches, such as af saved:duplicates.
$ af saved:duplicates 2 copies, 3.9M each: beach-01.jpg /home/user/Downloads/beach-01.jpg /home/user/Pictures/Holiday/beach-01.jpg 2 copies, 52.7K each: report-2026.docx /home/user/Documents/Work/report-2026.docx /home/user/Downloads/report-2026.docx
Every drive is read straight from its file table and kept up to date. Slow drives, such as network shares and cloud drives, join a search only when you ask. A search reads the index, and a file downloads only when you open it.
Right-click a result and choose Open in AntiPDF to read or convert it. The item shows once AntiPDF is installed.
Attach any result to the mail you are writing. The item shows once AntiMail is installed.
Open, show in folder, copy and delete, all from the same menu.
AntiFind has two parts: a small service, antifindd, that reads every file name in one fast pass, keeps them in memory and follows every change, and the
program you type, af. Install the package, start the service, and check it.
On Linux you need kernel 5.17 or newer. The first start reads your drives once, a few seconds per million files, and the app shows "indexing" meanwhile.
Anti Softworks runs a signed pacman repository, and pacman -Syu keeps AntiFind current.
$ curl -fsSL https://antisoftworks.com/downloads/antifind/1.0.0/antifind-release-key.asc | sudo pacman-key --add - $ sudo pacman-key --lsign-key 6C78ACF1599963181DA6EF5A31CC7A53A920C257 $ printf '\n[antisoftworks]\nServer = https://antisoftworks.com/downloads/antifind/arch/$arch\n' | sudo tee -a /etc/pacman.conf $ sudo pacman -Syu antifind-bin $ sudo systemctl enable --now antifindd $ af --status
Anti Softworks runs the apt repository. Add its key and the source line once; after that apt upgrade keeps AntiFind current.
# the key, then the source line, then the package $ curl -fsSL https://antisoftworks.com/downloads/antifind/apt/antisoftworks-archive-keyring.gpg | sudo tee /usr/share/keyrings/antisoftworks.gpg > /dev/null $ echo 'deb [signed-by=/usr/share/keyrings/antisoftworks.gpg] https://antisoftworks.com/downloads/antifind/apt stable main' | sudo tee /etc/apt/sources.list.d/antisoftworks.list $ sudo apt update && sudo apt install antifind $ sudo systemctl enable --now antifindd $ af --status
The files for version 1.1.0 are in the download section above, and their checksums are in SHA256SUMS. The Linux archive holds the programs, the systemd unit, the man pages and the shell integration; Windows arrives in the Microsoft Store soon.
AntiFind arrives in the Microsoft Store soon, free to install. It starts the service with
Windows, and it puts af on your path, so you can open PowerShell or Windows Terminal and type it.
Buy the licence on antisoftworks.com, then enter it with af --licence KEY or in the app.
af --status shows the service, how many names it holds, which filesystems it reads and when the index was built.
The first index takes seconds to a minute, depending on the disk, and you can search while it is built: the filesystems that are
done answer at once.
$ af --status AntiFind service 1.0.0: ready Names: 1 842 311 in 3 filesystems Index built 41 s ago, in 6.2 s Clients connected: 1
AntiFind is built for scripts and AI assistants as well as for people. af --help --json gives an assistant every option, the query syntax and the exit codes in one JSON document, so it knows exactly how to use it. Results stream as one JSON object per line with --jsonl, in a documented, versioned format; --limit N caps them, and -0 feeds xargs safely. Errors are one line, or JSON with --json, and the exit codes are fixed: 0 found, 1 nothing found, 2 error, 3 licence needed.
Here is one afternoon with AntiFind, start to finish. Type af or the full name antifind: both run the same program. Each comment says what the next command does. The lines below it are what
AntiFind really answered, on a small demo folder made for this page.
# Part of a name is enough. Case is ignored. $ af report /home/user/Documents/Work/report-2026.docx /home/user/Documents/Work/report-draft.md # A star makes it a wildcard, and then the whole name must match. Quote it. $ af 'invoice*.pdf' /home/user/Documents/Taxes/2026/invoice-0412.pdf /home/user/Downloads/invoice-march.pdf # A folder limits the search to what lies below it. A dot is the folder you are in. $ cd ~/Downloads $ af -e zip . /home/user/Downloads/installer.zip /home/user/Downloads/old-installer.zip # Filters combine. PDFs over 1 MB, changed in the last week, anywhere in the home folder. $ af -e pdf -S +1M --changed 7d ~ /home/user/Downloads/printer-manual.pdf # What is eating the disk? Folder sizes come from the index. $ af du ~ -d 1 -t 4 SIZE ON DISK FILES SHARE FOLDER 2.0G 2.0G 22 ████████████████ 100% /home/user 1.9G 1.9G 2 ███████████████░ 93% Videos 98.7M 98.7M 4 █░░░░░░░░░░░░░░░ 5% Downloads 29.6M 29.6M 1 ░░░░░░░░░░░░░░░░ 1% Music # A search worth keeping. Save it, then run it with one more word. $ af --save pics -e jpg -e png ~/Pictures Saved. Use it with: antifind @pics $ af saved:pics sunset /home/user/Pictures/Holiday/sunset.png # Before installing something, note the time. $ af --mark before-install Marked before-install at 12:08:01. Later: antifind --since-mark before-install # Afterwards: what did the installer change? Grouped by folder, one line per file. $ af changes before-install.. -e md ~/Documents ~/Projects /home/user/Documents/Work (1 file, 1 change) 12:08:02 > report-draft.md -> report-final.md renamed /home/user/Projects/notes (1 file, 1 change) 12:08:02 ~ ideas.md modified; 2.9K -> 2.9K (+5)
af PATTERN [FOLDER]. A plain pattern matches every name that contains it, ignoring
case. With a wildcard, the whole name must match. Quote patterns that hold a star, because the shell would otherwise expand
them before AntiFind sees them (see shell integration below to type them bare).
$ af report # names that contain "report" $ af 'invoice*.pdf' # a wildcard: the whole name must match $ af '*.pdf' . # PDFs below this folder $ af 'report-?????.md' # ? is exactly one character $ af -s README # -s matches upper and lower case exactly $ af -c -e pdf # -c: only the number of matches 6
A folder limits the search to what lies below it, and . is the folder you are in. By default, AntiFind searches the
system disk: / and the mounts on the same disk, such as /home and /boot. Other disks, USB sticks and memory
filesystems are added with -a, or by naming a folder on them.
$ af -e jpg -e png ~/Pictures # a folder after the pattern /home/user/Pictures/Holiday/beach-01.jpg /home/user/Pictures/Holiday/beach-02.jpg /home/user/Pictures/logo.png /home/user/Pictures/Holiday/sunset.png $ cd ~/Projects && af -e md . # a dot: the folder you are in /home/user/Projects/notes/ideas.md $ af -d 1 -t d ~ # only one level below, only folders /home/user/Documents /home/user/Downloads /home/user/Music /home/user/Pictures /home/user/Projects /home/user/Videos
Filters combine, and the pattern may be left out when you use one: af -e pdf .
| Option | Meaning |
|---|---|
-e pdf | Extension. Repeat for more: -e jpg -e png |
-t f -t d -t l | Files, folders, links |
-S +1G -S -10k | At least 1 GB; at most 10 KB |
--changed 10m | Changed in the last ten minutes (also 2h, 3d, 1w, or a date such as 2026-01-31) |
--changed-before 2d | Changed longer ago than two days |
-i -s | Ignore case (the default); match case exactly |
-x | Stays on one disk: mounts below the folders are skipped |
-a | Every indexed filesystem, all disks |
-d 2 | At most two levels below the folders |
$ af -t d node_modules ~ # -t: f files, d folders, l links /home/user/Projects/site/node_modules $ af -S +1G -a # -S: +1G at least, -10k at most; -a: every disk /home/user/Videos/holiday-2026.mp4 $ af --changed 10m ~ # changed in the last ten minutes $ af --changed-before 1y -t f ~ # untouched for a year /home/user/Downloads/old-installer.zip $ af -x -e pdf ~ # -x: stays on one disk, mounts below ~ are skipped $ af -i REPORT ~ # -i: ignore case (the default) /home/user/Documents/Work/report-2026.docx /home/user/Documents/Work/report-draft.md $ af --print-query -e pdf . # show the query words a command line makes ext:pdf under:"/home/user"
Behind the short options are query words that you can also write yourself: ext:png;jpg, size:>5mb,
dm:last7days, regex:, owner:, perm: and more. | is or, ! excludes, quotes keep a phrase together.
man antifind lists them all.
Keep a search with --save and run it as af saved:name. In bash, zsh and fish, af @name works too. In PowerShell, write af saved:name, or quote the name as '@name'. You can add more words or folders if you like. A template has parameters
with defaults, checked by type (size, duration, folder, extension list). Each run goes straight to the program, skipping the shell. A search that calls itself is refused.
Built in: big, changed, recent, downloads, documents, pictures, videos, audio, archives, code, empty-files, empty-folders, duplicates,
old-downloads, logs, executables, private and large-folders, plus watch searches for the places that matter on a system.
af --copy NAME NEW copies one so you can edit it; --forget NAME removes one of yours.
$ af --save pics -e jpg -e png ~/Pictures Saved. Use it with: antifind @pics $ af saved:pics sunset # run it, with one more word /home/user/Pictures/Holiday/sunset.png $ af --saved # the built-in searches and mine Built in (read-only; copy one with: antifind --copy NAME NEWNAME) @big Files of at least a size, in a folder (default 1G in your home folder). parameters: size=1G folder=~ @changed Files changed within a time span (default the last 7 days). parameters: since=7d folder=~ @duplicates Files with the same name and size (at least minsize), listed in groups. parameters: minsize=1k folder=~ $ af saved:big size=500M folder=~/Videos # a template with parameters /home/user/Videos/holiday-2026.mp4 /home/user/Videos/talk.mkv $ af saved:duplicates 2 copies, 3.9M each: beach-01.jpg /home/user/Downloads/beach-01.jpg /home/user/Pictures/Holiday/beach-01.jpg 2 copies, 52.7K each: report-2026.docx /home/user/Documents/Work/report-2026.docx /home/user/Downloads/report-2026.docx # my own template: {size} and {folder} become parameters $ af --save mybig 'type:file size:>={size} {folder}' --param size=size:1G --param folder=folder:~ Saved. Use it with: antifind @mybig $ af saved:mybig size=500M folder=~/Videos
af changesThe service keeps a history of created, changed, renamed and deleted files for 30 days, names and metadata only, and you see only
what you may list yourself. changes takes a time range, written the way you would say it, then any normal search option.
Ranges: 10:00..10:30, yesterday, today 14:00.., last 15m, since boot, since login, a day
such as 2026-10-18, a weekday, or a mark. Kinds: --created --modified --renamed --deleted --moved, which you can combine.
A file made and then deleted shows once, with its story. --json, -0 and -c work too.
$ af changes last 1h --deleted ~ /home/user/Downloads (1 file, 1 change) 12:08:02 - old-installer.zip deleted; was 45.8M $ af changes today --renamed /home/user/Documents/Work (1 file, 1 change) 12:08:02 > report-draft.md -> report-final.md renamed $ af changes last 1h --flat 12:08:02 + /home/user/Downloads/setup-tool-1.4.deb created; 2 12:08:02 + /home/user/Downloads/dataset.csv created; 8.6M 12:08:02 > /home/user/Documents/Work/report-draft.md -> /home/user/Documents/Work/report-final.md renamed 12:08:02 - /home/user/Downloads/old-installer.zip deleted; was 45.8M 12:08:02 ~ /home/user/Projects/notes/ideas.md modified; 2.9K -> 2.9K (+5) $ af changes today --grew +5M --flat 12:08:02 + /home/user/Downloads/dataset.csv created; 8.6M $ af changes yesterday '*.log' -S +10M # other days and every search option work too $ af changes 10:00..10:30 -e conf /etc
A mark is a name for a moment. Make one before you install something, and ask what changed since. The service makes marks by
itself at boot, at login and at each package-manager transaction (pacman, apt), so changes install.. and changes since boot work
on their own.
$ af --mark before-install Marked before-install at 12:08:01. Later: antifind --since-mark before-install $ af --since-mark before-install 12:08:02 + /home/user/Downloads/setup-tool-1.4.deb 12:08:02 + /home/user/Downloads/dataset.csv 12:08:02 > /home/user/Documents/Work/report-draft.md -> /home/user/Documents/Work/report-final.md 12:08:02 - /home/user/Downloads/old-installer.zip 12:08:02 ~ /home/user/Projects/notes/ideas.md $ af changes before-install.. # the same, grouped by folder
--watch streams what is created, changed, renamed and deleted, as it happens. --since 10m first replays the last
ten minutes. --live keeps a list of the newest changes, one line per file, redrawn in place on a terminal and plain when you pipe it.
$ af --watch -e pdf ~/Documents # follow changes as they happen; Ctrl+C ends it 12:09:07 + /home/user/Documents/invoice-april.pdf 12:09:07 ~ /home/user/Documents/invoice-april.pdf $ af saved:recent --live # the newest changes, redrawn in place $ af saved:system-changes --live # what changes in hosts, startup, services, cron
duThe same index answers how big folders are, in milliseconds, with what the files say and what they occupy on disk. Files with several
names count once. -d sets the depth, -t how many rows, -s the order, --json is for scripts.
$ af du ~ -d 2 SIZE ON DISK FILES SHARE FOLDER 2.0G 2.0G 22 ████████████████ 100% /home/user 1.9G 1.9G 2 ███████████████░ 93% Videos 98.7M 98.7M 4 █░░░░░░░░░░░░░░░ 5% Downloads 29.6M 29.6M 1 ░░░░░░░░░░░░░░░░ 1% Music 10.1M 10.1M 4 ░░░░░░░░░░░░░░░░ 0% Pictures 10.1M 10.1M 3 ░░░░░░░░░░░░░░░░ 0% Pictures/Holiday 1.8M 1.8M 6 ░░░░░░░░░░░░░░░░ 0% Documents 1.7M 1.8M 4 ░░░░░░░░░░░░░░░░ 0% Documents/Taxes
A rule watches a search in some folders and acts: a notification, a program you name (started directly, as a program), a copy
or move, open the file, or call an address on your own network. Rules run in antifind-agent, as you, apart from the service.
Each rule waits until you have read the plain-words preview and confirmed it. Edit a rule, and it asks again.
rules test replays the last hour from the history and only shows what would run. af rules help has the rest.
$ af rules add photos -e jpg,png ~/Downloads --on created --min-size 500k --copy-to ~/Pictures/new Rule photos: When a file is created in /home/user/Downloads that matches "ext:jpg;png under:"/home/user/Downloads"", at least 512000 bytes, and it has stayed unchanged for 2 seconds, it will copy the file to /home/user/Pictures/new (an existing file there is never overwritten). At most 10 times a minute; every try is written to the log with its result. The file that triggered it is never run just because it appeared. $ af rules list photos copy waiting for your confirmation $ af rules test photos # what it would have done in the last hour; only shows it $ af rules confirm photos # on a terminal it asks; each run waits for your yes $ antifind-agent --install-startup # the per-user process that runs the rules, as you
Paths are plain lines, so they pipe. --json gives one object per line, -0 ends each path with a NUL for xargs -0,
--format picks fields ({path} {name} {dir} {ext} {size} {size:h} {mtime} {perm} {owner}), -c counts. Colours stay off
in a pipe, and NO_COLOR is honoured. Exit status: 0 something found, 1 nothing found, 2 an error.
$ af --json -e md ~/Projects {"path":"/home/user/Projects/notes/ideas.md","type":"file","size":3000,"mtime":1792404390,"mode":33188,"perm":"-rw-r--r--","uid":1000,"gid":1000} $ af --format '{size:h} {name}' -e zip ~/Downloads 49.6M installer.zip 45.8M old-installer.zip $ af -0 -e pdf ~/Documents | xargs -0 ls -l # -0: names with spaces are safe $ af nothing-like-this; echo $? 1
Your shell turns *.pdf into file names before AntiFind sees it. One line in ~/.zshrc or ~/.bashrc fixes that, and adds
af as a short name and three helpers: afcd goes to a matching folder, afe opens a matching file in $EDITOR, and
Ctrl+X f turns the word before the cursor into a matching path. With several matches, fzf picks one if you have it; otherwise you get a numbered list.
fish has the same helpers; quote patterns there. AntiFind also spots an expanded pattern, and says so before it searches the wrong names.
$ echo 'source /usr/share/antifind/antifind.zsh' >> ~/.zshrc # bash: antifind.bash $ af *.pdf . # af is short for antifind, and the star can stay bare $ afcd Projects # go to a matching folder $ afe report-draft # open a matching file in $EDITOR $ ls invoice<Ctrl+X f> # turns the word before the cursor into a matching path
Cloud drives (rclone and other FUSE mounts) and network drives (NFS, SMB, sshfs) are read only when you ask.
Naming a folder on one explains why, then waits. --slow walks it live and gently, with your own rights, after the matches from the index, and every run starts fresh.
$ af report ~/OneDrive ~/OneDrive is a cloud drive (rclone, over the network). Searching it reads it over the network, which is slow and may download files. Add --slow to search it anyway. $ af --slow report ~/OneDrive # walked live, gently, with your own rights; every run starts fresh
The command line is the same program on Windows. Open PowerShell or Windows Terminal and type it. PowerShell passes *.pdf on as typed,
so you can type it bare. ~ is your profile folder, paths may be typed in any case, and by default a search covers the system drive;
-a covers every drive. The service reads each NTFS drive straight from its master file table and follows it through the change journal.
PS> af --status PS> af invoice*.pdf C:\Users\user\Documents C:\Users\user\Documents\Taxes\2026\invoice-0412.pdf PS> af -e jpg -e png C:\Users\user\Pictures C:\Users\user\Pictures\Holiday\beach-01.jpg C:\Users\user\Pictures\Holiday\sunset.png PS> af -t d node_modules C:\Users\user C:\Users\user\Projects\site\node_modules PS> af -S +100M C:\Users\user C:\Users\user\Videos\holiday-2026.mp4 PS> af -e pdf -S +1M --changed 7d ~ C:\Users\user\Downloads\printer-manual.pdf PS> af -a -e vhdx # every drive, C: and the rest PS> af du C:\Users\user -d 1 PS> af -e pdf c:\users # paths may be typed in any case PS> af --save pics -e jpg -e png ~\Pictures PS> af saved:pics sunset
Everything else on this page, from changes to rules and du, works the same way. Saved searches live in
%APPDATA%\AntiFind. The shell helpers (af, afcd, Ctrl+X f) are for bash, zsh and fish on Linux.
One licence unlocks the service, the command line and the desktop app, on Windows and Linux. The launch price is EUR 19 during the first month after release. After that, the price is EUR 29. Every feature works for 14 days from the first install. Download it and start at once.
The licence is paid once and includes 12 months of updates. After that, an optional update licence costs EUR 12 a year. Versions released before your updates end keep working forever. Renewing is up to you.
You buy the licence on antisoftworks.com/antifind-buy. The payment is handled by Paddle. The receipt shows Anti Softworks (AntiPDF) until Paddle's update. The Microsoft Store version arrives soon and is free to install; the licence is bought on antisoftworks.com.
AntiFind is made by one developer at Anti Softworks, the software part of Heimdall3D. Any support is appreciated.
Support it with a licenceThe service asks the system who is asking, and it returns a path only if that person could list every folder on the way to it. Other people's private folders stay hidden: in results, counts, live lists and folder sizes. AntiFind reads names and metadata only, and your file names stay on your machine. On Linux the service runs under systemd with only the two capabilities it needs and the sandbox options in its unit file; on Windows it answers each request after an access check as the asking user.
Only the trial check and, later, the licence go to antisoftworks.com. The FAQ below says exactly what.
We will never show ads.
Download AntiFind and start at once. For 14 days from the first install every feature works: the service, the
command line and the desktop app. A quiet line in af --status shows the days left, and in the last three days
you get one reminder a day.
Yes, once in a while, during the trial only. The service sends a one-way machine hash to antisoftworks.com and gets back a signed trial token, renewed every 48 hours while the computer is online. The hash is one-way, so it keeps your machine's ID private. Only the hash reaches antisoftworks.com. A name, an email or a file name stays on your machine. A reinstall continues the same trial. If the computer stays offline past the token, AntiFind says plainly that it must reach antisoftworks.com once during the trial. After you buy a licence, the app runs fully offline, with every trial check switched off.
The command line and the app tell you that a licence is needed, and say where to buy it; the command line exits with status 3
so a script notices. The service keeps its index and keeps it current, so all of it is kept: when you enter a licence with
af --licence KEY or in the app, everything works at once.
One licence works on Windows and on Linux, so a computer that boots both needs one. You enter the same key on each system. The terms for more computers are on the buy page.
Cloud drives, NFS, SMB and sshfs shares and other FUSE filesystems are read only on request, because reading them is slow and can download
files. Name a folder on one and AntiFind explains why, then waits. Add --slow and it walks the folder live, gently, with
your own rights, and every run starts fresh. af --status lists them as "not indexed: slow drive". On Windows, UNC paths and mapped
network drives work the same way. Spinning disks that are plugged into the machine are indexed as usual.
On the system disk: / and the mounts on the same disk on Linux, C: on Windows. Add -a for every indexed disk,
or name a folder. af --status shows both groups.
Paddle sells the licence. The receipt shows Anti Softworks (AntiPDF) until Paddle's update, and then it shows Anti Softworks.
This is optional. Sign up only if you want news. A short mail when there is something to tell, a few times a year at most. You choose the topics, and you confirm the address by a link in the first mail.
Install it above, search for a week, look at what changed on your disk. If it is for you, the licence is EUR 19 for everything, on Windows and Linux.