<commit_before><div align="center">
	<br>
	<br>
	<br>
	<img width="200" src="https://cdn.rawgit.com/ruyadorno/ipt/master/logo.svg" alt="ipt logo">
	<br>
	<br>
	<br>
</div>

# iPipeTo

[![NPM version](https://badge.fury.io/js/ipt.svg)](https://npmjs.org/package/ipt)
[![Build Status](https://travis-ci.org/ruyadorno/ipt.svg?branch=master)](https://travis-ci.org/ruyadorno/ipt)
[![License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](https://raw.githubusercontent.com/ruyadorno/ipt/master/LICENSE)
[![Join the chat at https://gitter.im/ipipeto/Lobby](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/ipipeto/Lobby)

> Interactive Pipe To: The Node.js cli interactive workflow

<br />

## Table of Contents

- [About](#about)
- [News](#newspaper-news)
- [Features](#heart_eyes-Features)
	- [Reads from standard input, prints to standard output](#reads-from-standard-input-prints-to-standard-output)
	- [Select multiple items](#select-multiple-items)
	- [Fuzzysearch (autocomplete mode)](#fuzzysearch-autocomplete-mode)
	- [Extract path from result](#extract-path-from-result)
	- [Copy to clipboard](#copy-to-clipboard)
	- [Customization](#customization)
	- [Node.js based](#nodejs-based)
- [Examples](#mag_right-examples)
	- [Using Unix pipes to send selected value to next command](#using-unix-pipes-to-send-selected-value-to-next-command)
	- [Using the multiple choices option](#using-the-multiple-choices-option)
	- [Using file as input data](#using-file-as-input-data)
- [Install](#arrow_down-install)
- [Awesome workflows](#sunrise-awesome-workflows)
- [Help](#help)
- [Supported OS Terminals](#supported-os-terminals)
- [Contributing](#contributing)
- [Alternatives](#alternatives)
- [Credits](#credits)
- [License](#license)

<br />

## About

**ipt** (pronounced iPipeTo) introduces the missing cli interactive workflow. It takes any kind of list as an input and uses that list to build an interactive interface to let you select an element from it.

Stop manually dragging your mouse around to copy output data from a terminal, using the **ipt** workflow you can pipe data from a command and select what to copy to clipboard from a convenient visual menu.

Selected data is also output to _stdout_ allowing for easily composing various workflows - Just create your custom alias!


<p align="center">
![demo animation](https://cdn.rawgit.com/ruyadorno/ipt/master/demo.svg)
</p>

## :newspaper: News

- **v2.0.0:**
  - Added `-p` option for extracting path out of selected items
  - Added `-M` option for customizing interface message
  - Added `-0` option for better null char compatibility
  - Added `-S` option for setting number of lines to be displayed
  - Added a proper programmatic API
  - Updated all dependencies to their latest versions
  - **ipt** now requires node@8+
- **v1.1.0:** Added autocomplete (or fuzzy finder) mode `ipt -a`

<br />

## :heart_eyes: Features

### Reads from standard input, prints to standard output

**iPipeTo** is inspired by the [Unix Pipeline](https://en.wikipedia.org/wiki/Pipeline_\(Unix\)) and is composable with any command line utility you already use and love.

### Select multiple items

The `-m` or `--multiple` flag allows you to select many items out of the interactive list instead of the standard "pick one" behavior.<commit_msg>Fix demo anim on README<commit_after><div align="center">
	<br>
	<br>
	<br>
	<img width="200" src="https://cdn.rawgit.com/ruyadorno/ipt/master/logo.svg" alt="ipt logo">
	<br>
	<br>
	<br>
</div>

# iPipeTo

[![NPM version](https://badge.fury.io/js/ipt.svg)](https://npmjs.org/package/ipt)
[![Build Status](https://travis-ci.org/ruyadorno/ipt.svg?branch=master)](https://travis-ci.org/ruyadorno/ipt)
[![License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](https://raw.githubusercontent.com/ruyadorno/ipt/master/LICENSE)
[![Join the chat at https://gitter.im/ipipeto/Lobby](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/ipipeto/Lobby)

> Interactive Pipe To: The Node.js cli interactive workflow

<br />

## Table of Contents

- [About](#about)
- [News](#newspaper-news)
- [Features](#heart_eyes-Features)
	- [Reads from standard input, prints to standard output](#reads-from-standard-input-prints-to-standard-output)
	- [Select multiple items](#select-multiple-items)
	- [Fuzzysearch (autocomplete mode)](#fuzzysearch-autocomplete-mode)
	- [Extract path from result](#extract-path-from-result)
	- [Copy to clipboard](#copy-to-clipboard)
	- [Customization](#customization)
	- [Node.js based](#nodejs-based)
- [Examples](#mag_right-examples)
	- [Using Unix pipes to send selected value to next command](#using-unix-pipes-to-send-selected-value-to-next-command)
	- [Using the multiple choices option](#using-the-multiple-choices-option)
	- [Using file as input data](#using-file-as-input-data)
- [Install](#arrow_down-install)
- [Awesome workflows](#sunrise-awesome-workflows)
- [Help](#help)
- [Supported OS Terminals](#supported-os-terminals)
- [Contributing](#contributing)
- [Alternatives](#alternatives)
- [Credits](#credits)
- [License](#license)

<br />

## About

**ipt** (pronounced iPipeTo) introduces the missing cli interactive workflow. It takes any kind of list as an input and uses that list to build an interactive interface to let you select an element from it.

Stop manually dragging your mouse around to copy output data from a terminal, using the **ipt** workflow you can pipe data from a command and select what to copy to clipboard from a convenient visual menu.

Selected data is also output to _stdout_ allowing for easily composing various workflows - Just create your custom alias!


<p align="center">
<img alt="demo animation" width="600" src="https://cdn.rawgit.com/ruyadorno/ipt/master/demo.svg" />
</p>

## :newspaper: News

- **v2.0.0:**
  - Added `-p` option for extracting path out of selected items
  - Added `-M` option for customizing interface message
  - Added `-0` option for better null char compatibility
  - Added `-S` option for setting number of lines to be displayed
  - Added a proper programmatic API
  - Updated all dependencies to their latest versions
  - **ipt** now requires node@8+
- **v1.1.0:** Added autocomplete (or fuzzy finder) mode `ipt -a`

<br />

## :heart_eyes: Features

### Reads from standard input, prints to standard output

**iPipeTo** is inspired by the [Unix Pipeline](https://en.wikipedia.org/wiki/Pipeline_\(Unix\)) and is composable with any command line utility you already use and love.

### Select multiple items

The `-m` or `--multiple` flag allows you to select many items out of the interactive list instead of the standard "pick one" behavior.
{'fraction_non_alphanumeric': 0.1440347721822542, 'fraction_numerical': 0.00434652278177458, 'mean_word_length': 4.617003367003367, 'pattern_counts': {'":': 0, '<': 32, '<?xml version=': 0, '>': 34, 'https://': 22, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1287700', 'n_tokens_mistral': 2247, 'n_tokens_neox': 2114, 'n_words': 632}