SpindleGuard.

EXPERIMENTAL · BUILT FOR macOS

Give your drives
room to breathe.

AI agents move fast. Mechanical drives have moving parts. SpindleGuard is exploring a more orderly path between the two.

Open-source prototype · C + FUSE · Disposable test data only

THE FIRST PROOF

Mount it. Read through it. Make a competing request wait.

View the result

THE PROBLEM IS PHYSICAL

A million files.
One moving head.

An agent can launch a directory scan, a search and a large read in moments. On a mechanical drive, those competing requests can turn useful work into constant seeking.

The direction is simple: put a broker between applications and storage. Let busy drives finish work while the next request waits its turn.

Many paths on one physical drive should share one queue. That is the destination; this prototype starts with one source tree.

BACKPRESSURE, MADE VISIBLE

A little patience.
A more orderly queue.

When a supported backing operation is active, the next one waits. Try this illustration of the single-queue prototype.

QUEUE WORKBENCHIllustration · no disk access
ApplicationVirtual mountFIFO queueBacking directory
A
Read a large test fileFirst request
Ready
B
Inspect a second fileCompeting request
Ready
ACTIVE OPERATIONS
0/ 1

Ready when you are. Start the demo to follow two requests.

This illustrates request queueing, not a whole-copy reservation.

RECORDED ON A REAL MOUNT

Small proof.
Real backpressure.

Two independent client processes. A FUSE-T mount. Disposable files on an internal SSD. The second file’s metadata request waited while the first file’s reads held the queue.

Read the test evidence
OBSERVED QUEUE WAIT10 SEP 2026
925.935ms

The test deliberately slowed each read callback by 150 ms to expose waiting. This is a functional proof, not an HDD performance benchmark.

All mount tests passed

BUILT IN THE OPEN

Here is where we are.

A first working experiment, with a clear boundary between demonstrated behavior and the larger ambition.

Working today

  • Real macOS mount, reads and permitted writes
  • One FIFO queue around supported operations
  • Read-only default with an explicit write prefix
  • Queue logs and cross-process test evidence
  • Read-only APFS physical-device lookup
Available in the prototype

Next milestone

  • Shared physical-disk queues across roots
  • Copy-job reservations and cancellation
  • Agent confinement that prevents bypass
  • Scan limits, priorities and bandwidth controls
Planned · not implemented

Further out

  • An SSD-backed file index and metadata cache
  • Search without another full directory walk
  • Per-agent policies and process attribution
  • A view of every drive and its pending work
Future direction

FOR BUILDERS, TINKERERS & STORAGE PEOPLE

Help build a calmer
path to storage.

Inspect the code, reproduce the queue test, or contribute to the next milestone. The project code is GPL-2.0-or-later; the FUSE-T runtime has its own license.

Open SpindleGuard on GitHub

Try the first proof

  1. Prepare a MacApple Command Line Tools, Python 3 and FUSE-T.
  2. Get the projectClone or download the public repository to internal storage.
  3. Run the testsBuild, mount disposable files and inspect the queue logs.
Read the installation guide