croatoan

Design, extend, and debug terminal user interfaces in Common Lisp.

Updated May 6, 2026
One-click install
npx skills add https://github.com/htayj/src --skill croatoan
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: croatoan
Source: https://github.com/htayj/src/tree/main/dotfiles/clawmacs/.clawmacs.d/skills/croatoan
Command: npx skills add https://github.com/htayj/src --skill croatoan

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) and assets (resource) components.

What problem does it solve?

Developers need a structured, high-level toolkit for creating, extending, and debugging terminal-based user interfaces in Common Lisp, avoiding manual low-level terminal control.

Core Features & Use Cases

  • UI Construction: Build complex terminal applications using window, panel, and form abstractions.
  • Event Handling: Implement keybindings, mouse interactions, and resize responsiveness.
  • Component Layout: Organize screens with grids, layouts, menus, and dialogs.
  • Styled Output: Use colors, borders, and shapes to enhance visual clarity.
  • Concurrency & Thread Safety: Safely update the UI from SLIME or background threads via queueing.
  • Module & Source Routing: Use source maps and API indexes to navigate implementation details.

Quick Start

Use with-screen to start a terminal UI, bind keys with bind, and run the event loop with run-event-loop for interactive applications.

Frequently Asked Questions about croatoan

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

FAQPage Schema
How do I build a terminal UI in Common Lisp without manual low-level control?▼

You can build a terminal UI in Common Lisp using high-level window, panel, and form abstractions. Start with the `with-screen` macro, bind keys with `bind`, and execute `run-event-loop` for interactive applications.

How does thread-safe terminal UI updating work in Lisp?▼

Thread-safe terminal UI updating works by queueing updates from SLIME or background threads. This mechanism prevents race conditions when concurrent operations modify the interface state during the event loop.

Can I handle mouse interactions and keybindings in a Lisp terminal application?▼

Yes, you can handle mouse interactions, resize responsiveness, and keybindings in a Lisp terminal application. The toolkit provides dedicated event handling features to capture and route user input efficiently.

What is the best way to organize screens and layouts for a complex terminal interface?▼

The best way to organize complex terminal interfaces is using built-in component layout abstractions. You can structure screens visually using grids, menus, dialogs, and styled output like colors and borders.

How do I navigate source modules and APIs when debugging a Lisp terminal UI?▼

You can navigate implementation details using source maps and API indexes. This source routing functionality allows developers to locate specific modules and debug complex terminal UI implementations effectively.