Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
B

blessed-vue

> 编程语言
Open source

A VueJS runtime to let you write command line UI in Vue

380 stars0 likes1 views
WebsiteGitHub

About

A VueJS runtime to let you write command line UI in Vue

blessed-vue

Compile against VueJS 2.5.13.

This package is a Vue.js runtime for blessed and now blessed-contrib. The current version is compiled against VueJS 2.5.13, which means those lovely features and bug fixes comes with v2.5.13 in vue core will be available in the current version. For example, the lovely improvements about the functional components.

Blessed is a great replacement for ncurses in building UI for terminal interface in Javascript. The intention of creating this runtime is to bring declarative templates and reactive components of VueJS to simplify the layout of blessed components.

blessed-contrib is an extension of blessed with custom drawllie widgets to make building dashboard easy in command line.

This package is inspired by react-blessed.

Table of content

  • Features
    • Supported Element
    • Style
      • Static string style
      • Array style binding
      • Object style
  • Installation
  • Example
    • Configuration for rollup-plugin-vue
    • Screenshots
      • Login
      • Dashboard

Features

Supported Element

All the widgets in blessed widgets and blessed-contrib widgets should be supported out of the box. For details of what attributes are available for each element, please refer to the specific widget in blessed document or blessed-contrib document.

Style

The styling in Blessed Vue is not quite like CSS in the Web. In CSS the style you define on the parent can cascade/flow down to its children down the DOM tree, where in blessed the style is only used by the element it is defined on.

You can style your blessed element in the following ways.

Static string style

If you don't need value binding in your element style. Blessed Vue supports string style definition. For nested value like focus, hover, scrollbar, etc..., you can use dot style to specify the nested value. See the following example.

Array style binding


  

Object style


  

Installation

npm install blessed-vue

Example

The following example consists of two files. index.js & test-component.vue. At the moment blessed-vue shares the same template compiler with web runtime. So in order to load the single file component, you can use either vue-loader when you are using webpack, or rollup-plugin-vue when you are using rollup.

Configuration for rollup-plugin-vue

There are two lines of config you need to put into rollup-plugin-vue to get blessed-vue working properly. The full example is available in the login example.

// rollup.config.js

import vue from 'rollup-plugin-vue';
// more imports

export default {
  entry: 'src/index.js',
  dest: 'bundle.js', // equivalent to --output
  ..., // more configs.
  plugins: [
    vue({
      htmlMinifier: {
        caseSensitive: true, // turn on the case sensitive for preserving the props
        keepClosingSlash: true // keep the singleton elements working.
      }
    }),
    ... // more plugins
  ],
  ...
};

There are examples available in example folder.

  • login: Full example shown in README.md using rollup. (Using official plugin rollup-plugin-vue now.)
  • call-log: an example of webpack & vue-loader.
  • dashboard: an example of how to use blessed-contrib element to build a command line dashboard.

Screenshots

Login

Dashboard

index.js

…

template.vue


  
    
      
      Username: 
      
      Password: 
      
      
      
      
    
  

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

JavaScript

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言