Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Blink Shell for iOS, an Open-Source, Mosh and SSH Terminal for Pros (blink.sh)
219 points by carloscabanero on Nov 11, 2016 | hide | past | favorite | 107 comments



The US$19.99 price is a bit steep to buy sight-unseen. That's more of an App Store problem than Blink's fault. Obviously the price is fine if it works better than Prompt.


It appears to be open source. https://github.com/blinksh/blink


That is correct. You can compile it and install it yourself, or participate in our continuous testing.


Oh wow, thank you very much for simplifying the build process. I tried a few months back and it was... painful.


Thanks for giving it a try again! It is complex with all the dependencies, but doing precompiled libs helped a ton to alleviate the situation.


I'm not so sure I'd say that's an App Store problem. There are ways around requiring purchases sight-unseen. Unless I'm mistaken, you can have a 'lite' version as a separate app, or you can have in-app purchases to unlock the full version.

(Don't get me wrong, though... I think the price point is fine.)


It does and it's open source. You can ask for improvements, know why something is the way it is, and change it yourself if you need to.

I bought it. I use it on my iPhone and iPad Pro and it's been great.


Personally I love it and feel it's absolutely worth the price


I used to like and recommend Prompt until I found out that they came out with a new version and offered no upgrade path -- it was a separate app on the store. They never bothered to update the old version with post-iPhone-4S graphics, so all the buttons are huge and it's low-res. I didn't buy the new version.


They can't really offer an upgrade path though; as I understand it the closest they can do is switch to subscription pricing.


In-app purchase?


I'm not an iOS developer myself but I don't think you can switch on screen-size support and high-red graphics as an in-app purchase (unless you have every screen defined twice)


I meant in-app purchase of an 'unlock token', download free new version, verify & obtain new auth token, remove old version.

Convoluted, but better than nothing I'd have thought.


Pretty sure it was a re-write, not really possible to have 2 side-by-side versions unlocked through IAP.


Two things I'd like to see:

1) Support for 1Password import of private keys 2) Support for the Citrix X1 Mouse: http://taoofmac.com/space/blog/2016/11/06/1930

(Yes, terminals are more useful with mice too :))


Thanks for the suggestions! I will definitely consider 1Password in the future, although not a fan of reusing private keys everywhere :)


1Password is not necessarily for reusing keys, it's just very usual way to transfer private things to mobile devices :)


I use it for both passwords and pubkeys (some boxes use OTP, too)


Also: agent forwarding.


You mean it doesn't do that? Hmmm. Sad trombone.


I'm a bit annoyed by the name "Blink Shell" because I think this is a Terminal Emulator and not a shell? But maybe I'm wrong?

But maybe I'm just being too restrictive in what I mean by the term "shell", which has multiple uses (e.g. "Desktop shell")..... so I guess the command-line shell is a program that one runs in a UI shell, the latter of which might be a terminal / terminal-emulator?


If you want to go down this track, it runs mosh, which is a shell, in the same way as Secure SHell.


Would be great if it used the swipe up/down/left/right to do arrow keys. Super handy feature in a competing terminal/ash iOS client. Swipe up for quick access to history, and swipe left/right for quickly moving your cursor around.


Thanks for the idea, I tried it out but always end up long passing what I'm looking for due to inertia. I would like something smarter like iTerm with the cursor though.


Servauditor's use of it is super usable. No interia at all. A swipe gives one click. It's so fast and pleasant to use.

If only Serverauditor didn't fail at typing ctrl-j I'd be using it...


I couldn't really figure out how to scroll on SA. And that font...


Bought it even though it apparently has no agent forwarding (also, see my other comment here about 1Password and mouse - yes, mouse! - support).

Pretty good, refresh seems faster than Prompt, especially when using htop and tmux on the LAN (something that always bugged me about Prompt).

Hope it gets Citrix X1 mouse support, and there's something else I'd love to see that doesn't require buying exotic hardware to test - external display support.

