Skip to content

SQLite extensions manager

Paweł Salawa edited this page Apr 14, 2026 · 2 revisions

Brief

See SQLite documentation for details on what are SQLite runtime loadable extensions.

Making an extension available to the application

To load SQLite extension into SQLiteStudio database connections, the easiest way is to put it into one of directories, that SQLiteStudio scans for such extensions (at application startup). You can learn these directories by going into Help -> About -> Environment -> SQLite extensions directories. Usually these are ext and extensions directories, next to plugins directory (in the installation directory).

If you put compiled SQLite extension into one of those directories, it will automatically be loaded by the application upon next startup. Note, that such (automatically loaded) extension will not be registered in any database, until you enable it for all or particular databases.

Defining unusual directory for extension scanning

You can add more extension directories scanned for automatic loading by defining SQLITESTUDIO_SQLITE_EXTENSIONS environment variable (before application start) pointing to directories (it could be multiple directories, just like you would define PATH environment variable). Another option is to define extra directory during compilation of SQLiteStudio, by passing SQLITE_EXTENSIONS_DIR symbol to compiler with value of desired directory path.

The Extension Manager window

To enable (or just see/add/edit) SQLite extensions currently managed by SQLiteStudio, open Extension Manager from the main toolbar, main menu, or with configured hotkey (by default Alt+4, or Option+4 on macOS).

Extension manager window is similar to Collation editor window. On the left side it has list of extensions already registered in the application, which are loaded for defined set (or all) of databases. At the top there is a toolbar, where you can add/remove extensions and commit/rollback any changes made in the manager window.

The main part of the extensionmManager window will become enabled/disabled according to your current selection in the list - if there is nothing selected in the list, the main part will stay disabled. When you add/edit certain extension, you need to provide path to the library file, which delivers the extension. This is what you do in the first field. You can use file dialog to make it easier.

The initialization function field is optional and should be used if SQLite was unable to initialize an extension, due to missing initialization function. As you may have read in the SQLite documentation, the initialization function name is predicted basing on the library/extension file name, so if the file name does not match initialization function accordingly, you may need to provide the initialization function manually and that's what you can do in the field. Otherwise you can leave it empty.

List of databases in area is just like in Collations editor and Functions editor. You can define there whether certain extension should be loaded for all databases used in the application, or should it be loaded for preselected set of databases.

SQLiteStudio will try to load (probe) the extension that you're editing (while you type the file path), so you will be notified if the file is invalid/inexisting or there is any other problem (such as initialization function not found). If anything is wrong with the extension file, you will see pulsing red dot at the left-top corner of the file entry. Once you fix file path or initialization extension function name, the red dot will disappear automatically.

Remember to commit your changes in this window. Otherwise they will not be applied to current and future database connections.

Legacy application version remarks

SQLiteStudio version 3.1.x and older supports extension loading only through load_extension() SQL function executed in SQL editor.

Clone this wiki locally