Hacker News new | past | comments | ask | show | jobs | submit login
Blessed – A high-level terminal interface library for Node.js (github.com/chjj)
44 points by tilt on July 15, 2015 | hide | past | favorite | 7 comments



Thanks for posting this. It certainly got a lot more attention than my original post for blessed: https://news.ycombinator.com/item?id=6058639

I guess I'm bad at HN. :)


Blessed makes sexy terminal apps easy. But of course I wanted more, like making terminal apps in the React (functional reactive) model[1], using ClojureScript (running on nodejs). And then at some point cross-compile simple text-based interfaces to both terminal (through blessed) and to the web and mobile (with React and React Native.) So I've been at this for a while, when time permits, assembling such a library on top of core.async:

https://github.com/goldfeld/i9n

I'm going for simple and declarative, especially for common terminal interface navigation, such as menus, lists and dashboards. Now I'm working on a built-in tiling/split windowing system and on to become a terminal multiplexer toolkit builder of sorts I guess. The whole motivation behind this work is automation of developer environments through an efficient interface (inspired by vim and implementing its command mode).

[1] There's still quite some state from blessed to abstract out.


On another note,

I would love to see higher level frameworks wrapping blessed. Blessed gives you the API and some fancy widgets/elements: it's the (nicer) DOM for the terminal.

This guy already started an XML-based markup language for blessed: https://github.com/kevinhikaruevans/blessedoo. That's the kind of stuff I love to see as the author of blessed.

If you could take something like JSDOM (combined with a CSSOM node module), and make blessed the backend rendering engine, you could practically just use React, Angular, or any of the high level web frameworks. Or you could just make a kickass terminal web browser with just the DOM/CSSOM wrapper.

Blessed has everything you need to make a terminal a browser-like environment: overlay images, ansi images, element transparency, every mouse protocol still in use, hover effects, forms, dynamic layout positioning, etc.

I really want to see someone do this. If not, I might have to do it some day.

Also, the first person to create a terminal-based MMORPG gets a satoshi.


Your API opens up a lot of possibilities in my head too. Thanks for bestowing it upon the node community! The library I posted is a foundation layer on which I'm building a web browser for the terminal, but it's more in the style of a super-integrated Emacs web browser or old text browsers, with a consistent, accessible interface, made eye-catching thanks to blessed.


No thanks necessary. It all came out of my terminal obsession. Nights where I didn't sleep because I loved making cool shit happen in my terminal.


Just out of curiosity, why would you implement a terminal app in clojurescript instead of just clojure?


A terminal app in Clojure runs on the JVM, so it doesn't boot up as fast as ClojureScript on Node.js. It's most important for quick utilities or things that may be used in a pipe, but then if vim always took a full second to start it would bother me too, so I guess any terminal app that's not a daemon I'd rather run it on Node.js than on the JVM.




Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: