Charm – tools to make the command line glamorous

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • portal

    Portal is a quick and easy command-line file transfer utility from any computer to another. (by SpatiumPortae)

  • Charm's libraries for the CLI are just awesome. I think these guys are really breathing new life into the CLI and make it look appealing for all kinds of applications. Chose their bubbletea library for a CLI file transfer tool (https://github.com/ZinoKader/portal) and found it a delight to work with. Super easy to make something that looks and works great.

  • ttyd

    Share your terminal over the web

  • ttyd is a nice little web terminal: https://github.com/tsl0922/ttyd Just small, fast, low fuss C-based executable.

    wetty is another good option if you want to run a nodejs app: https://github.com/butlerx/wetty

    Both use xterm.js for the client terminal, which is these days the only game in town for a web terminal (it's what VS code and many other electron apps use too). It's quite good.

    Do be aware though that running a web-accessible terminal is a huge security headache. You're opening up a websocket to effectively allow commands and code to run on your server. Pay attention to security and authentication options any web terminal gives you, and use them. Most are not very secure out of the box or just following their readme examples.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • wetty

    Terminal in browser over http/https. (Ajaxterm/Anyterm alternative, but much better)

  • ttyd is a nice little web terminal: https://github.com/tsl0922/ttyd Just small, fast, low fuss C-based executable.

    wetty is another good option if you want to run a nodejs app: https://github.com/butlerx/wetty

    Both use xterm.js for the client terminal, which is these days the only game in town for a web terminal (it's what VS code and many other electron apps use too). It's quite good.

    Do be aware though that running a web-accessible terminal is a huge security headache. You're opening up a websocket to effectively allow commands and code to run on your server. Pay attention to security and authentication options any web terminal gives you, and use them. Most are not very secure out of the box or just following their readme examples.

  • rich

    Rich is a Python library for rich text and beautiful formatting in the terminal.

  • , I like it, but I am not sure about diving into Golant again.

    Any way to use it in other languages?

    Or do I just keep poking at Rich[1] in Python?

    [1] https://rich.readthedocs.io/en/latest/

  • skate

    A personal key value store 🛼

  • These apps look wonderful, only taking a casual glance at the repo, has anyone used, or would one recommend using Skate (https://github.com/charmbracelet/skate) as a personal PW manager or even keychain?

  • charm

    The Charm Tool and Library 🌟

  • kitty

    Cross-platform, fast, feature-rich, GPU based terminal

  • You can configure kitty to open the entire scrollback buffer in an editor or a pager(less/nvim etc).

    https://github.com/kovidgoyal/kitty/issues/719

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • Lanterna

    Java library for creating text-based GUIs

  • hyperterm

    A terminal built on web technologies

  • Oh, do I have a terminal emulator to sell you:

    https://hyper.is/

    > Hyper is an Electron-based terminal

  • lipgloss

    Style definitions for nice terminal layouts 👄

  • lipgloss, the ANSI color library from Charm, has support for specifying different colors for light and dark terminals.

    https://github.com/charmbracelet/lipgloss#adaptive-colors

  • notcurses

    blingful character graphics/TUI library. definitely not curses.

  • chat

    A telnet chat server (by lunatic-solutions)

  • TUIs over ssh/telnet can be a lot of fun. Especially in cases where multiple people can interact with each other on the server. It simplifies the programming model as you only have one state on the backend that you render to multiple connections. Syncing up everyone becomes trivial. You can also use some React concepts, like rendering a virtual TUI and sending just the right set of minimal escape sequences back to the user to bring their display up to date.

    A few months ago I implemented a telnet chat server[0] for fun and it was surprisingly easy to do so. Even by using a wasm vm that I was still working on at the same time.

    [0]: https://github.com/lunatic-solutions/chat

  • alacritty

    A cross-platform, OpenGL terminal emulator.

  • It would work by the terminal API detecting file type and automatically rendering the markdown. Sort of like this:

    https://github.com/alacritty/alacritty/blob/master/extra/ala...

    Allowing for different sized headers and what not.

  • questionary

    Python library to build pretty command line user prompts ✨Easy to use multi-select lists, confirmations, free text prompts ...

  • In that case, you can use something like Questionary.

    https://github.com/tmbo/questionary

  • lf

    Terminal file manager

  • Sure, that's okay, it helps build TUIs rather than CLIs. I'll gladly take TUIs over their GUI counterparts in most cases except where it isn't practical such as image editing.

    A good example is the lf file manager.

    https://github.com/gokcehan/lf

    I was using ranger before this but yeah, I have no reason to use GUI file managers anymore.

  • textual

    Discontinued Textual is a TUI (Text User Interface) framework for Python inspired by modern web development. [Moved to: https://github.com/Textualize/textual] (by willmcgugan)

  • Rich is the low level part, for list select or viewports, you need the high level lib from the same author: textual (https://github.com/willmcgugan/textual).

  • whoami.filippo.io

    A ssh server that knows who you are. $ ssh whoami.filippo.io

  • Ah, good, thanks. Unfortunately, whoami.filippo.io is not resolving.

    https://words.filippo.io/ssh-whoami-filippo-io/ and https://github.com/FiloSottile/whoami.filippo.io are useful. It suggests also adding the option IdentitiesOnly yes.

  • mapscii

    🗺 MapSCII is a Braille & ASCII world map renderer for your console - enter => telnet mapscii.me <= on Mac (brew install telnet) and Linux, connect with PuTTY on Windows

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • circles.nvim - v2.0.1

    4 projects | /r/neovim | 21 Mar 2023
  • Just How Much Faster Are the Gnome 46 Terminals?

    8 projects | news.ycombinator.com | 8 Apr 2024
  • Warp, the modern terminal, is now available for Linux

    1 project | news.ycombinator.com | 22 Feb 2024
  • I Just Wanted Emacs to Look Nice – Using 24-Bit Color in Terminals

    7 projects | news.ycombinator.com | 30 Jan 2024
  • Kitty shortcuts work only with Latin characters - How to fix?

    2 projects | dev.to | 28 Jan 2024