Skip to main content

The Crate Data Shell

Project description


Travis CI Version Documentation Python Version Coverage

Crash is an interactive CrateDB command line interface (CLI) SQL shell with autocompletion.


A screenshot of Crash


Recent versions of Crash require Python (>= 2.7) to run.

Use Crash 0.16.0 if you’re running Python 2.6.


As a Python Package

Crash is available as a pip package.

To install, run:

$ pip install crash

Now, run it:

$ crash

To update, run:

$ pip install -U crash


Crash is also available as a standalone executable that includes all the necessary dependencies, and can be run as long as Python (>= 2.7) is available.

First, download the executable:

$ curl -o crash

Then, make it executable:

$ chmod +x crash

Now, run it:

$ ./crash

If you would like to run crash from any directory and without using leading ./ you will need to move it to somewhere on your $PATH.


For usage information and options, run:

$ crash --help


This project is primarily maintained by, but we welcome community contributions!

See the developer docs and the contribution docs for more information.


Looking for more help?

Installation & Usage

If the package was installed using pip the shell can be started by invoking crash in a terminal. We recommend to install it to the Python user install directory to avoid unwanted dependency conflicts.

pip install --user crash


If crash is installed in the Python user install directory please ensure that ~/.local/bin (Linux), or %APPDATA%\Python\<version>\Scripts (Windows) is added to the system path.

crash by default will try to connect to localhost:4200. To connect to another host use the connect command inside the shell or use the --hosts argument when launching the shell.

crash started with the -v switch (once or more times) will log useful information when it comes to debugging, like what connection attempts are made and full tracebacks of server errors.

For more information about the available command line arguments see Command Line Arguments.

When you connect to a server that is not reachable or whose hostname cannot be resolved you will get an error:

cr> \connect
| server_url             | node_name | version | connected | message       |
| |      NULL | 0.0.0   | FALSE     | Server not... |
cr> \connect 300.300.300.300:4200
| server_url                  | node_name | version | connected | message         |
| http://300.300.300.300:4200 |      NULL | 0.0.0   | FALSE     | Server not a... |

Successful connects will give you some information about the servers you connect to:

cr> \connect;
| server_url             | node_name | version | connected | message |
| | crate     | ...     | TRUE      | OK      |

If you connect to more than one server, the command will succeed if at least one server is reachable:

cr> \connect 300.300.300.300:4295;
| server_url                  | node_name | version | connected | message       |
|      | crate     | ...     | TRUE      | OK            |
| http://300.300.300.300:4295 | NULL      | 0.0.0   | FALSE     | Server not... |

Once the shell is connected, SQL statements can be executed simply by entering them without any special arguments like this:

cr> SELECT table_name FROM information_schema.tables
... WHERE table_name = 'cluster';
| table_name |
| cluster    |
SELECT 1 row in set (... sec)

When the Crate shell is started with the option -v debugging information will be printed:

cr> select x from y;
SQLActionException[TableUnknownException: Table 'doc.y' unknown]
SQLActionException: NOT_FOUND 4041 TableUnknownException: Table 'doc.y' unknown



Due to changes in the Information Schema of CrateDB, Crash versions <= 0.19 are not compatible with CrateDB > 0.57.

Nested Objects and Arrays


Since CrateDB 0.39.0 it is possible to use object and array literals and the limitation does not apply when connecting to a CrateDB instance running > 0.39.0.

While it is possible to select or filter by nested objects it is currently not possible to insert them using Crash. In order to do that the Crate REST endpoint or a client library like crate-python has to be used.

The same also applies for arrays.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
crash-0.21.5-py2.py3-none-any.whl (56.3 kB) Copy SHA256 hash SHA256 Wheel py2.py3
crash-0.21.5.tar.gz (45.3 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page