Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Build Status Discord

Pipe is a Web app for querying any data source, and analyzing and visualizing the result.


Query |> Transform |> Visualize

Usually 3 different software are needed to write and execute a query on a database, transform the result and visualize the outcome.

How many times did you have to copy and paste the result of a SQL or MongoDB query into another tool (Excel, R, or your custom app) for further analysis and then copy the result of your analysis into another tool for sharing it on the Web or with your colleagues?

Pipe is an all-in-one solution for querying, analyzing and visualizing any data source and sharing the result.


The project is currently under development


  • Start a mongodb instance
  • Start a redis instance (optional, it is only necessary if you choose redis-store value for cache-store config)
  • $ git clone
  • $ sudo npm install
  • npm run configure to create in the root of the repository. Review and update the following in the config
  • Update query-database-connection-string to the query string of your mongodb instance
  • Configure connections hash by specifying the connection details for the databses that you like to connect and query. Each connection is a LiveScript hash; you can configure as many connections as you like for the following kind databses: MongoDB, MSSQL, PostgreSQL, MySQL.
  • Configure cache-store, you can choose either redis-store or js-store (in-memory)
  • $ gulp
  • Open a browser and navigate to http://localhost:4081

For the screenshot feature make sure you have PhantomJS ≥ 2.0.1 in your PATH.



You can connect Pipe to almost any data source. It comes with built-in support for the following databases:

  • SQL: (MySQL, PostreSQL, MSSQL)
  • MongoDB
  • ElasticSearch
  • Redis
  • Any Web API (using curl) or Stream (using WebSockets)

Multi Query

The result of a Pipe query can be used as the input of another query: multiple Pipe queries can be joined together in a larger computation.


Depending on your database and query language, some analysis are easier and faster done on the result of the query at client-side.

Use Transformation block to manipulate the result of your query using built-in utilities and statistical functions. (you can even import and use your favorite JavaScript library)

This snippet gives you a taste of data transformation in Pipe:

result =>{_id, values}) => ({
      key: _id,
      values: values
         .map(({bucket, count}) => [bucket * 3600*1000, count])

You can program your transformation snippet in ES6 JavaScript (using Underscore, Lodash, RxJS or similar libraries) or LiveScript (using


Pipe provides a compact and powerful syntax for writing (dynamic) MongoDB and ElasticSearch queries. It also supports macros in SQL:

SELECT ProductId, Count(*) AS Units FROM Purchases 
WHERE CustomerId IN (${ =>',')}$)

In this example customers array can be the result of another Pipe query that is passed as the input into this SQL query.

Using Pipe syntax a MongoDB aggregation query will look like:

$match do
  campaignId: 12341
    $gte: new Date '2016–01–01' .valueOf!

$group do
  _id: bucketize 24 * 3600 * 1000, '$creationTime'
  impressions: $sum: '$impressions'
  clicks: $sum: '$clicks'

$sort impressions: -1


Plottables are ready-to-use, standardized data visualization components. Pipe comes with many built-in Plottables (check them out here:

Using a Plottable can be as easy as:

plot(withOptions(timeseries, {
    x: d => d.time
  , y: d => d.value

Or just plot(timeseries).

Versioning, Sharing

Pipe is a gist for your queries, you can save, fork, clone or share the source code of your query or just the final result of transformation or visualization.

Pipe supports JavaScript, ES6 Babel or LiveScript.



A Web tool for querying any data source (SQL, MongoDB, ElasticSearch, Redis ...), and analyzing and visualizing the result.






No releases published


No packages published

Contributors 4