Paul Ruane edited this page Jan 9, 2017 · 23 revisions


What does TMSU stand for?

It stands for Tag My Shit Up.

How is TMSU pronounced?

It's somewhere between tiramisu and a sudden and unexpected sneeze.

How can I report a bug or make a suggestion?

Either log it in the issue tracker or email the mailing-list ml@tmsu.org.

What similar programs are there?

You should also look at:


Why does TMSU not detect file moves and renames?

To detect file moves/renames would require a daemon process watching the file system for changes and support from the file system for these events. As some file systems cannot provide these events (e.g. remote file systems) a universal solution cannot be offered. Such a function may be added later for those file systems that do provide file move/modification events but adding support for this to TMSU is not a priority at this time.

The current solution is to periodically use the repair command which will detect moved/renamed files and also update fingerprints for modified files. (The limitation of this is that files that are both moved/renamed and modified cannot be detected.)

How do I exclude tags when listing files?

TMSU supports a simple query language consisting of the operators and, or and not. To exclude tags, simply prefix them with not:

For example, pull out your audio books:

$ tmsu files mp3 and not music

The and operator is implied if you omit it:

$ tmsu files mp3 not music


Does TMSU work on GNU/Linux?

Yes. (It was developed on Arch Linux.)

Does TMSU work on BSD?

One of TMSU's dependencies, the go bindings for FUSE (http://github.com/hanwen/go-fuse) cannot be compiled on FreeBSD. See https://github.com/hanwen/go-fuse/issues/85 for more information.

Is TMSU available for Windows?

It now compiles for Windows but it's a little fiddly to do so. Plus there is no virtual filesystem support just yet.

Is a package available for my GNU/Linux distribution's package manager?

At this time probably not. Help with creating these would be very much appreciated.

Is completion available for my shell?

If your shell is Zsh then yes, completion is in the misc directory of the source tree and binary distributable.


Does TMSU have a GUI?

No. Maybe one day, or else integration with popular file/media browsers could be provided.

(2016-09) There has been some effort integrating TMSU as a Nautilus extension.


Where is the database stored?

Whenever you run tmsu init, a database file is created at .tmsu/db under the current working directory and will be used whenever you're at or beneath that path. For example, if you run init in your home directory, then you will get a database at $HOME/.tmsu/db and any files you tag in your home directory (or sub-directories) will go into this database.

To find out which database you are currently using, run tmsu info. This will show you the current database (if one can be found), amongst other details.

Note: Prior to v0.7.0, TMSU would create a default database at ~/.tmsu/default.db when you first use it.

How does TMSU find the database

Whenever you run TMSU, it will look for a database at .tmsu/db under the current working directory. If none can be found, TMSU will look for .tmsu/db in each parent directory in turn, up to and including the root directory.

If a database is not found in the current or a parent directory, TMSU will then look for the default database created by earlier (<v0.7.0) versions of TMSU at ~/.tmsu/default.db.

Can I specify the database explicitly?

Yes. See Switching Databases.

What format is the database?

The database is a SQLite3 database and can be read with the regular SQLite tooling.

$ sqlite3 ~/.tmsu/db
sqlite> .schema
sqlite> select * from file;
sqlite> .q

How do I export my data?

The database is a standard Sqlite3 database. There are several tools available that can read the database and which can export the rows as CSV, SQL, &c.

To dump to SQL text, you can use the Sqlite3 tooling:

$ sqlite3 ~/.tmsu/db .dump >dump.sql