Ink
blessed
Our great sponsors
Ink | blessed | |
---|---|---|
64 | 22 | |
25,724 | 11,117 | |
- | - | |
6.4 | 0.0 | |
30 days ago | 27 days ago | |
TypeScript | JavaScript | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Ink
-
I created a simple CLI tool that helps you code FAST!
I've always wanted to build a CLI tool, and when I realized that you can build one using React with Ink, I converted my Python script into a CLI tool.
-
Delete git branches in batches
⚠️ Git for Windows Terminal is currently not supported, and the tool is limited to ink. We will look for alternatives later. Please use CMD, Vscode terminal's Git... terminal
-
Setup Simple Web UI for Node.js App in Seconds
There is a good solution for some of those cases - ink. With ink, I can implement text-based UI with knowledge of React, which is neat but there are still some caveats for my usages:
-
Building Reactive CLIs with Ink - React CLI library
Looks cool, right? Building a similar UI in the terminal without any library would be quite hard, though, thanks to Ink it's almost as easy as building any frontend UI with React.
-
Terminal-like output library for js?
ink?
-
Launch HN: Resend (YC W23) – Email API for Developers Using React
You get the comfort of using react components instead of fighting with HTML tables to make your emails look nice. I think it's awesome! It's analog to what ink[0] does with CLI outputs. Sure, you could write fancy CLI outputs in bash, but ink takes the pain out of it and makes it easy.
-
Is Node.js a good way to implement a CLI app with persistence?
Due to Node's asynchronous behavior, it makes Node great for long-running processes that make a lot of HTTP requests, database calls, and other async ops, like a web server or a REST API. However, if I am making a CLI tool for pretty much personal use only, with very minimal async operations, then blocking the event loop with a synchronous function that will resolve almost immediately will make no difference perceivable to a human brain or have any speed benefits that someone can actually observe (think `fs.readFileSync` or `require('dotenv') of 10 line config file, or a quick embedded db (sqlite) query with only ~100 records. I'm wondering what the best way to implement the database part of the app synchronous. I can read/write to JSON files but it would be tricky because the data is relational, and some complex joins and other data wrangling operations are required (complex to perform in JS but are easy to implement in a SQL statement). It's not important what the operations are, that's not the point of this post. This is mostly a personal project of interest: making this CLI tool completely avoiding any async operations/using no promises. I would like to use node tho, as I said this is just out of interest and I also want to experiment with several CLI libraries such as Ink or Cliffy.
-
Ink: React for interactive command-line apps
Ink is amazing for quickly hacking together TUIs. I recently did so with Nbb (Node Babashka) and and enjoyed the experience overall.
My only real complaint is how everything in your VDOM seems to re-render on a state change. IIRC this is being addressed [1], but is something to be mindful of, especially if your users may be using slow machines.
-
create-helix-app: project templates with Helix and more
To try it out, run npx create-helix-app in your terminal. It is powered by Nbb, Ink, and Helix itself!
blessed
-
good high-level ncurses library
So far I found this library github.com/chjj/blessed which is very powerful, I need to render animated charts and other complex objects and for my purpose it is doing well.
-
Ink: React for interactive command-line apps
Alas https://github.com/chjj/blessed/issues/418#issuecomment-1533...
I considered blessed for a recent project, but ended up just simplifying the approach & making do with Inquirer + Meow instead due to the maintenance status. Haven't found anything else equivalent to blessed, other than Ink.
I tried this a long time ago when I was in love with react. It felt difficult to wrap my head around the yoga layout engine. I'm glad others here in this thread seem to like yoga, but I didn't. And, now I really dislike react for various reasons.
I would use this if I needed to write a command line app with nodejs:
-
My 2022 side project: @steggy/tty. Custom widgets and utilities for building terminal apps on top of NestJS. Looking for testers / feedback
Inquirer is still probably the library that is most similar, if you are looking for comparisons to existing tools. My goal was to create a set of tools that uses the terminal window for a single operation at a time. The UI providing as much contextual information as possible to the user to know what actions they can perform, and any relevant information. A bit like a "choose your adventure" via terminal app sort of thing. Explicitly trying to stay clear of full screen and dashboard type stuff, like what blessed provides.
-
Like seriously why does not one does it ?
Not exactly a shell scripting framework, but y’all should check out blessed js. Weirdly enough I just found it yesterday and shit goes absolutely wild in the terminal
-
NodeJS Backend with UI Help. New to UI/Frameworks
Perhaps you’d like a terminal based UI? https://github.com/chjj/blessed
-
Command line applications
You can build them from scratch, or use one of many specialized libraries on NPM, like commander, yargs, blessed, terminal kit, prompts, and many more.
-
Hey Rustaceans! Got a question? Ask here! (28/2022)!
I was hoping to write my app in Rust as a learning exercise, but my alternative is https://www.npmjs.com/package/blessed, which is NodeJS. Ah well.
-
How to create terminal GUI?
Using this https://github.com/chjj/blessed
-
Xterm.js
Fun fact - xterm.js was originally created by chjj who also wrote the code for Handshake DNS among other things.
My favorite is blessed [1].
He’s definitely a super programmer. Thank you for all your contributions to this world @chjj!
What are some alternatives?
vorpal - Node's framework for interactive CLIs
Commander.js - node.js command-line interfaces made easy
oclif - CLI for generating, building, and releasing oclif CLIs. Built by Salesforce.
Inquirer.js - A collection of common interactive command line user interfaces.
nestjs-commander - A module for using NestJS to build up CLI applications
neo-blessed - A drop-in replacement for for Blessed. A high-level terminal interface library for node.js.
tui-rs - Build terminal user interfaces and dashboards using Rust
KeyboardJS - A JavaScript library for binding keyboard combos without the pain of key codes and key combo conflicts.
omelette - Omelette is a simple, template based autocompletion tool for Node and Deno projects with super easy API. (For Bash, Zsh and Fish)
terminal-kit - Terminal utilities for node.js
Turbo Vision - A modern port of Turbo Vision 2.0, the classical framework for text-based user interfaces. Now cross-platform and with Unicode support.
rich - Rich is a Python library for rich text and beautiful formatting in the terminal.