HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
charmbracelet
lipgloss
Go2021–2026
charmbracelet / lipgloss

lipgloss

Style definitions for nice terminal layouts 👄

11Distinct people
11Mentions
0Explicit recommenders
12KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Style definitions for nice terminal layouts 👄

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year11 dated mentions

Observed mentions: 2021-04-03 16:07:29 UTC to 2026-07-24 00:28:31 UTC.

012342021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments20232024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC211
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC303
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC101
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC404

What Hacker News says

11 sources
Oh fun. Since this pokes at LLM I'll share my use case from last week. I built a similar(ish) tool locally (for personal use) as a CLI with an LLM. I download transactions from my bank and credit card, have it load them into a sqlite database, do some transformations (categorizing, grouping, excluding), and bottle up each command as a cli sub-command or flag. I used go, cobra, and the charm libs (to help with interactive labeling). I spent about a day on it to get it roughly usable, so I can drop in my updated transactions next month and get a basic report. Since the output is sqlite database and cli commands, I can also use claude code to ask it stuff, which was interesting because my original plan was to do all the asking myself and just have claude build the cli tool. It works decently. I got out what i needed and fought very very hard
Read the rest
to not go more all in / code dive, etc. I just needed my monthly expense totals, ordered, with some clean-up. The code is so-so, but it mostly got things working in a few shots. Claude being able to iteratively run commands / issue queries while it worked was key to it getting functional, I think. I love that it runs local and spits out plain text for tables and such; to share with my wife i copy pasted some of the output to a text document then added some comments (markdown). If I hacked on it more, I'd probably re-work the architecture a bit; I think coming up with a good design about how to ingest idempotently, and then how you want to transform transactions (i.e. in place, vs setting up rules / overrides and then generating a computed transactions table) is most important. After each mini feature having the LLM document its usage in the README, and of course committing, was key. It made it very easy to ditch conversations and start new ones, and point to the README / examples (as opposed to compacting prior conversation). I think your tool at $5 is a great value; I had TONS of fun making the CLI app but it still took me a few hours of focused work in the end spread over a day, and relied on me having very basic prior experience to help steer it. I bet you can charge more while still keeping the product focused / maintenance low, and absolutely think there's a strong need for it -> While I am super tempted to get crazy with my local app and / automating calculations (etc) ultimately just seeing the money in / out, a few categories that I can sum up (groceries, eating out), and the top 15 expenses, that's really all we need to get our budget in place. Kudos on building a real product, esp. on figuring out how to keep it focused, finding the niche, and recognizing the opportunity to capitalize! EDIT: My actual deps list here. require ( github.com/BurntSushi/toml v1.5.0 github.com/charmbracelet/bubbles v0.21.0 github.com/charmbracelet/bubbletea v1.3.5 github.com/charmbracelet/huh v0.7.0 github.com/charmbracelet/lipgloss v1.1.0 github.com/charmbracelet/log v0.4.2 github.com/mattn/go-sqlite3 v1.14.22 github.com/spf13/cobra v1.10.1 )
In Show HN: Write It Down – Personal finance tracker
"\033[31;1;4munderlines\033[0m" is (again) no worse than a stream of vertices or a stream of object code. Everything is a stream of bytes (well, a stream of bits anyway). Do you want CSS? Lipgloss is not too far off [0]. I read your objection basically as "escape sequences and control codes are noisy garbage"; are you saying something more like "the functionality you can achieve with escape sequences and control codes is fundamentally limited"? If that's the case, I don't see how, especially in the context of a character-based display. [0]: https://github.com/charmbracelet/lipgloss?tab=readme-ov-file...
In State of the Terminal
I can see the benefits of structured output from CLI tools. It’s a bit rare to find but they do exist. I believe the closest I have found in the wild is a terminal instance connecting to some 1980s mainframe tech. There are also some FOSS tools aimed at increasing the readability of CLI tools https://github.com/charmbracelet/lipgloss Doesn’t offer tables (yet) but is about as good as it’s going to get. For “easy mode” apps, isn’t this what GUI apps were made for? The old Java applets and apps using Swing/JavaFX or Qt are the ones that immediately come to mind.
In Posh: A Data-Aware Shell

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.