published on


Ready to get started?

The easiest way to get started with Fenestro is to start piping output from your current command line apps into it. There are two unix utilities you’ll want in your arsenal to make this happen.

Converting command line output to HTML with aha

Aha is a simple utility that converts command line input to HTML. That’s it. You can install it with Homebrew by saying brew install aha

I’d recommend running it with the --black option if you run a dark terminal theme.

Maintain colored output from your commands with unbuffer

When you pipe from one command to another you loose the ANSI Color Codes. For example git diff HEAD^ would give you a colorized diff of your code, but when you pipe it to another tool like aha, it becomes plain, colorless, text. To maintain those colors you’ll want to install “unbuffer”. Again, you can find it in homebrew and install by saying brew install homebrew/dupes/expect

Note: Unbuffer works by convincing your tool that it’s outputting to an interactive buffer. Some tools, like git, expect you to page through long output in interactive mode. You’ll need to disable that on calls that go through unbuffer. With git you just append --no-pager immediately after git For example: git --no-pager diff HEAD^

Putting it all together

Once you’ve got fenestro, unbuffer, and aha installed, you can chain them together like this:

unbuffer git --no-pager diff HEAD^ | aha --black \
| fenestro --name "diff"

For things you’ll use often, save yourself typing by making a function in your ~/.bashrc

function dtf{ #diff to fenestro
    unbuffer git --no-pager diff "$@" | aha --black \
    | fenestro --name "diff"
# call that with
# dtf HEAD^
# to get the same effect as the longer command above