Release v0.20.0

Pgcli is a command line interface for Postgres database that does auto-completion and syntax highlighting. You can install this version by:

$ pip install -U pgcli

Check detailed instructions if you're having difficulty.

This version adds support for \\h command and \x auto command. Two very important commands that bring us close to being a total replacement for psql. This version can also handle really large databases without trouble thanks to asynchronous completion refresh. Full details below:


  • Perform auto-completion refresh in background. (Thanks: Amjith, Darik Gamble, Iryna Cherniavska).

    When the auto-completion entries are refreshed, the update now happens in a background thread. This means large databases with thousands of tables are handled without blocking.

  • Add support for \h command. (Thanks: Stuart Quin).

    This is a huge deal. Users can now get help on an SQL command by typing: \h COMMAND_NAME in the pgcli prompt.

  • Add support for \x auto. (Thanks: Stuart Quin).

    \\x auto will automatically switch to expanded mode if the output is wider than the display window.

  • Don't hide functions from pg_catalog. (Thanks: Darik Gamble).

  • Suggest set-returning functions as tables. (Thanks: Darik Gamble).

    Functions that return table like results will now be suggested in places of tables.

  • Suggest fields from functions used as tables. (Thanks: Darik Gamble).

  • Using pgspecial as a separate module. (Thanks: Iryna Cherniavska).

  • Make "enter" key behave as "tab" key when the completion menu is displayed. (Thanks: Matheus Rosa).

  • Support different error-handling options when running multiple queries. (Thanks: Darik Gamble).

    When on_error = STOP in the config file, pgcli will abort execution if one of the queries results in an error.

  • Hide the password displayed in the process name in ps. (Thanks: Stuart Quin)

  • Add CONCURRENTLY to keyword completion. (Thanks: Johannes Hoff).

Bug Fixes:

  • Fix the ordering bug in \d+ display, this bug was displaying the wrong table name in the reference. (Thanks: Tamas Boros).
  • Only show expanded layout if valid list of headers provided. (Thanks: Stuart Quin).
  • Fix suggestions in compound join clauses. (Thanks: Darik Gamble).
  • Fix completion refresh in multiple query scenario. (Thanks: Darik Gamble).
  • Fix the broken timing information.
  • Fix the removal of whitespaces in the output. (Thanks: Jacek Wielemborek)
  • Fix PyPI badge. (Thanks: Artur Dryomov).


  • Move config file to ~/.config/pgcli/config instead of ~/.pgclirc (Thanks: inkn).
  • Move literal definitions to standalone JSON files. (Thanks: Darik Gamble).

Internal Changes:

  • Improvements to integration tests to make it more robust. (Thanks: Iryna Cherniavska).