Postgres.app

The easiest way to get started with PostgreSQL on the Mac

Bundled Extensions

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!

PostGIS

PostGIS is a popular geospatial extension for PostgreSQL. It includes the GDAL, PROJ.4 and GEOS libraries and comes with everything you need to work with geographic vector and raster data. Learn everything about this extension at postgis.net
✓ this extension is included with Postgres.app

pgRouting

Extends PostGIS to provide geospatial routing functionality. Project homepage: pgrouting.org
✓ this extension is included with Postgres.app

pgvector

Open-source vector similarity search for Postgres. Learn how to store vectors with the rest of your data at github.com/pgvector/pgvector
✓ this extension is included with Postgres.app

PL/Python

Write stored procedures and functions in Python!
This extension is included with Postgres.app, but you need to install Python from python.org. See our Python instructions for details.

PL/JS

Write stored procedures and functions in Javascript! This light-weight extension is based on the QuickJS runtime. Created by the PL/v8 author, instructions are available at github.com/plv8/pljs
✓ this extension is included with Postgres.app

PL Debugger

Debug PL/PGSQL functions with pgAdmin. For instructions see the Github repo and the pgAdmin documentation
✓ this extension is included with Postgres.app

wal2json

wal2json is an output plugin for logical decoding. Track changes to the database as they happen! For details, see the Github repo
✓ this extension is included with Postgres.app

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.

Downloadable Extensions for PostgreSQL 18

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.

PL/v8

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
  • plv8 3.2.3
  • built for PostgreSQL 18
⤓ Download for Postgres.app

http

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
  • pg http 1.6.3
  • built for PostgreSQL 18
⤓ Download for Postgres.app

pg_parquet

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
  • pg_parquet 0.4.0
  • built for PostgreSQL 18
⤓ Download for Postgres.app

timescaledb

TimescaleDB adds efficient storage and access methods for time-series data.
  • timescaledb 2.23.1
  • built for PostgreSQL 18
⤓ Download for Postgres.app

Is your favorite extension still missing? Open an issue in our Github repo and request it!

Building extensions from source

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
  make
If 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.