Yes, you can render independent displays on an iOS device. Being able to have two terminals open or a terminal and a browser on independent displays would be (even more of) a killer app.


Thanks for giving it a try and please check this out! https://mobile.twitter.com/dcab/status/789838892753117186

It was done by one of our collaborators (advantages of open source), and it allows for multiple terminals just as you mention :)

Having a browser within the app has also been suggested, yo transform it in a nice dev tool instead of a terminal. We are still thinking what this could really be in the future,so any feedback and forward thinking is really appreciated!


Great, hope that makes it to the next update :)

As to the web browser, I was just thinking of reading docs, but having an inspector (a la Firebug Lite) might be useful.


Also, Agent Forwarding and ProxyCommand are definitely in the roadmap. The former was only recently added to Mosh, so hopefully useful on both!


While I'm personally fine with the $20 price tag, it does seem a bit steep for more casual users (ignoring the fact that they can also get it for free if they compile it for themselves). I wonder if this might hinder adoption. On the other hand, I think the value that Blink provides is potentially so large that it might make sense to get revenue also from donations (one-time or recurring).

Blink's value derives not just from the excellent design of the app, with highly accurate and fast rendering, or it's features (mosh, most importantly). To me, the way in which Blink really blows the competition (e.g. Prompt) out of the water its open source development process. As a beta tester, I have found Carlos to be highly responsive to feature requests and bug reports on Github. This gives me the feeling that as a user, I actually have influence over the features of Blink, unlike other software, where maybe I can beg Panic Inc via a tweet to implement port forwarding. I would be happy to donate something like $5/month to the continued and highly responsive development of Blink. I think true open source on iOS is so rare that we should make a point of proving that it can be commercially viable.


Wouldn't that require a jailbreak?


Self-compiling, you mean? I don't think so... just a copy of Xcode


But how will you install it on the phone? They only allow installs through App Store.


I haven't tried this myself, but my understanding is that Xcode can install compiled apps directly onto your iOS device, without a jailbreak: http://osxdaily.com/2016/01/12/howto-sideload-apps-iphone-ip...


With a dev license you can install pretty much anything on your device through XCode. And if you do not want to compile but wanna collaborate on the project, we offer the possibility to become a tester of our RAW branch :)


It's actually quite easy. You open up the project in Xcode, plug your telephone in and select it as the build-target. Then you click "run" and fix all the problems that come up. You need a Team (you AppleId will suffice), you need to change the bundle-name because the current name is of course owned by another team (the blink shell team). You can change it to something random like com.idontcare123.Blink. Click run again and the App will magically appear on your device.


Could you consider adding config sync via iCloud/Dropbox? It's quite a pain to sync host lists across several iOS devices.



Been using it (beta testing on iPhone and paid version on iPad so I can compare) for a while. Improving steadily, solid connectivity. So far happy with it, even if the price felt somewhat high.


Does it support Ed25519 keys? This is one of the things that Panic's Prompt still lack support of, and I really miss it :(


Not yet, but we are working on it. We use libssh2 and I'm working on a patch for that.


Cool, thanks. :-)

I just bought the app and play with it for few minutes, here's some quick feedback:

1. Love the fact the interface is just a CLI!

2. But would be nice if content of `help` was shown by default. `blink>` wasn't very helpful ;-)

3. Ability to bind Caps Lock to "ESC on tap, Ctrl on Hold" would be really cool.

Otherwise I really like what I'm seeing so far. Finally Mosh client on my iPad Pro!

Edit: and 4, ability to bind Alt/Option key as Meta (rather than iOS' default special character input, e.g. Alt-x should send M-x)


Thanks a lot for the feedback!!

You can actually do number 3. On Config > Keyboard select Caps as Ctrl at the modifier section, and also toggle the Caps as ESC. That will give you Ctrl on hold, and ESC on tap. :)


