{"slug": "charm-ruby", "name": "Charm Ruby", "category": "terminal", "category_name": "Terminal and shell", "description": "", "recommenders": 3, "commenters": 3, "warners": 0, "score": 2.474, "rising": -0.98, "first": "2025-12-30", "latest": "2025-12-30", "why": "this is a really good idea and could lead to some really small, elegant TUI code", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 0, "compare": 0, "warn": 0}, "spark": [0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "this is a really good idea and could lead to some really small, elegant TUI code", "kind": "", "icon": false, "domain": null, "github_repo": null, "official_url": "", "pricing": "", "aliases": ["Charm Ruby"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 742977824, "item_id": 46436114, "url": "https://news.ycombinator.com/item?id=46436114", "by": "solatic", "date": "2025-12-30", "version": null, "stance": "recommend", "quote": "this is a really good idea and could lead to some really small, elegant TUI code", "excerpt": "Bookmarked, I think this is a really good idea and could lead to some really small, elegant TUI code. But as a first release, I'm wondering if it maybe misses what Ruby really enables. The Hello World example has both init and initialize methods? message.to_s == \"q\"? @style.render? I remember reading Eloquent Ruby and having my mind completely blown with the clarity and expressiveness that Ruby's metaprogramming enab", "context": "", "use_case": "Ruby TUI apps", "switched_from": "", "story": "Charm Ruby \u2013 Glamorous Terminal Libraries for Ruby"}, {"id": 742938704, "item_id": 46433669, "url": "https://news.ycombinator.com/item?id=46433669", "by": "riddley", "date": "2025-12-30", "version": null, "stance": "recommend", "quote": "This looks amazing!", "excerpt": "How funny. I just spent the weekend AI slopping an FFI wrapper around notcurses because I couldn't find anything else. This looks amazing! Since you asked for ideas in a different comment, here's something I put into my notcurses wrapper: grid and flex \"css\" layouts. Meaning the ability to say whatever.fixed(cols,...) and whatever.flex(:fr1) or whatever.grid(:fr1) and the ability to do a \"grid-template-areas\" style a", "context": "", "use_case": "Terminal UI libraries for Ruby", "switched_from": "", "story": "Charm Ruby \u2013 Glamorous Terminal Libraries for Ruby"}, {"id": 742927264, "item_id": 46432954, "url": "https://news.ycombinator.com/item?id=46432954", "by": "Kerrick", "date": "2025-12-30", "version": null, "stance": "recommend", "quote": "This is really cool!", "excerpt": "This is really cool! It looks like Marco and I had the same idea around the same time, but we picked different TUI libraries to wrap. :-D See also: https://git.sr.ht/~kerrick/ratatui_ruby", "context": "", "use_case": "", "switched_from": "", "story": "Charm Ruby \u2013 Glamorous Terminal Libraries for Ruby"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["ruby tui apps", "terminal ui libraries for ruby"], "compared": [], "makers": [{"id": 742982240, "item_id": 46436390, "url": "https://news.ycombinator.com/item?id=46436390", "by": "marcoroth", "date": "2025-12-30", "version": null, "stance": "warn", "quote": "I'm not super happy with some of the APIs as they aren't really idiomatic Ruby.", "excerpt": "Thanks for the feedback! And yeah, I agree. I'm not super happy with some of the APIs as they aren't really idiomatic Ruby. It's also something I mentioned in the blog post that I want to improve: https://marcoroth.dev/posts/glamorous-christmas For now, I just wanted to get them out so we as a community can build them out together. Most of the APIs are just 1:1 \"ports\" of their Go counterparts and might feel off or a", "context": "", "use_case": "", "switched_from": "", "story": "Charm Ruby \u2013 Glamorous Terminal Libraries for Ruby"}], "threads": [{"url": "https://news.ycombinator.com/item?id=46430558", "title": "Charm Ruby \u2013 Glamorous Terminal Libraries for Ruby", "mentions": 4}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"recommend": 3}, "2026-01": {}, "2026-02": {}, "2026-03": {}, "2026-04": {}, "2026-05": {}, "2026-06": {}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 742977824, "item_id": 46436114, "url": "https://news.ycombinator.com/item?id=46436114", "by": "solatic", "date": "2025-12-30", "version": null, "stance": "recommend", "quote": "this is a really good idea and could lead to some really small, elegant TUI code", "excerpt": "Bookmarked, I think this is a really good idea and could lead to some really small, elegant TUI code. But as a first release, I'm wondering if it maybe misses what Ruby really enables. The Hello World example has both init and initialize methods? message.to_s == \"q\"? @style.render? I remember reading Eloquent Ruby and having my mind completely blown with the clarity and expressiveness that Ruby's metaprogramming enab", "context": "", "use_case": "Ruby TUI apps", "switched_from": "", "story": "Charm Ruby \u2013 Glamorous Terminal Libraries for Ruby"}, {"id": 742938704, "item_id": 46433669, "url": "https://news.ycombinator.com/item?id=46433669", "by": "riddley", "date": "2025-12-30", "version": null, "stance": "recommend", "quote": "This looks amazing!", "excerpt": "How funny. I just spent the weekend AI slopping an FFI wrapper around notcurses because I couldn't find anything else. This looks amazing! Since you asked for ideas in a different comment, here's something I put into my notcurses wrapper: grid and flex \"css\" layouts. Meaning the ability to say whatever.fixed(cols,...) and whatever.flex(:fr1) or whatever.grid(:fr1) and the ability to do a \"grid-template-areas\" style a", "context": "", "use_case": "Terminal UI libraries for Ruby", "switched_from": "", "story": "Charm Ruby \u2013 Glamorous Terminal Libraries for Ruby"}, {"id": 742927264, "item_id": 46432954, "url": "https://news.ycombinator.com/item?id=46432954", "by": "Kerrick", "date": "2025-12-30", "version": null, "stance": "recommend", "quote": "This is really cool!", "excerpt": "This is really cool! It looks like Marco and I had the same idea around the same time, but we picked different TUI libraries to wrap. :-D See also: https://git.sr.ht/~kerrick/ratatui_ruby", "context": "", "use_case": "", "switched_from": "", "story": "Charm Ruby \u2013 Glamorous Terminal Libraries for Ruby"}]}