The Filesystem Is the API (With TigerFS)

voxadam2 pts0 comments

The Filesystem Is the API (with TigerFS) - by Alex Pliutau

SubscribeSign in

The Filesystem Is the API (with TigerFS)<br>What if the filesystem was backed by a real database?

Alex Pliutau<br>May 27, 2026

Share

Most databases persist data to disk, but the underlying files are usually opaque: binary blobs, internal formats, encrypted pages. You cannot just open a file, edit a few lines, and expect the database state to change.<br>But using the filesystem itself as the source of truth can be surprisingly powerful.<br>For my personal blog, I use Hugo. Articles are just Markdown files in a Git repository. In a way, that already behaves like a tiny database: posts have authors, tags, metadata, version history, collaboration via Git.<br>$ tree

├── about.md<br>├── an-ode-to-logging.md<br>├── benchmark-grpc-protobuf-vs-http-json.md<br>├── books-2025.md<br>├── building-slack-bot-with-go.md<br>├── centrally-collecting-events-in-go-microservices.md<br>├── concurrency-data-race.md

It is simple and ergonomic.<br>But once the number of files grows, searching, indexing, querying, and connecting data becomes painful. Filesystems are not databases.<br>So the obvious question is:<br>What if the filesystem was backed by a real database?

That is exactly what TigerFS does.<br>TigerFS is a filesystem backed by PostgreSQL — and also a filesystem interface to PostgreSQL.<br>Every file becomes a real PostgreSQL row.

Directories become tables.

File contents become columns.<br>Multiple users can concurrently read and write the same files with full ACID guarantees.<br>The filesystem becomes the API.

Sponsor

Agent loop is the most important piece of infrastructure in your workflow right now and for most developers, it’s the one piece they can’t open up. Agent builders have to jump through all the hoops themselves, crafting the infrastructure and tools, testing the harness, while fighting to maintain what they’ve built.<br>Meet Cline SDK : agent harness behind Cline 2.0, fully open-sourced. The same runtime that powers Cline across VS Code, JetBrains, and the CLI is now an npm install away: npm i @cline/sdk . Inspect it, fork it, extend it, ship on it.<br>Best-in-class harness: 74.2% on Terminal-Bench 2.0 with Claude Opus 4.7 ahead of Claude Code (69.4%) and strongest numbers published on open-weight models.

Open model & provider choice: Anthropic, OpenAI, Google, Bedrock, Mistral, or any OpenAI-compatible endpoint.

Real plugin system: Register tools, hooks, commands, providers, message builders. Prototype as a local file, harden into a package. Extend it freely for any of your agent use cases.

Scheduled + event-driven agents: Cron and event specs for PR reviews, dependency checks, coverage audits, changelogs no separate orchestration layer.

Stop building around your agent. Start building on it.<br># Install CLI:<br>npm i -g cline

# Install SDK<br>npm install @cline/sdk

Get Started Today<br>Why this is interesting

This model is especially compelling for AI agents.<br>Agents do not care much about SDKs or dashboards. They love filesystems:<br>ls

cat

find

grep

shell pipelines

TigerFS lets agents work with ordinary files while getting transactional guarantees from PostgreSQL underneath.<br>A workflow system can literally become:<br>todo/ -> doing/ -> done/

Moving files with mv becomes state management.<br>No extra orchestration layer required.

How TigerFS works

TigerFS mounts a PostgreSQL database as a filesystem.<br>On Linux it uses FUSE. On macOS it uses NFS.<br>┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐<br>│ Unix Tools │────▶│ Filesystem │────▶│ TigerFS │────▶│ PostgreSQL │<br>│ ls, cat, │ │ Backend │ │ Daemon │ │ Database │<br>│ echo, rm │◀────│ (FUSE/NFS) │◀────│ │◀────│ │<br>└──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘

TigerFS supports two modes:<br>File-first

You work with normal files:<br>Markdown

frontmatter

directories

standard UNIX tools

Everything is automatically transactional and versioned.<br>Editors like Vim, Cursor, Claude Code, or plain shell scripts work out of the box.<br>Data-first

You mount an existing PostgreSQL database and explore it like a filesystem:<br>ls<br>cat<br>grep<br>findTables become directories. Rows become files.

Building a blog with TigerFS

I think one demo is worth more than a thousand words.<br>Let us build a tiny blog system backed by PostgreSQL, but managed entirely through Markdown files.<br>Install

On macOS:<br>curl -fsSL https://install.tigerfs.io | sh

brew install postgresql@17<br>brew services start postgresql@17

Create a database and mount it:<br>createdb shinyblog

# long-running process<br>tigerfs mount postgres://localhost/shinyblog ~/tiger

tigerfs status

Initialize an app

TigerFS apps are configured via a tiny .build directory.<br>echo "markdown" > ~/tiger/.build/posts

# or enable version history<br>echo "markdown,history" > ~/tiger/.build/posts

Now create your first article:<br>vim posts/article-one.md

Example content:<br>title: Running MinIO locally with Docker Compose<br>author: pluto<br>tags:<br>- docker<br>- minio

When developing applications that interact...

tigerfs filesystem postgresql files database install

Related Articles