Charm is a collection of open-source CLI tools and libraries designed to make the command line glamorous and capable of building modern terminal applications, interfaces, and automation. It provides both standalone utilities and reusable components to craft interactive experiences, polished UIs, and developer-friendly tooling directly in the terminal.
Overview
Charm offers a suite of CLI-first tools and libraries for building, styling, and deploying terminal-based software. Highlights include interactive prompts and forms, terminal email sending, a markdown renderer with rich CLI/TUI rendering, a lightweight key-value store, and a range of UI components (shaders, visuals, and animation). The ecosystem emphasizes openness, portability across environments, and a focus on making the terminal feel powerful and delightful.
What’s Included
- Huh? Interactive prompts and forms: Build simple, elegant interactive prompts with minimal code to collect user input in the terminal.
- Emails Sent: A terminal-based email tool (via Resend) to send emails directly from the CLI.
- Libs: A collection of terminal-building libraries and components for rapid UI creation.
- Bubble Tea Flavor Tar o: Build terminal user interfaces from the future with a composition of UI components.
- Lip Gloss: A styling and layout toolkit for terminal output to achieve polished visuals.
- Glow: A markdown renderer for the terminal with first-class CLI and TUI interfaces for comfortable reading and navigation.
- Skate: A personal key-value store with a simple, powerful CLI for lightweight data storage.
- Harmonica: A physics-based animation toolkit to add smooth motion to terminal UIs.
- Logger (Log): A compact, capable logger for terminal applications.
- Mods: A CLI interface to access and leverage the world’s best ML models for experimentation (AI capabilities in the CLI).
- Gum tools: Glamorous shell scripting helpers to make scripts pop without heavy Go coding.
- All-in-one styling: The platform emphasizes a cohesive aesthetic and stylish terminal experiences with modular components.
How It Works
- Install and import the relevant Charm libs or use the standalone CLI tools.
- Combine prompts, forms, and UI components to build interactive terminal apps.
- Use Glow to render markdown content with rich CLI/TUI support, or use Lip Gloss for layouts and themes.
- For data storage, Skate provides a simple key-value store; integrate with other Charm components as needed.
- For animations and visuals, Harmonica adds physics-based motion to enhance user experience.
- If you need to send emails from the terminal, use Emails Sent with Resend integration.
Use Cases
- Build interactive onboarding wizards and data-collection flows in the terminal.
- Create polished terminal dashboards with markdown-rendered content and rich UI components.
- Quickly prototype CLI tools with a consistent, stylish look and feel.
- Lightweight data storage for CLI apps using the built-in key-value store.
- Add subtle, engaging animations to terminal apps to improve UX.
Safety and Philosophy
- Charm emphasizes open-source collaboration and portability across distributed environments (US, Brazil, Canada, Sweden).
- The ecosystem is designed to be modular and composable, enabling developers to pick and choose components without heavy dependencies.
Core Features
- Interactive prompts and forms in the terminal (Huh?)
- Email sending from the CLI via Resend integration (Emails Sent)
- Rich terminal UI components and libraries (Bubble Tea flavors, Lip Gloss, Glow, etc.)
- Markdown rendering in the CLI with Glow
- Lightweight, simple key-value store (Skate)
- Animation toolkit for terminal UIs (Harmonica)
- Lightweight logger (Log) for terminal apps
- Mod-based access to ML models from the command line (Mods)
- Glamorous shell scripting helpers (Gum) to enhance scripts without heavy coding
- Open-source and portable across multiple environments
How to Get Started
- Explore the Libs and pick components you need (Huh prompts, Glow markdown, Skate storage, etc.).
- Install via the Charm distribution or individual packages.
- Integrate interactive prompts, UI components, and markdown rendering into your CLI toolchain.
- Ship lightweight, stylish terminal applications with consistent UX.
Target Audience
- Terminal developers seeking to build modern, interactive CLI applications.
- Teams wanting a cohesive, open-source toolkit for terminal UI and automation.
- Individuals aiming to enhance the aesthetics and usability of command-line tools.