Skip to content

acook/telepath

Repository files navigation

Telepath

Spooky action at a distance.

Gem Version Build Status Code Climate Coverage Status Dependency Status

What the hell is this all about?

Picture this: Half a dozen shells open. Some zsh, some bash, and some fish. Severals editors as well, a couple vim sessions, sublime, lightable.

How do you get information from one to another?

The clipboard, right? Some systems have multiple clipboards, and some apps even let you save your clipboard history.

But what if there was another way.

Another way for them to communicate near instantly, dare I say ... telepathically.

Passing silently through barriers like the T1000 from Terminator 2.

Or a ghost. A ghost is good too.

How does full text search sound? Pretty good, eh?

How about relative path correction between different working directories?

What about shared, persistant, distributed, fully decorated multi-client multi-host history?

Yeah thats pretty much what I thought. Now go change your pants, I'll still be here when you get back.

Installation & Setup

Install it!

gem install telepath

Set it up!

Actually, thats pretty much it. Telepath just works.

Usage

Here's the output of tel --help:

Usage:
    tel [OPTIONS] SUBCOMMAND [ARG] ...

Parameters:
    SUBCOMMAND                    subcommand
    [ARG] ...                     subcommand arguments

Subcommands:
    +, add                        Add item
    ?, lookup                     Look up item by pattern
    $, last                       Get most recent item
    @, index                      Get item from (reverse) index
    list                          List known containers and contents

Options:
    -h, --help                    print help
    -q, --quiet                   Only output when absolutely necessary. (default: $TELEPATH_QUIET, or false)
    -f, --file FILE               Filename of the Teleport store file. (default: $TELEPATH_FILE, or ".telepath.db")
    -p, --path PATH               Path where the the Teleport store file is located. (default: $TELEPATH_PATH, or "~")

Example

Dump data into Telepath from Bash...

$ tel + "All the things!"

Use it in Vim...

:r ! tel $

Use it again in Zsh...

export which_things=$(tel $)

Manipulate it with tr in zsh and add the result back into Telepath...

∴ tel $ | tr '[:lower:]' '[:upper:]' | tel +

And bring it back into Bash to combine it with the previous version...

$ echo $(tel $) $(tel @ 1) | tee result.txt | tel +

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Who made this anyway?

I'm glad you asked!

Anthony M. Cook 2013-2016

Inspired by this perl script: oknowton/shstack