Postgres.app comes with a lot of popular extensions. All you need to do is enable them with the CREATE EXTENSION command and you are good to go!
Aside from these extensions, Postgres.app also includes most of the standard extensions such as plpgsql, pg_crypto, and so on. We do not include PL/TCL and PL/Perl because macOS no longer supports linking to these languages. For a full list of included extensions, see the catalog table pg_available_extensions.
We are also offering some popular extensions as an additional download. They are very easy to install -- just download and double click the installer package! After restarting the server, you can enable them with the CREATE EXTENSION command.
Did you ever want to call a webhook from a database trigger? This extension allows you to access web services and connect to REST APIs directly from PostgreSQL. Find out more at github.com/pramsey/pgsql-http
Apache Parquet is gaining popularity as an interchange format for datasets. This extension allows you to read and write Parquet files using the COPY command. The extension was developed by CrunchyData and documentation is available at github.com/CrunchyData/pg_parquet
ParadeDB adds full text search and analytics to PostgreSQL
Run stored procedures and functions in Javascript – FAST. This extension is based on Chrome’s v8 JavaScript runtime. It is probably the fastest and most secure way to run JavaScript code in your database. Learn more about this extension at plv8.github.io
TimescaleDB adds efficient storage and access methods for time-series data.
TimescaleDB Toolkit adds utilities for working with time-series data: ASAP Smoothing, Hyperloglog, LTTB and Percentile Approximation.
Is your favorite extension still missing? Open an issue in our Github repo and request it!
There are hundreds of PostgreSQL extensions and we can't build them all. If you want to use an extension that is not available for download, you can build it yourself.
If you are using PostgreSQL 18 or later, make sure to install extensions into the "Application Support" directory. This ensures that extensions will continue to work after installing Postgres.app updates.
Postgres.app automatically configures the necessary search paths for every extension installed in a subdirectory of ~/Library/Application Support/Postgres/Extensions/XX (XX is the major PostgreSQL version).
Before building an extension, make sure that your $PATH is configured correctly:
pg_config --version
This command should print PostgreSQL XX.X (Postgres.app). Make sure the version matches what you expect!
The next step is to build your extension. You need to have a compiler installed! You can either use Xcode or the Command Line Tools.
Compile the code with commands similar to these:
git clone git@github.com:theory/pg-envvar.git cd pg-envvar makeIf everything worked, you can install your extension into application support with this command:
make install prefix="$HOME/Library/Application Support/Postgres/Extensions/XX/local"Note: If you are using PostgreSQL 17 or earlier, this will not work. PostgreSQL versions before 18 require extensions to be installed in the PostgreSQL installation directory. To install them there, remove the prefix argument from the make install command. If you run into an "Operation not permitted" error, make sure that you grant Terminal permission to update applications in System settings. Please note that you will have to re-install the extension after every Postgres.app update.