emacs-vui

Build declarative, component-based UIs in Emacs buffers with vui.el.

Updated Jan 2, 2026
One-click install
npx skills add https://github.com/r0man/gastown.el --skill emacs-vui
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: emacs-vui
Source: https://github.com/r0man/gastown.el/tree/main/.claude/skills/emacs-vui
Command: npx skills add https://github.com/r0man/gastown.el --skill emacs-vui

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Building modern, declarative UIs inside Emacs buffers is tedious and error-prone when using imperative rendering. Vui.el provides a React-like model with components, state, and lifecycle, simplifying UI creation.

Core Features & Use Cases

  • Declarative components: define UI with vui-defcomponent and render with vui-mount.
  • Reactive state and lifecycle: use hooks, on-mount, on-update, and on-unmount for predictable behavior.
  • Async and advanced layouts: supports vui-use-async, vui-hstack, vui-vstack, and a suite of primitives for complex interfaces.

Quick Start

Create and mount a simple vui component to an Emacs buffer to render your first UI.

Frequently Asked Questions about emacs-vui

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build declarative UIs in Emacs buffers without imperative rendering?

Declarative UIs in Emacs buffers are built using vui.el, which provides a React-like model with components, state, and lifecycle management to simplify UI creation. You define UIs with vui-defcomponent and render them using vui-mount.

Does building component-based Emacs UIs require external dependencies?

Building component-based Emacs UIs with vui.el requires no external dependencies, needing only Emacs Lisp basics. It supports advanced features like hooks, context, error handling, and developer tools natively.

What is the best way to render complex interfaces with async data in Emacs?

The best way to render complex interfaces with async data in Emacs is using vui primitives like vui-use-async, vui-hstack, and vui-vstack. These components support advanced layouts and asynchronous data fetching natively.

Can I use React-like components like buttons and tables for Emacs UI rendering?

You can use React-like components for Emacs UI rendering through vui.el primitives such as vui-text, vui-button, and vui-table. These allow you to build structured, component-based interfaces directly inside Emacs buffers.