HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
Yomguithereal
react-blessed
JavaScript2015–2023
Yomguithereal / react-blessed

react-blessed

A react renderer for blessed.

24Distinct people
30Mentions
1Explicit recommenders
4.5KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A react renderer for blessed.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

My favorite: https://github.com/Yomguithereal/react-blessed

srott used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 7:02:26 AM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year30 dated mentions

Observed mentions: 2015-07-23 05:20:13 UTC to 2023-05-08 17:18:20 UTC.

0369122015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 5 mentions; 5 submissions, 0 comments20152016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 12 mentions; 1 submissions, 11 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2023

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC550
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC202
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC12111
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC404
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC101
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC303
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC101
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC101

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
react-blessed A React custom renderer for the blessed library. This renderer should currently be considered as experimental, is subject to change and will only work with React's latest version (17.x.x, using Fiber). Summary Installation Demo Usage Rendering a basic application Nodes & text nodes Refs Events Classes Using blessed forks Using the devtools Roadmap FAQ Contribution License Installation You can install react-blessed through npm: # Be sure to install react>=17.0.0 & blessed>=0.1.81 before npm install blessed react # Then just install `react-blessed` npm install react-blessed Demo For a quick demo of what you could achieve with such a renderer you can clone this repository and check some of the examples: git clone https://github.com/Yomguithereal/react-blessed cd react-blessed npm install # To see which examples you can run: npm run demo # Then choose one to run: npm run demo animation Usage Rendering a basic application import React, {Component} from 'react'; import blessed from 'blessed'; import {render} from 'react-blessed'; // Rendering a simple centered box class App extends Component { render() { return ( <box top="center" left="center" width="50%" height="50%" border={{type: 'line'}} style={{border: {fg: 'blue'}}}> Hello World! </box> ); } } // Creating our screen const screen = blessed.screen({ autoPadding: true, smartCSR: true, title: 'react-blessed hello world' }); // Adding a way to quit the program screen.key(['escape', 'q', 'C-c'], function(ch, key) { return process.exit(0); }); // Rendering the React app using our screen const component = render(<App />, screen); Nodes & text nodes Any of the blessed widgets can be rendered through react-blessed by using a lowercased tag title. Text nodes, on the other hand, will be rendered by applying the setContent method with the given text on the parent node. Refs As with React's DOM renderer, react-blessed lets you handle the original blessed nodes, if you ever need them, through refs. class CustomList extends Component { componentDidMount() { // Focus on the first box this.refs.first.focus(); } render() { return ( <element> <box ref="first"> First box. </box> <box ref="second"> Second box. </box> </element> ); } } Events Any blessed node event can be caught through a on-prefixed listener: class Completion extends Component { constructor(props) { super(props); this.state = {progress: 0, color: 'blue'}; const interval = setInterval(() => { if (this.state.progress >= 100) return clearInterval(interval); this.setState({progress: this.state.progress + 1}); }, 50); } render() { const {progress} = this.state, label = `Progress - ${progress}%`; // See the `onComplete` prop return <progressbar label={label} onComplete={() => this.setState({color: 'green'})} filled={progress} style={{bar: {bg: this.state.color}}} />; } } Classes For convenience, react-blessed lets you handle classes looking like what react-native proposes. Just pass object or an array of objects as the class of your components likewise: // Let's say we want all our elements to have a fancy blue border const stylesheet = { bordered: { border: { type: 'line' }, style: { border: { fg: 'blue' } } } }; class App extends Component { render() { return ( <element> <box class={stylesheet.bordered}> First box. </box> <box class={stylesheet.bordered}> Second box. </box> </element> ); } } You can of course combine classes (note that the given array of classes will be compacted): // Let's say we want all our elements to have a fancy blue border const stylesheet = { bordered: { border: { type: 'line' }, style: { border: { fg: 'blue' } } }, magentaBackground: { style: { bg: 'magenta' } } }; class App extends Component { render() { // If this flag is false, then the class won't apply to the second box const backgroundForSecondBox = this.props.backgroundForSecondBox; return ( <element> <box class={[stylesheet.bordered, stylesheet.magentaBackground]}> First box. </box> <box class={[ stylesheet.bordered, backgroundForSecondBox && stylesheet.magentaBackground ]}> Second box. </box> </element> ); } } Using blessed forks Because blessed is not actively maintained in quite a while, you might want to use one of it's forks. To do that, import createBlessedRenderer function instead: import React, {Component} from 'react'; import blessed from 'neo-blessed'; import {createBlessedRenderer} from 'react-blessed'; const render = createBlessedRenderer(blessed); Using the devtools react-blessed can be used along with React's own devtools for convenience. To do so, just install react-devtools in your project and all should work out of the box when running the Electron app, as soon as a react-blessed program is running on one of your shells. Roadmap Full support (meaning every tags and options should be handled by the renderer). react-blessed-contrib to add some sugar over the blessed-contrib library (probably through full-fledged components). Faq <list/> : To enable interactions, add mouse={ true } and/or keys={ true } Contribution Contributions are obviously welcome. Be sure to add unit tests if relevant and pass them all before submitting your pull request. # Installing the dev environment git clone git@github.com:Yomguithereal/react-blessed.git cd react-blessed npm install # Running the tests npm test License MIT
Read the full README on GitHub

What Hacker News says

1 sources

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.