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.