Charm.sh

Charm.sh offers open-source tools for building elegant command-line interfaces and TUI apps in Go. Explore features, use cases, and pricing.

Charm.sh is an open-source platform offering a suite of tools, libraries, and services for building command-line and terminal-based applications. Created by the Charm team, its core philosophy is to bring modern design and interactivity to traditionally minimal CLI environments.

Charm’s projects are built in Go (Golang) and are freely available to the open-source community. From text-based UIs and stylish prompts to SSH-based key storage and secure remote authentication, Charm tools help developers build apps that feel as powerful and polished as graphical interfaces—right from the terminal.

With hundreds of thousands of downloads, growing GitHub stars, and an active open-source community, Charm.sh is increasingly becoming the go-to ecosystem for building elegant and secure terminal software.


Features

Charm.sh includes a range of libraries and command-line tools, each serving a specific function in building CLI or TUI apps:

1. Bubbletea

A powerful, extensible Go framework for building rich terminal user interfaces using a functional Model-Update-View architecture (inspired by The Elm Architecture).

2. Lipgloss

A declarative styling library for terminal applications. Think of it as CSS for the command line, making it easy to add colors, borders, padding, and layout controls.

3. Bubbles

A library of ready-to-use components (e.g., spinners, text inputs, checkboxes) for Bubbletea apps, helping developers rapidly build UI features.

4. Glow

A markdown reader for the command line. It displays markdown beautifully and is built with Bubbletea and Lipgloss.

5. Charm Cloud (Charm Cloud Key Infrastructure)

A secure, SSH-backed key infrastructure for storing secrets and identity verification over the network—without setting up your own servers.

6. Wish

Build SSH-based applications that act like modern web apps but operate entirely within the terminal.

7. Soft Serve

A self-hosted Git server with a terminal-first interface. Developers can browse repositories and collaborate via the terminal.

8. Pop

A secure, interactive authentication system that works over SSH and powers login flows in the terminal.


How It Works

Charm.sh is built on the Go programming language and provides modular components that you can plug into your application. Here’s a general overview of how developers use Charm tools:

  1. Design UI with Bubbletea and Lipgloss
    Use Bubbletea’s reactive architecture to create event-driven UI logic, and Lipgloss for layout, colors, and spacing.

  2. Add Interaction with Bubbles
    Integrate form inputs, loading animations, lists, progress bars, etc., to enhance interactivity in your TUI.

  3. Use Wish for Remote Access
    Build apps accessible over SSH using Wish, giving users the ability to interact remotely without a web browser.

  4. Store Secrets with Charm Cloud
    Securely manage keys or encrypted messages using Charm Cloud’s key infrastructure, backed by your SSH keys.

  5. Deploy & Share via Terminal
    Distribute your apps via terminal commands. Users can run your tools from their own consoles with minimal dependencies.

Developers can mix and match these libraries based on their project needs. All libraries are open-source and extensible.


Use Cases

Developer Tools
Build CLI tools that go beyond simple flag parsing, offering interactive UIs and stylized output.

Remote Terminal Apps
Use Wish and Pop to build SSH-accessible apps for documentation, data dashboards, or administrative tools.

Markdown and Note-Taking
Use Glow to read markdown files directly from the command line with rich formatting.

Git Hosting
Self-host Git repositories with Soft Serve and browse them via SSH with collaborative features.

Identity and Access Control
Leverage Charm Cloud’s key infrastructure to secure applications with remote, SSH-based authentication.

Terminal-Based Games or Simulations
Create visual and interactive experiences in the terminal using Bubbletea and Lipgloss.


Pricing

Charm.sh tools are completely free and open-source under permissive licenses. As of May 2025:

  • Open Source

    • All core libraries (Bubbletea, Lipgloss, Bubbles, etc.) are MIT licensed

    • Contributions and community support via GitHub

  • Charm Cloud Services

    • Charm Cloud and remote features like encrypted key storage are free to use

    • Commercial licensing options may be considered for enterprise use cases

  • Self-Hosting Options

    • You can host Soft Serve or Wish applications on your own infrastructure at no cost

For developers, startups, and even enterprise teams, the Charm ecosystem provides significant value without subscription costs.


Strengths

  • Elegant UI/UX in Terminal
    Charm tools help developers design intuitive and beautiful CLIs and TUIs.

  • Modern Architecture
    Bubbletea’s architecture promotes maintainability, testability, and functional programming concepts.

  • Secure and Decentralized
    SSH-based identity and infrastructure reduce the need for complex OAuth or external auth services.

  • Modular Ecosystem
    Mix and match tools as needed—ideal for lightweight or complex CLI apps alike.

  • Strong Community Support
    Actively maintained with an enthusiastic developer community and GitHub support.

  • Great Documentation
    Charm.sh provides readable guides and examples for each tool, making it easy to get started.


Drawbacks

  • Go Language Requirement
    All Charm tools are written in and for Go. Non-Go developers will face a learning curve.

  • No GUI Support
    Designed for terminal interfaces only—developers seeking graphical tools will need to look elsewhere.

  • Limited Enterprise Features
    While powerful, features like RBAC, audit logging, or enterprise-level SSO are not natively built-in.

  • Manual Deployment for Remote Apps
    SSH apps must be manually hosted or deployed—there is no cloud service offering from Charm at this time.


Comparison with Other Tools

Charm.sh vs. Cobra (Go CLI Library)
Cobra is focused on flag parsing and command trees. Charm provides a full UI/UX layer for building visual and interactive apps.

Charm.sh vs. Blessed (Node.js TUI)
Blessed is a terminal UI library for Node.js. Charm tools offer better Go integration, more composability, and built-in theming.

Charm.sh vs. Rich (Python)
Rich is a popular Python library for styled output. Charm provides interactive UI components in addition to styling.

Charm.sh vs. TUI Frameworks (like ncurses)
Charm offers a higher-level, declarative API for TUIs with modern capabilities, unlike the low-level procedural APIs in ncurses.


Customer Reviews and Testimonials

Charm.sh has garnered widespread praise among Go developers and CLI tool creators:

“Bubbletea made it possible to build a beautiful TUI app in a weekend. The architecture is clean and fun to use.”
— Independent Developer

“Charm’s ecosystem is a game-changer for CLI tools. Lipgloss makes my logs actually look good.”
— DevOps Engineer

“Soft Serve lets us self-host Git repositories for internal tools with zero overhead.”
— Infrastructure Lead

“Wish blew my mind. You can literally build a web app experience entirely over SSH.”
— Terminal App Builder

Community feedback and GitHub issues reflect an engaged user base and a responsive core team.


Conclusion

Charm.sh represents a powerful toolkit for the next generation of terminal applications. With a focus on elegance, modularity, and developer experience, it empowers creators to design CLIs and TUIs that feel modern and accessible—without sacrificing the performance and portability of the command line.

Whether you’re building internal developer tools, open-source projects, or just exploring terminal UIs, Charm.sh provides everything you need to get started and scale up—completely free and open-source.

Explore the full suite at https://charm.sh and discover how beautiful your terminal apps can be.

Scroll to Top