SQLite extension + native CLImacOS / Linux / Windows

Your filesystem,
as a database.

Query files with SQL.
Keep metadata on the files.

Turn a folder into a SQLite table, or read and write properties directly with xmeta.

Install xmetacurl -fsSL https://fsmeta.eidos.space/install.sh | sh
/workspace
query.sql
SELECT id, rating, status
FROM files
WHERE is_dir = 0 AND rating >= 4
ORDER BY rating DESC;
Standard SQLite. Your own files.
Result3 rows
Example files rated four or higher
idratingstatus
notes/launch.md5Active
design/brief.pdf5Review
research/sqlite.md4Draft
Properties read from xattr / ADS
One folder. Two interfaces.Illustrative output

The metadata
stays with the file.

Properties live in native extended attributes or NTFS alternate data streams. Your folder stays the source of truth.

Files become rows.
Query files and directories below a root. Declare the properties you want as typed columns.
Read where it lives.
Metadata is read at query time. A lookup by relative path resolves the file directly; folder queries scan entries lazily.
Write it once.
The CLI and SQL extension read and write the same JSON envelope. No separate index to maintain.

SQL or the shell.
Same metadata.

Use the SQLite extension for queries across a folder. Use xmeta for a quick read or a single-file edit.

SQLite extension

Query a folder
SQLite
.load ./libfs_meta

CREATE VIRTUAL TABLE files USING fs_meta(
  root = './notes',
  fields = 'rating INTEGER, status TEXT'
);

SELECT id, rating FROM files
WHERE is_dir = 0 AND rating >= 4;
Extension reference

xmeta CLI

Edit a file
Shell
xmeta set note.md status=Active rating:=5

xmeta get note.md --json
# {"rating":5,"status":"Active"}

xmeta unset note.md status
xmeta get note.md rating --text
# 5
CLI reference
A few boundaries

Writes require xattr / ADS support. Symlinks, Windows reparse points, and Unix files with multiple hard links are rejected for writes. Directory properties are not inherited.

One command.
Ready for your files.

The installer selects your platform, verifies the download, and installs xmeta into your user directory. No SQLite installation required.

Release v0.5.0
macOS / Linuxv0.5.0
curl -fsSL https://fsmeta.eidos.space/install.sh | sh

Installs to ~/.local/bin. Re-run the same command to update.

Windows (PowerShell)
irm https://fsmeta.eidos.space/install.ps1 | iex
Manual downloads
Windows
x86-64 ↓

SQLite extensions and checksums ↗

Prefer to build from source?
git clone https://github.com/mayneyao/sqlite-fs-meta.git
cd sqlite-fs-meta
cargo install --path . --locked