[HN Gopher] Show HN: Run GUIs as Scripts
___________________________________________________________________
Show HN: Run GUIs as Scripts
Hi there, Zero Stars here. I recently published some new work to
Hokusai Pocket, which is a cross-platform binary made on top of
raylib and MRuby that runs GUIs from ruby scripts. License? MIT!
How does it work? The binary is available on the GitHub releases
page: https://github.com/skinnyjames/hokusai-
pocket/releases/tag/0... You can download the binary on x86
Windows, OSX, or Linux, and run your GUI application with hokusai-
pocket run:target="<your_hokusai_app.rb>" For a little bit of a
hello world, I started a photoshop clone
https://github.com/skinnyjames/hokusai_demo_paint Also a little
game https://github.com/skinnyjames/pocket-squares Docs / Help?
The docs are in progress, but the old docs for the CRuby version
express some of the basic ideas around the project.
https://hokusai.skinnyjames.net/docs/intro (I'm also available to
answer questions in between slinging pizza) Deps? Hokusai pocket
currently uses * libuv for offloading cpu intensive tasks to a
worker pool to prevent blocking the UI thread, and I plan to
integrate some libuv networking as well. * raylib for backend
graphics / I've also built with SDL on arm64 to run applications on
my pinephone * NativeFileDialog for the lovely integration into
filesystem. * MRuby for running or embedding the scripts * tree-
sitter for the custom template grammar (Although templates can be
built with ruby) Anyway, I hope you get a chance to try it. If you
make something cool AND have docker installed, you can also publish
your work as single binary `hokusai-pocket publish:target=<your
cool program.rb>` Would love feedback, apps, and help with
documentation and more build targets. urs truly, @ @
Author : zero-st4rs
Score : 19 points
Date : 2026-04-10 07:28 UTC (4 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| apitman wrote:
| This is potentially very interesting to me, but I'm having a hard
| time under exactly what it is. Could you give a little background
| on what motivated it, and what the core features are?
| ux266478 wrote:
| It seems like a crossplatform GUI toolkit built atop of Raylib,
| where the primary languages you're working in are Ruby and CSS.
| zero-st4rs wrote:
| Yeah! That's pretty accurate, although it's not quite
| css/html.
|
| It also integrates some helpful libraries, like libuv for cpu
| intensive tasks and I'm currently working on adding
| networking/HTTP and builds for android (it already runs on a
| pinephone).
|
| The thing I think that is cool is that you don't need to
| compile your apps, you can just run them with the binary.
| xattt wrote:
| I'd also like to see some discussion why this is not Apple
| Script.
| zero-st4rs wrote:
| Thanks for the question!
|
| The motivation came from building desktop applications and
| working with awesome but cumbersome GUI toolkits like Nuklear.
|
| I built a graphics backend-agnostic GUI library in CRuby called
| Hokusai, but Hokusai uses FFI, isn't portable, and is hard to
| distribute. (Need a Ruby interpreter on the target)
|
| I ported the library to MRuby, developed some build tools, and
| now have a portable binary for different platforms that can run
| a dynamic desktop application/game that is written in Ruby.
|
| You can try it yourself by downloading the latest release and
| running an app like:
| https://github.com/skinnyjames/hokusai_demo_paint
|
| If you notice the paint repository, there is nothing to build,
| just ruby scripts and assets.
|
| The tool also has commands to build your application for
| different platforms as standalone binary, but I'm currently
| working in that space for other reasons.
|
| There are of course constraints to using MRuby vs CRuby, but I
| hope I speak to how this library addresses those.
| alienbaby wrote:
| I see aot if these kinda of links to GitHub repositories with the
| user obviously keen on showing people, but they then describe
| what it is / does using specialist / domain language which can
| make it quite hard to get just what it is I'm looking at, or what
| I can do with it, and where / why it would be useful. I do wish
| people would consider their audience after posting 'look at this
| thing' links, and that people might not quite be as familiar with
| acronyms and domain specific terminology without a bit more of a
| plain speaking background description as to what is being shown
| off! Maybe even some screenshots too.
|
| I mean, I can follow ops intent to a general degree, it sounds
| interesting, but ..
| zero-st4rs wrote:
| > I mean, I can follow ops intent to a general degree, it
| sounds interesting, but ..
|
| Thanks for trying to meet me halfway. I hope I can bridge the
| gap.
|
| The repository is the codebase for a GUI toolkit. It runs ruby
| scripts that make use of a custom templating language (like
| html), and a super class that provides similar component
| technology you'd likely find in vue or react. (Hokusai::Block).
|
| When the ruby script is run from the binary built from the
| codebase (hokusai-pocket), it spawns a window with your
| application. There are releases for x86 linux, windows, and osx
| - and also arm64 linux. You just write your application, and
| run it with `hokusai-pocket run:target=app.rb`
|
| The hokusai-pocket binary also include a command for publishing
| your application as a standalone binary for different
| platforms, but I'm currently working on that.
|
| So all in all, it is a gui toolkit + runner that you can
| download for x86 linux, windows, and osx to dynamically run
| desktop applications.
|
| I mentioned cutting its teeth on a photoshop clone. Here's a
| screenshot: https://file.skinnyjames.net/demo.gif
___________________________________________________________________
(page generated 2026-04-14 23:02 UTC)