A filesystem backed by PostgreSQL, and a filesystem interface to PostgreSQL. TigerFS mounts a database as a directory. Every file is a real row. Writes are transactions. Multiple agents and humans can read and write concurrently with full ACID guarantees, locally or across machines. Any tool that works with files works out of the box.
When agents run on different machines, there's no shared workspace. And even locally, agents can interfere. Coordinating through files means no transactions, no history, and no structure. Git requires pull, push, and merge. S3 has no transactions. Custom coordination APIs have to be built and maintained.
There's a better way.
The ease of a filesystem, the semantics of a database.
Filesystem paths map to SQL queries. Writes are transactions. The filesystem becomes the API.
Write markdown, organize into directories, build lightweight apps on top of the filesystem. Writes are atomic and everything is auto-versioned. Works with Claude Code, Cursor, grep, vim, and anything else that works with files.
See file-first use cases →Mount any existing Postgres database and navigate it the same way you navigate directories. Read rows, filter by index, chain queries into paths. The interface your agents already know maps directly onto your data.
See data-first use cases →# agent A writes research findings cat > /mnt/db/kb/auth-analysis.md << 'EOF' --- author: agent-a --- OAuth 2.0 is the recommended approach... EOF # agent B reads immediately. no sync. no pull. cat /mnt/db/kb/auth-analysis.md
# agent claims a task atomically mv /mnt/db/tasks/todo/fix-auth-bug.md \ /mnt/db/tasks/doing/fix-auth-bug.md # see what everyone is working on ls /mnt/db/tasks/doing/ grep "author:" /mnt/db/tasks/doing/*.md
# browse the full edit trail ls /mnt/db/docs/.history/proposal.md/ # see what changed in the last edit diff /mnt/db/docs/.history/proposal.md/2026-02-25T100000Z \ /mnt/db/docs/proposal.md
# update a single column echo 'new@example.com' > /mnt/db/users/123/email.txt # update a full row via JSON echo '{"email":"a@b.com","name":"A"}' > /mnt/db/users/123.json # delete a record rm -r /mnt/db/users/456/ # bulk-load from CSV cat data.csv > /mnt/db/orders/.import/.append/csv
# find shipped orders grep "shipped" /mnt/db/orders/*/status.txt # select specific columns via pipeline cat /mnt/db/orders/.filter/status/shipped\ /.columns/id,total,created_at/.export/csv # sum shipped order totals cat /mnt/db/orders/.filter/status/shipped\ /.columns/total/.export/csv | awk '{s+=$1} END {print s}'
Works with local and cloud-hosted databases, with special Tiger Cloud and Ghost support.
FUSE on Linux, NFS on macOS, and no external dependencies on either platform.