blessed-widget-generator
Generate blessed widgets for Node.js terminal UIs with boxes, lists, forms, and dashboard layouts.
Best use case
blessed-widget-generator is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Generate blessed widgets for Node.js terminal UIs with boxes, lists, forms, and dashboard layouts.
Teams using blessed-widget-generator should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/blessed-widget-generator/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How blessed-widget-generator Compares
| Feature / Agent | blessed-widget-generator | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Generate blessed widgets for Node.js terminal UIs with boxes, lists, forms, and dashboard layouts.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Blessed Widget Generator
Generate blessed widgets for Node.js terminal UIs.
## Capabilities
- Generate blessed widget definitions
- Create dashboard layouts
- Set up interactive forms
- Implement custom components
- Configure styling and borders
- Create event handling patterns
## Usage
Invoke this skill when you need to:
- Build terminal dashboards with Node.js
- Create complex TUI layouts
- Implement monitoring interfaces
- Set up blessed project structure
## Inputs
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| projectName | string | Yes | Project name |
| layout | string | No | Layout type (dashboard, form, list) |
| widgets | array | No | Widget definitions |
## Generated Patterns
### Dashboard Layout
```javascript
const blessed = require('blessed');
const contrib = require('blessed-contrib');
// Create screen
const screen = blessed.screen({
smartCSR: true,
title: 'System Dashboard',
});
// Create grid layout
const grid = new contrib.grid({
rows: 12,
cols: 12,
screen: screen,
});
// CPU Line Chart
const cpuLine = grid.set(0, 0, 4, 6, contrib.line, {
style: { line: 'yellow', text: 'green', baseline: 'black' },
xLabelPadding: 3,
xPadding: 5,
showLegend: true,
label: 'CPU Usage',
});
// Memory Gauge
const memGauge = grid.set(0, 6, 4, 6, contrib.gauge, {
label: 'Memory Usage',
stroke: 'green',
fill: 'white',
});
// Log Box
const logBox = grid.set(4, 0, 4, 12, contrib.log, {
fg: 'green',
selectedFg: 'green',
label: 'Logs',
});
// Process Table
const processTable = grid.set(8, 0, 4, 12, contrib.table, {
keys: true,
fg: 'white',
selectedFg: 'white',
selectedBg: 'blue',
interactive: true,
label: 'Processes',
columnSpacing: 4,
columnWidth: [10, 30, 10, 10],
});
// Update data
function updateDashboard() {
// CPU data
cpuLine.setData([{
title: 'CPU',
x: ['1', '2', '3', '4', '5'],
y: [Math.random() * 100, Math.random() * 100, Math.random() * 100, Math.random() * 100, Math.random() * 100],
}]);
// Memory
memGauge.setPercent(Math.random() * 100);
// Logs
logBox.log(`[${new Date().toISOString()}] System event`);
// Processes
processTable.setData({
headers: ['PID', 'Name', 'CPU', 'MEM'],
data: [
['1234', 'node', '2.5%', '150MB'],
['5678', 'chrome', '15.2%', '500MB'],
],
});
screen.render();
}
// Key bindings
screen.key(['escape', 'q', 'C-c'], () => process.exit(0));
// Update interval
setInterval(updateDashboard, 1000);
updateDashboard();
screen.render();
```
### Form Widget
```javascript
const blessed = require('blessed');
const screen = blessed.screen({
smartCSR: true,
title: 'Configuration Form',
});
const form = blessed.form({
parent: screen,
keys: true,
left: 'center',
top: 'center',
width: 60,
height: 20,
border: { type: 'line' },
style: { border: { fg: 'blue' } },
});
// Input field
blessed.text({
parent: form,
top: 1,
left: 2,
content: 'Username:',
});
const usernameInput = blessed.textbox({
parent: form,
name: 'username',
top: 1,
left: 12,
height: 1,
width: 40,
inputOnFocus: true,
style: { fg: 'white', bg: 'black' },
});
// Password field
blessed.text({
parent: form,
top: 3,
left: 2,
content: 'Password:',
});
const passwordInput = blessed.textbox({
parent: form,
name: 'password',
top: 3,
left: 12,
height: 1,
width: 40,
censor: true,
inputOnFocus: true,
style: { fg: 'white', bg: 'black' },
});
// Submit button
const submitBtn = blessed.button({
parent: form,
name: 'submit',
content: ' Submit ',
top: 6,
left: 'center',
shrink: true,
style: {
fg: 'white',
bg: 'blue',
focus: { bg: 'green' },
},
});
submitBtn.on('press', () => {
form.submit();
});
form.on('submit', (data) => {
console.log('Form data:', data);
process.exit(0);
});
screen.key(['escape', 'q'], () => process.exit(0));
screen.render();
```
## Dependencies
```json
{
"dependencies": {
"blessed": "^0.1.81",
"blessed-contrib": "^4.10.1"
}
}
```
## Target Processes
- tui-application-framework
- dashboard-monitoring-tui
- interactive-form-implementationRelated Skills
color-palette-generator
Generate accessible color palettes with WCAG compliance
tracing-schema-generator
Generate distributed tracing schemas for OpenTelemetry with Jaeger/Zipkin integration
metrics-schema-generator
Generate metrics schemas for Prometheus, OpenTelemetry, and Grafana dashboards
log-schema-generator
Generate structured logging schemas with correlation ID patterns and ELK/Splunk integration
load-test-generator
Generate load test scripts for k6, Locust, and Gatling from OpenAPI specs
graphql-schema-generator
Generate GraphQL schemas from data models with resolver stubs and federation support
docs-site-generator
Generate documentation sites using Docusaurus, MkDocs, or VuePress
dependency-graph-generator
Generate module dependency graphs with circular dependency detection and coupling metrics
dashboard-generator
Generate monitoring dashboards for Grafana and DataDog with alert integration
c4-diagram-generator
Specialized skill for generating C4 model architecture diagrams. Supports Structurizr DSL, PlantUML, and Mermaid formats with multi-level abstraction (Context, Container, Component, Code).
adr-generator
Specialized skill for generating and managing Architecture Decision Records (ADRs). Supports Nygard, MADR, and custom templates with auto-numbering, linking, and status management.
typespec-sdk-generator
Microsoft TypeSpec-based API and SDK generation