Telepath
Spooky action at a distance.
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
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - 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