Oh wow. That actually works. I think I just found a new default SSH client for my iPad. Thanks.


Does caps->ctrl work on the iPad Pro smart keyboard?


Yes, Caps as Ctrl work on the iPad Pro Smart Keyboard.


Regarding Bluetooth/external keyboards: The last time I tried an iOS terminal app, iOS had limitations on many key combinations, such that I couldn't effectively use Emacs with normal mappings (or Bash with default Emacs-style keyboard shortcuts). Has Apple changed this and if so, does Blink or any other app work properly in this regard? I'm not concerned with changing modifier keys, just want standard Ctrl and Option as Meta like I do in macOS.


You can do that on Blink, and it was one of the reasons why I started the project. Option as Meta and Cmd as Ctrl :)


Yea, just also side note that error messages aren't very good for saying it doesn't support it vs something weird going on with copy and paste.


Marvellous! I tried an iPad Pro about half a year ago, but the lack of a good ssh/mosh client made me return it. Perhaps I'll need to check it out again -- especially the smaller Pro seems like it could be a fine choice now for a portable terminal.

(I did try Panic back then -- I thought it was quite awkward)


Heck an iPad Air 2 is fast and cheap, if you just need a terminal, or anything else. Pro is good if you use stylus or need ridiculous power.


Unlike other ssh terminals that mostly serve the amateur ssh market?


Does anyone know if I have the option to import and SSH private key and whether or not that data is stored in the secure enclave? If so this would be very valuable for working on the go, but I'm very weary of the security if it will be used for work.

I'd love to see some documentation regarding he security, and some proof that keys are not exportable.


It allows to import an SSH key. When doing that, the public key is stored in disc, and the private key is sent to Keychain (since iOS 7 or 8 encrypted with the Secure Enclave), and only a reference is stored. In this way keys are not exportable or sent to the backup. We use UICKeyChainStore for that, and can check the code yourself too :)


Slick!


I thought GPL was incompatible with the App Store? Wasn't VLC famously pulled from the App Store over a complaint about this? I know VLC eventually got back on, but I'm having trouble finding any info about how they resolved the problem.


Mosh and technologies involved actually have an iOS exception that makes it compatible as long as the resulting project is GPL'd too.

In the case of VLC they had to relicense, so a process very similar to this one.


So that means Blink is actually dual-license? I was actually a little bit confused about how Blink makes the GPL App-store compatible. It would be interesting to see a blog post or some extended discussion on the website about the licensing issue, both to assure users that Blink is "safe" from being kicked out of the store, and to give some discussion on how GPL can actually make it into the App store. It would certainly be nice to have more iOS software follow Blink's example.


Does Mosh itself not depend on any other GPL'd code?


Other libraries are system libraries and BSD licensed like protobuf.


How does it compare to Panic's Prompt?


Three things: - Mosh & SSH support: In Prompt and any other iOS ssh client, connections break every 3 minutes. With Mosh that isn't a problem. - Full external keyboard support: Alt as Esc, Caps as Ctrl, you can have your terminal as you do in your desktop/laptop. - Speed and rendering: Blink uses Google's HTerm, so it is faster and you can add your own themes and fonts.


I'm a long-time Prompt user, and I just purchased Blink on the App Store after seeing that mapping Caps Lock to CTRL is supported. It does seem to work, although not really as consistently as I'd like it to. I'm using an iPad Air 2 and the Microsoft Universal Foldable Keyboard, for reference.

