16 comments

  • cswilliams16 days ago
    Excited to try it out as well. I often need to build simple CLI based apps in ruby so often would reach for TTY Toolkit: <a href="https:&#x2F;&#x2F;ttytoolkit.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;ttytoolkit.org&#x2F;</a><p>However, I feel like it&#x27;s in maintenance mode at this point, so glad to see some new options available.
    • 3eb7988a166316 days ago
      Shouldn&#x27;t some software be allowed to be done? Maintenance mode on a TUI library seems a reasonable place to be.
      • cswilliams16 days ago
        Sure. I was probably trying to be too polite and didn&#x27;t want to use the word &quot;abandoned&quot;, but that&#x27;s probably a better term for the library at this point. There&#x27;s a good amount of open issues and PRs in many of the component gems that haven&#x27;t been addressed in years and requests to help maintain it have gone unanswered[0].<p>[0] <a href="https:&#x2F;&#x2F;github.com&#x2F;piotrmurach&#x2F;tty-prompt&#x2F;issues&#x2F;210" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;piotrmurach&#x2F;tty-prompt&#x2F;issues&#x2F;210</a>
        • 3eb7988a166315 days ago
          Ah yes, quite a different kettle of fish.
      • an0malous16 days ago
        sure it’s a good TUI library, but is it <i>agentic</i>?
  • iddan16 days ago
    Landing page is great: informative, visual example, clear code example. Love it
    • Kerrick16 days ago
      Thank you! I wrote the code snippets and picked the color palette, but the web design came by way of <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=46587284">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=46587284</a><p>And my wife, wonderful as always, helped critique the writing! My RadioMenu class&#x27;s comments (in the &quot;See More: Inline menu example&quot; expando-section) were far worse before she helped.
  • xfalcox16 days ago
    I just made a new installer for Discourse on CharmRuby, now I gotta check this out and see if porting is feasible. Hopefully this reduces the app size, that is quite large with CharmRuby
  • pjmlp16 days ago
    Living the 80s, I guess the current nostalgia wave across tapes, portable CD players, Vynil and co, also applies to computer interfaces.
    • Kerrick16 days ago
      That&#x27;s gotta be part of it. But I think another important part is how TUIs have important restrictions that lead to surprisingly delightful applications despite their downsides:<p>- You don&#x27;t have control over font size and your color palette can be limited (and chosen by the user in their Terminal settings), so it&#x27;s hard to go too off-the-rails in aesthetic design<p>- You work on a strict character grid, so it&#x27;s hard to get things like padding, margin, and leading wrong.<p>- You can&#x27;t assume the use of a mouse, so everything has to work on keyboard shortcuts. This usually leads to extremely power-user-friendly tools. Plus, keyboard-driven, power-user-friendly UIs are hot right now, even on the web (Linear, Fernand, etc.).
    • justifa16 days ago
      [flagged]
      • konmok16 days ago
        Is there any evidence that Rust proponents did it, or are people assuming that because Rene has been critical of Rust? That would be horrible if true, but I&#x27;d rather not jump to conclusions that fast.
        • aw162110715 days ago
          You&#x27;re not likely to get any useful response. This person has been spamming variations on this comment for some time now and has never bothered to substantiate their claims.
  • jarek8316 days ago
    It looks great overall, but the example browser is something really special! Never seen such detailed walkthroughs before.
    • Kerrick16 days ago
      Thank you very much. I am not proud of the AI slop code [0] it took to get RDoc to generate the HTML for those pages, but I am proud of the result!<p>[0]: <a href="https:&#x2F;&#x2F;git.sr.ht&#x2F;~kerrick&#x2F;ratatui_ruby&#x2F;tree&#x2F;783a08eabe2307f581a30657d4b7a9b05b8653a7&#x2F;item&#x2F;tasks&#x2F;doc.rake#L205" rel="nofollow">https:&#x2F;&#x2F;git.sr.ht&#x2F;~kerrick&#x2F;ratatui_ruby&#x2F;tree&#x2F;783a08eabe2307f...</a><p>[1]: <a href="https:&#x2F;&#x2F;www.ratatui-ruby.dev&#x2F;docs&#x2F;v1.0&#x2F;examples&#x2F;app_color_picker&#x2F;app_rb.html" rel="nofollow">https:&#x2F;&#x2F;www.ratatui-ruby.dev&#x2F;docs&#x2F;v1.0&#x2F;examples&#x2F;app_color_pi...</a>
  • pythonaut_1616 days ago
    Looks exciting!<p>Does it have proper support for opening an external editor (via $EDITOR like nano, vim, etc?)? I ran into issues with that in Ink and had to switch over to Bubbletea, but I&#x27;d love to use Ruby instead of Go
    • Kerrick15 days ago
      Yes! While there&#x27;s nothing built-in for that, you have full control over when you enter or exit raw mode, so your TUI can support opening an external editor. The TL;DR is you need to call `RatatuiRuby.restore_terminal` before handing off to $EDITOR, and you can call `RatatuiRuby.init_terminal` <i>again</i> to re-enter your TUI.<p>Here&#x27;s an example: <a href="https:&#x2F;&#x2F;www.ratatui-ruby.dev&#x2F;docs&#x2F;trunk&#x2F;examples&#x2F;app_external_editor&#x2F;README_md.html" rel="nofollow">https:&#x2F;&#x2F;www.ratatui-ruby.dev&#x2F;docs&#x2F;trunk&#x2F;examples&#x2F;app_externa...</a><p>Also, if you enjoy Ink and Bubbletea, you probably enjoy MVU. If that&#x27;s the case, check out the upcoming Rooibos framework I&#x27;m building on RatatuiRuby: <a href="https:&#x2F;&#x2F;rooibos.run" rel="nofollow">https:&#x2F;&#x2F;rooibos.run</a>. (Caveat: it doesn&#x27;t yet have a way to restore&#x2F;init the terminal, but I clearly need to make that happen.)
    • riffraff16 days ago
      I know nothing about this, but bubbletea-ruby was in the news recently<p><a href="https:&#x2F;&#x2F;github.com&#x2F;marcoroth&#x2F;bubbletea-ruby" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;marcoroth&#x2F;bubbletea-ruby</a>
  • kasane_teto15 days ago
    I’m gonna look into this. I was originally going to use the curses gem for my ruby tui apps but dealing with straight curses gets annoying quick. Thanks!
  • aaronbrethorst16 days ago
    super cool, great work Kerrick!
    • Kerrick16 days ago
      Thank you! My first Show HN in 2012 [0] was an inline TUI (of sorts) written in Ruby [1], so this is a great day.<p>[0]: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=4017933">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=4017933</a><p>[1]: <a href="https:&#x2F;&#x2F;kerrick.github.io&#x2F;google&#x2F;" rel="nofollow">https:&#x2F;&#x2F;kerrick.github.io&#x2F;google&#x2F;</a>
  • rubyfan16 days ago
    Looks really interesting, I’m excited to explore this.
  • desireco4216 days ago
    I can&#x27;t like this enough, Ruby is perfect language for TUI apps and emergence of TUI apps is really welcome change.
  • anon573948316 days ago
    Thank you for enabling my Ruby addiction. This looks amazing. Great work!
    • Kerrick16 days ago
      Every person I can enable to write Ruby instead of Go is a win in my book. :-)
  • rufugee16 days ago
    Looking forward to experimenting with it. Looks awesome!
  • somebehemoth16 days ago
    How significant are AI contributions to this project?
    • Kerrick16 days ago
      <i>Very</i> significant. Nearly every commit has involved the use of one or more LLMs, as evidenced by the commit trailers. I would not have started this project without it, because I do not know Rust. Even the overall direction and architecture has involved roleplay-based &quot;rubber ducking&quot; with LLMs [0].<p>I&#x27;ve carefully stewarded &amp; heavily edited the Ruby code in lib&#x2F; and test&#x2F;, and the documentation (RDoc and Markdown). The Rust code has been left largely to the AI, with its quality kept presumably-okay by Clippy and extensive automated tests on the Ruby side.<p>As for the non-library stuff (&quot;internal&quot; to the project), you can tell by browsing the tasks&#x2F; folder where I left the AI to its own devices [1], and where I heavily edited the Ruby code [2].<p>[0]: <a href="https:&#x2F;&#x2F;man.sr.ht&#x2F;~kerrick&#x2F;ratatui_ruby&#x2F;history&#x2F;ecosystem-drafts&#x2F;index.md" rel="nofollow">https:&#x2F;&#x2F;man.sr.ht&#x2F;~kerrick&#x2F;ratatui_ruby&#x2F;history&#x2F;ecosystem-dr...</a><p>[1]: <a href="https:&#x2F;&#x2F;git.sr.ht&#x2F;~kerrick&#x2F;ratatui_ruby&#x2F;tree&#x2F;783a08eabe2307f581a30657d4b7a9b05b8653a7&#x2F;item&#x2F;tasks&#x2F;doc.rake" rel="nofollow">https:&#x2F;&#x2F;git.sr.ht&#x2F;~kerrick&#x2F;ratatui_ruby&#x2F;tree&#x2F;783a08eabe2307f...</a><p>[2]: <a href="https:&#x2F;&#x2F;git.sr.ht&#x2F;~kerrick&#x2F;ratatui_ruby&#x2F;tree&#x2F;783a08eabe2307f581a30657d4b7a9b05b8653a7&#x2F;item&#x2F;tasks&#x2F;bump" rel="nofollow">https:&#x2F;&#x2F;git.sr.ht&#x2F;~kerrick&#x2F;ratatui_ruby&#x2F;tree&#x2F;783a08eabe2307f...</a>
      • atmosx15 days ago
        Great job :-)
  • knowitnone316 days ago
    This is awesome, will definitely take this for a spin!
    • Kerrick16 days ago
      Thank you! Please let me know how you find it. I want to make sure the DX is as good as possible.
  • rbitar16 days ago
    Fantastic, this looks excellent and excited to try it
  • ianks16 days ago
    Love it