FMO - File Meta Organizer¶
Introduction¶
FMO (File Meta Organizer) is an Electron application for organizing files using custom metadata that the filesystem doesn't natively support. Instead of being forced to place a file in a single folder, you can tag files with multiple categories and find them using powerful custom queries.
Problem It Solves¶
Files don't come with the metadata you need:
- Ratings: Most file formats don't support star ratings or custom scores
- Multi-category classification: A file can only be in one folder - is a "punk classical" song punk or classical?
- Custom attributes: Want to store release year, artist, BPM, or any custom property? Most formats don't support it
- Flexible searching: File systems offer basic name/path matching - not "punk & classical & rating:>=4"
Solution¶
FMO lets you:
- Add custom tags to any file - a song can be both "punk" and "classical"
- Define attributes - store any custom properties (year, artist, BPM, etc.)
- Search with queries - find files using powerful syntax like
tag1 & tag2or@year:2020 - Create databases - separate collections for different purposes
Core Concepts¶
Entities¶
An entity represents a file in your database. Each entity has:
- Path - The filesystem path to the actual file
- Tags - Free-form categories you assign (e.g., "rock", "favorite", "work")
- Attributes - Key-value pairs for custom metadata (e.g.,
{year: 2020, artist: "John"}) - Embedded data - Automatically extracted from files (EXIF, ID3, etc.)
Databases¶
FMO uses SQLite databases to store entity information. You can:
- Create multiple databases for different collections
- Import/export databases
- Use system-wide databases across multiple instances
Query Syntax¶
Search entities using a powerful custom query language:
| Syntax | Description | Example |
|---|---|---|
tagname |
Entities with this tag | rock |
tag1 & tag2 |
AND - entities with both tags | rock & 2024 |
tag1 | tag2 |
OR - entities with either tag | rock | metal |
-tag |
Negation - entities without this tag | -pop |
@key:value |
Attribute query | @year:2020 |
@key:>value |
Numeric comparison | @rating:>4 |
~filename |
Path/filename search | ~example |
"tag with spaces" |
Tags with spaces | "dead kennedys" |
Tags¶
Tags are free-form categories that can contain spaces and special characters:
- Use
/as a separator for hierarchical tags:/artist/punk - Spaces are fully supported:
"dead kennedys",classic rock - No limits on tag names or structure
Variables¶
Variables are database-level settings that control behavior:
- System variables: control app-wide behavior
- Database variables: control per-database settings
- Examples:
file_types,file_filter,directory_filter
Key Features¶
Tag-Based Organization¶
- Add multiple tags to any entity
- Search by single tags or complex combinations
- Hierarchical tags using
/separator - Full support for spaces in tag names
Custom Search Queries¶
- Boolean operators:
&(AND),|(OR),-(NOT) - Attribute queries with comparisons:
=,!=,>,<,>=,<= - Pattern matching:
likeoperator with wildcards - Path/filename search with
~prefix
Attribute Tracking¶
- Store any custom key-value pairs
- Search by attributes using
@key:valuesyntax - Support for multiple value types (string, number, boolean, etc.)
- Auto-extraction from file metadata (EXIF, ID3 tags, etc.)
Database Management¶
- Create multiple SQLite databases
- Import/export databases
- System database for global settings
- Database selection and switching
MCP Server Integration¶
- Model Context Protocol server for AI integration
- Allows AI assistants to query and manage your database
- HTTP transport with bundled proxy for stdio clients
- Full CRUD operations via MCP tools
Clipboard & Export¶
- Multi-clipboard system for bulk operations
- Export selections as M3U8, TXT, or JSON
- Copy paths, tags, and attributes
- Paste external data to create entities
Media Handling¶
- Thumbnail generation for images and videos
- Media player integration for audio/video
- FFmpeg integration for media metadata extraction
- EXIF data extraction from images
Links¶
- Features - Detailed feature documentation
- MCP Server - AI integration setup
- Search Syntax - Query language reference
- Pages - UI pages reference
- Components - UI component screenshots and selectors