When I try to use, say, CTRL+V in Vim to do a block selection, it will assume I pressed V by itself unless I hold Caps Lock for about half a second before pressing V. Furthermore, it will toggle the Caps Lock light on my keyboard (which I understand can't be fixed), which is a problem because if I exit Blink, the Caps Lock key is now reversed if I exited Blink while the Caps Lock key was still active.

Perhaps there's a way to track if Caps Lock had been pressed an even or odd number of times, and send some signal back to the OS to correct this behavior?

I'm not sure what needs to be fixed in order to get the Caps Lock functionality to work without a delay.


We are aware of the "track Caps Lock" problem. iOS actually has an option to disable caps on the accessibility but still doesn't work with external keyboards. Hopefully soon.

Thanks for the heads up about the delay. I have only see that problem once with the iPad when I had another combination, do you have any other combination like caps as ESC? I definitely haven't seen that with other keys, and I'm really picky about my Cmd as Ctrl on Emacs :D


I think I've figured out why I'm seeing a delay. It must be related to the Caps Lock delay that some keyboards have, wherein the keyboard will prevent Caps Lock from engaging (or even sending any signal at all to an app, apparently) unless the key has been engaged for more than just a tap.

It looks like the only way to fix this would be to buy a keyboard without this feature.


Mosh and caps lock remap are the killer features here over Prompt.

I don't care about the former, having never needed it - when I need to shell in from my phone, it's invariably for some quick, synchronous action that doesn't take long enough that I need to background it and do something else for a while without the socket timing out. But if that is your use case, Prompt will constantly frustrate you.

Remapping Caps to Control, on the other hand, is absolutely brilliant, and something whose absence in iOS I've regretted since I bought my first iPod Touch. It'd be ideal to have the option at the system level, as in OS X, but absent that, a terminal emulator that can do it is a lot better than nothing - it's just a shame Blink has come along so many years after I gave up trying to use my iPad as a laptop replacement.


I will be able to remap Caps to Ctrl on my Microsoft Bluetooth keyboard?! Sold!

IMHO you should expose this as the #1 feature.


Looks like a nice app. One correction through: I use Prompt a lot and have been for a long time. I don't have connections break when I use it.

You might provide a video clip of a demo to help make a purchase decision.


They meant if you close it and, say, want to read or follow along with a book in iBooks and not use split view, you have to multitask back to Prompt every 3 minutes or iOS will suspend the app, killing your SSH connection in the process. Since Prompt is closed source and on the App Store, they can't use mosh which solves this problem.


Thanks for clarifying that. I use it for 5 or 10 minutes, finish whatever I am doing, then logout.


iOS only allows background connections to be maintained for three minutes. That means if you keep the app in the background longer than that, for example while checking Safari, the connection breaks. Every app has this limitation (TeamViewer, etc...) and it is usually solved by showing a notification to make the user switch to the app again. It is described on Prompt's KB too.

Blink also has this problem, but Mosh is able to recover gracefully.


Interesting that you use hterm to power this. Does that mean you start a WebView. Or do you somehow have a virtual dom of sorts that renders to Obj-c view (a la react-native)?


It is a WKWebView, and the way SSH or Mosh are connected is by just a simple descriptors system on top of it so that read and write operations can be done. So everything is really "unixy", you can send fprintf to the terminal, etc...

It proved to be fast enough, and it is still faster than anything else. I'm considering if building on top of HyperTerm at some point would be doable too :)


That would be awesome. There is already quite a community that sprung up around hyperterm.


The biggest thing I can see is mosh support, which is a nice addition if using over cellular. Prompt is great, but unfortunately can never support mosh due to licensing issues.


I'm extremely impressed by this. If you ever decide to build an Android version, sign me up.


Note that you can use mosh on Android using Termux (https://termux.com) - run 'apt update && apt install mosh' to install the mosh package.


Does Blink have high function key numbers like F-17? The lack in Prompt forces some ungraceful exits for Epic Cache admins.

Also, does it have a method of emulating the non-numeric characters generated by the numeric keypad of a big old keyboard?


I can definitely increase the number of F keys either on the on-screen keyboard and the F keys mapping.

Blink also supports Cursor keys and remap of those (by default Cmd + Arrow).

My plan is to have some kind of "special keys maps", like iTerm does, to emulate any other key through defined combinations. That I guess should cover the rest of the special keys you might need.


Looks amazing - can't wait to try it! FWIW, noticed a minor typo in www.blink.sh: "Blink can and should be >you< all-day-long tool."


Fixed! Thanks :)


Does it allow you to verify fingerprints? [Hopefully with the new & improved case-sensitive SHA256 format as well? :)]


