How to install and configure hyper for Windows 10

Installing and configuring hyper (the terminal created by zeit, not to be confused with hyper-v) on windows 10 is so easy that even your grandmother could do it.

Background:
I spent some time trying to figure out some quirks when installing & using hyper. This lists contains the answers for most of the quirks I stumbled upon.

Start by clicking the huge “Download hyper for windows 10” here. When installing, a tiny little animation of a terminal in action is displayed, to distract you from looking at your watch.

All right, you are done looking at the animation — hyper is installed! Now lets fire up the terminal to have a look..

Command Prompt with some slick lines & padding

Well, it’s something. We got a glorified Command Promt with some slick lines and some padding.

Assuming you actually want to use the terminal, lets switch to a bash-shell to get some linux commands available.

Configuring bash as default shell

Assuming you have git-bash installed, I’m guessing you want use it as your default shell. Well, thats easy! Have hyper selected, and hit up ctrl + , — and you are inside the .hyper.js config. In here, you want to find this section:

// the shell to run when spawning a new session 
// if left empty, your system's login shell will be used by default shell: '',
// for setting shell arguments
// by default `['--login']` will be used
shellArgs: ['--login'],

Let’s change that to

// the shell to run when spawning a new session 
// if left empty, your system's login shell will be used by default shell: 'C:\\Program Files (x86)\\Git\\bin\\bash.exe',
// for setting shell arguments
// by default `['--login']` will be used
shellArgs: ['-i'],

Restart hyper and voila — you got bash. (Assuming the path is correct, if not you probably got a bunch of errors)

Hooray, we got bash!

Now, try hitting ctrl + c when hyper is selected.

Wait, what? The terminal just closed?

Yep, not the expected behaviour. (If you are not used to canceling tasks in the terminal by pressing ctrl + c then, no worries!) Thanks to this post, you have to target the usr version of the bash.exe file. Just make this change in the .hyper.js config:

// the shell to run when spawning a new session 
// if left empty, your system's login shell will be used by default shell: 'C:\\Program Files (x86)\\Git\\usr\\bin\\bash.exe',

But wait, there’s more!

Try typing the following commands in hyper:

> ls -la
> clear

What the actual f..? All of the output is scrambled when using clear!

This is also an issue when trying to use vim in hyper on windows, or other programs/commands that requires to clear the output.

Well, there is one more thing you have to do. In the hyper settings, find the env property, and add the following:

// for environment variables
env: { TERM: 'cygwin' },

Why? No idea, but it works.

This also lets you use vim in hyper,

Lets install some plugins!

Well, this is definitly easy! Let’s pimp that terminal up!

First of, lets add a fancy border around the entire terminal to make it look like the icon (because, why not?). All you have to do is, open hyper and type

> hyper install hyperborder
bash: hyper: command not found

Well, shit. It seems like bash don’t have the correct $path. Let’s fix that!

First you need to create a .bashrc file in your user folder. Simply type

> cd ~ && touch .bashrc

Now, lets edit that file and put this in it:

Ensure that the path to the hyper bins is correct! They are somewhere in your AppData folder!

export PATH=$PATH:~/AppData/Local/hyper/app-2.0.0/resources/bin

That’s it. Save it, and restart the terminal.

Let’s try installing hyperborder one more time.

Before & after restarting hyper

Let’s make it more beautiful by installing a theme:hyper-snazzy

hyper-snazzy: strong vibrant colors..?

Great! Now we got strong, vibrant colors in our terminal.. wait. It seems kind of faded? There seems to be an issue with the theme..

Well, let’s fix that — yet again, open up the settings and copy & paste this:

// custom CSS to embed in the main window
css: `
.term_fit:not(.term_term) {
opacity: 1 !important
}
`,
That looks more like it!

That should be it — enjoy your new terminal!

Jørn André Myrland

Written by

Software engineer

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade