frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: Run GUIs as Scripts

https://github.com/skinnyjames/hokusai-pocket
17•zero-st4rs•4d ago
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,

@ ᴗ @

Comments

apitman•3h ago
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•2h ago
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•8m ago
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•1h ago
I’d also like to see some discussion why this is not Apple Script.
zero-st4rs•14m ago
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•1h ago
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•23m ago
> 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

Spain to expand internet blocks to tennis, golf, movies broadcasting times

https://bandaancha.eu/articulos/telefonica-consigue-bloqueos-ips-11731
58•akyuu•47m ago•32 comments

Rare concert recordings are landing on the Internet Archive

https://techcrunch.com/2026/04/13/thousands-of-rare-concert-recordings-are-landing-on-the-interne...
282•jrm-veris•3h ago•83 comments

Claude Code Routines

https://code.claude.com/docs/en/routines
52•matthieu_bl•51m ago•18 comments

5NF and Database Design

https://kb.databasedesignbook.com/posts/5nf/
46•petalmind•1h ago•10 comments

DaVinci Resolve – Photo

https://www.blackmagicdesign.com/products/davinciresolve/photo
947•thebiblelover7•15h ago•243 comments

A new spam policy for “back button hijacking”

https://developers.google.com/search/blog/2026/04/back-button-hijacking
709•zdw•14h ago•417 comments

Let's Talk Space Toilets

https://mceglowski.substack.com/p/lets-talk-space-toilets
34•zdw•19h ago•5 comments

Show HN: LangAlpha – what if Claude Code was built for Wall Street?

https://github.com/ginlix-ai/langalpha
29•zc2610•2h ago•12 comments

Modifying FileZilla to Workaround Bambu 3D Printer's FTP Issue

https://lantian.pub/en/article/modify-computer/modify-filezilla-workaround-bambu-3d-printer-ftp-i...
4•speckx•39m ago•0 comments

Show HN: Kelet – Root Cause Analysis agent for your LLM apps

https://kelet.ai/
22•almogbaku•1h ago•10 comments

jj – the CLI for Jujutsu

https://steveklabnik.github.io/jujutsu-tutorial/introduction/what-is-jj-and-why-should-i-care.html
396•tigerlily•7h ago•322 comments

Backblaze has stopped backing up OneDrive and Dropbox folders and maybe others

https://rareese.com/posts/backblaze/
727•rrreese•9h ago•446 comments

Show HN: Kontext CLI – Credential broker for AI coding agents in Go

https://github.com/kontext-dev/kontext-cli
39•mc-serious•4h ago•9 comments

Carol's Causal Conundrum: a zine intro to causally ordered message delivery

https://decomposition.al/zines/
11•evakhoury•3d ago•0 comments

Introspective Diffusion Language Models

https://introspective-diffusion.github.io/
176•zagwdt•9h ago•36 comments

The future of everything is lies, I guess: Work

https://aphyr.com/posts/418-the-future-of-everything-is-lies-i-guess-work
178•aphyr•2h ago•138 comments

The Fediverse deserves a dumb graphical client

https://adele.pages.casa/md/blog/the-fediverse-deserves-a-dumb-graphical-client.md
35•speckx•2h ago•7 comments

The acyclic e-graph: Cranelift's mid-end optimizer

https://cfallin.org/blog/2026/04/09/aegraph/
45•tekknolagi•4d ago•11 comments

The Mouse Programming Language on CP/M

https://techtinkering.com/articles/the-mouse-programming-language-on-cpm/
11•PaulHoule•3d ago•2 comments

The M×N problem of tool calling and open-source models

https://www.thetypicalset.com/blog/grammar-parser-maintenance-contract
93•remilouf•5d ago•33 comments

The exponential curve behind open source backlogs

https://armanckeser.com/writing/jellyfin-flow
55•armanckeser•6h ago•35 comments

Nucleus Nouns

https://ben-mini.com/2026/nucleus-nouns
28•bewal416•4d ago•9 comments

Franklin's bad ads for Apple II clones and the beloved impersonator they depict

https://buttondown.com/suchbadtechads/archive/franklin-ace-1000/
104•rfarley04•3d ago•62 comments

Lean proved this program correct; then I found a bug

https://kirancodes.me/posts/log-who-watches-the-watchers.html
351•bumbledraven•17h ago•161 comments

For the first time in the U.S., renewables generate more power than natural gas

https://e360.yale.edu/digest/us-renewables-natural-gas-coal
114•Brajeshwar•2h ago•71 comments

Distributed DuckDB Instance

https://github.com/citguru/openduck
130•citguru•11h ago•28 comments

An Oligarchy of Old People

https://www.theatlantic.com/magazine/2026/05/gerontocracy-wealth-power/686585/
16•sleepyguy•53m ago•4 comments

Multi-Agentic Software Development Is a Distributed Systems Problem

https://kirancodes.me/posts/log-distributed-llms.html
94•tie-in•12h ago•44 comments

Someone bought 30 WordPress plugins and planted a backdoor in all of them

https://anchor.host/someone-bought-30-wordpress-plugins-and-planted-a-backdoor-in-all-of-them/
1114•speckx•23h ago•312 comments

WiiFin – Jellyfin Client for Nintendo Wii

https://github.com/fabienmillet/WiiFin
227•throwawayk7h•18h ago•108 comments