Heh, I have the opposite problem with Prompt - none of my OpenSSH packages are new enough to use the new format, so I can't cross-reference with a known-good SHA-1 fingerprint. Turns out you can run

    cut -d' ' -f2 /etc/ssh/ssh_host_ecdsa_key.pub | base64 -d | openssl sha256 -binary | base64
but this requires actually being on the host (and isn't useful for servers where you don't get a shell).


If I remember, fingerprint was verified using libssh2, but I do not think they do SHA256 yet. Tried to look in their documentation but didn't find it. Would be a great addition too.


Right now it seems to show an SHA1 hash encoded in hex, which is very inconvenient because ssh-keygen displays either MD5 in hex or SHA256 in base64. It should at least tell the user what hash algo was used, I found that out by trial and error.


can I map ⌘ to meta?


You can map ⌘ to Ctrl or ESC, very useful for Emacs :)


I think you've got an excellent product here that stands as a hallmark of what the future of work on iOS looks like


Thanks!! I might actually use that for our webpage :)


This is an excellent website design. I'll definitely be checking this software out


I know, Jamie Zawinski will be proud :D


I bought it after the discussion here. I'm super impressed.


Thanks! Any feedback will be greatly appreciated too, we want to make Blink the best terminal for iOS. :)


$31?!


Well, $20 USD. Not sure what $ you mean.

If you aren't SSHing to boxes from a mobile device often enough that $20 doesn't seem worth it, then this likely isn't for you.

I for one would pay that at the drop of a hat if I only had a cell phone and my servers were down. It's certainly not much for an everyday productivity tool.


I'm not "knocking" this app by any means. Just from the comments here, it's obviously a great tool for a lot of people.

> ... if I only had a cell phone and my servers were down.

I just use my cellphone as a hotspot, my MBP connects to it, and I'm online. Several of my co-workers do the same thing. Is that uncommon? I kinda just assumed that's what most people do (assuming they have a laptop with them, of course).


Ditto. The idea of doing any kind of professional work in a shell via an iOS device doesn't make sense to me at all, and making the shell fancier wouldn't help.


I can only speak for myself here, but for me having Blink means that I can travel for a week and not bring my laptop. Other apps like Prompt were pretty decent, but Blink has brought all the pain points (compared to my Macbook) to (almost) zero, through faster rendering and its amazing support for shortcuts and remapping the keys an the Smart Keyboard. I mostly do development of numeric software, so even when I'm working on the Mac, I'm always just connected to the development server or cluster nodes, with tmux + vim.


There is the iPad Pro for example. With a 4G connection and a decent terminal, it could be quite useful for managing things on the go.

There's also just the scenario that I don't have my laptop but could really use an SSH terminal and CLI environment at the moment.


I occasionally use Prompt. It's for when you get a call about something being broken and you're on a train with only a phone, not for scheduled work.


With an ipad, tmux/emacs/vimand an external keyboard you can use this to actually work without drawbacks and without carrying a laptop around.


Well yeah but there are a lot of times folks don't have their laptops with them.


Thats what you're charging for it in Australia (AUD), which really, very high compared to other apps.


The price is around the same if you convert to US$ or Euros. It's high but worth it. If you look at it, this enables programmers to completely work on an iPad with pretty much no drawbacks.

I guess with this price it's not for the casual user. You can compile it yourself (see their Github page) or ask on Twitter to be added to the testers list, so that you receive the raw builds without having to compile them yourself.


You can build it yourself and load it onto your iOS device should you wish.


Oh! thanks for the tip! :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: