RDoc server mode with live reload is almost ready for ruby/ruby. Currently `make html` takes 30-60s and you have to rerun it after every change. With `make html-server`, you get instant live reload. (Just found a bug with page links, but it's getting there) Here is a demo:
An error occurred while loading the video. Please try again.
This is part of my March update. I also got accepted into Anthropic's Claude for Open Source program, and welcomed a new GitHub sponsor! Both of which I deeply appreciate 🙏 More RDoc improvements (RBS signatures, coverage) are coming too. st0012.dev/updates/marc...
WIP: adding rbs sigs to Ruby documentation
First Ruby LSP beta got released with partial migration to Rubydex 👀 github.com/Shopify/ruby... Indexing our Rails application (+ dependencies) currently takes 12s with Ruby LSP's internal indexer. Rubydex does it in 2s 💯 And I think it's even doing more work.
I joined RubyCentral to release a postmortem, and today I'm delivering my report on what happened. The hope is to provide more transparency and closure, 194 days since the incident on September 18. I've named the incident "RubyGems Fracture." Read my report. rubycentral.org/news/rubygem...
🙌
‪Janko Marohnić‬
 ‪@janko.io‬
· 22d
I finally made it, I'm running 3 Claude Code instances in parallel with cctop by @st0012.dev to monitor them. github.com/st0012/cctop The context switching is killing me. But I'm officially an AI developer.
I remember the news abt this Ukrainians: Mariupol Drama Theater hit. People under the rubble. russians: WE HIT AZOV NAZIS... oh shi. (delete post) Ukronazis hit Theater with civillians!!! global media: Mariupol Drama Theater is destroyed. Both sides blame each other.
‪Olena Halushka‬
 ‪@halushka.bsky.social‬
· 1mo
As I sit through yet another russian Shahed attack on Kyiv, I'm thinking of one of russia's most horrific crimes — the targeted destruction of the Mariupol Drama Theater four years ago today. That airstrike killed hundreds of innocent people, mostly women and children who had sought shelter there.
A small improvement coming to IRB soon:
Yesterday I released cctop v0.11.0 with a redesign and 4 color schemes! If you want a lightweight macos app to help you monitor Claude Code/opencode sessions with keyboard navigation, give cctop a try: github.com/st0012/cctop
Only my ego was hurt in the making of this video.
“32yr old software engineer training hard to not be replaced by AI” - week 2
Server mode with live reload is coming to RDoc:
Building something cool for my calisthenics training:
“32yr old software engineer training hard to not be replaced by AI”
I’m back to speaking at RubyKaigi this year!
It's been released! github.com/st0012/cctop...
‪Stan Lo‬
 ‪@st0012.dev‬
· 2mo
Per @ufuk.dev's request, OpenCode support coming soon!
Do you know RDoc now has syntax highlighting for bash command 😄
Per 's request, OpenCode support coming soon!
‪Stan Lo‬
 ‪@st0012.dev‬
· 2mo
I used Claude Code to build a tool for managing CC sessions. cctop sits in macOS menubar and shows real-time status of every session: idle, working, waiting for input, or waiting for permission. You can then one click jumping to the right VS Code/Cursor window. Link 👇
I used Claude Code to build a tool for managing CC sessions. cctop sits in macOS menubar and shows real-time status of every session: idle, working, waiting for input, or waiting for permission. You can then one click jumping to the right VS Code/Cursor window. Link 👇
It's signed and notarized by Apple, so you can directly install and use it with: ``` brew tap st0012/cctop brew install --cask cctop ``` Or learn more in: github.com/st0012/cctop
Claude Code’s agents team is far more powerful than I expected. But it also requires an overhaul on existing CC skills AND some new skills to fully utilize.
Building a macOS menubar app called "cctop" to show all running CC sessions
I wrote a SPEED markdown file with instructions for Claude Code (Opus 4.6) with a loop process in order to improve the speed of the Voxtral speed with the Metal backend and left my home to pickup my daughter, have lunch, ... Back home, the code is 2x faster, and it is still going.
Trying something new in 2026: I'm going to post monthly updates about the OSS work I did. Here's the first one: st0012.dev/updates/janu... (Repost as I updated the slug after posting 😅)
I haven’t opened my PS5 since I subscribed to Claude Max a few weeks ago 🤔
I built a Claude Code plugin that teaches it how to work with Ruby - picks the right version manager, reads the right docs, connects to Ruby LSP. I think we will eventually have community maintained bridges between AI agents and the language ecosystem.
With Aliki shipped, in 2026 I'll be focusing on RDoc's writing experience: better Markdown support (some in v7.1.0 and more to come), RBS type signatures, and AI-friendly documentation. st0012.dev/2026/01/12/m...
RDoc has always supported Markdown as a markup language. But its support was buggy and lacks documentation. After a year of addressing various related issues, I was able to rewrite a doc for it. I think we'll soon be able to migrate from RDoc to Markdown. ruby.github.io/rdoc/doc/mar...
Just published this year's version of my "Ruby Changes" project: a full annotated changelog for Ruby 4.0: rubyreferences.github.io/rubychanges/... Goals: Full, comprehensive, concise, well-structured. Examples, explanations of reasons, links to docs, all of it.
I'm really happy to see receive the 2025 Rails Luminary Award! 🎉 He’s done so much for the Rails ecosystem and the Ruby community. Huge congrats, Marco! 🙌 And it's great to have and around.
Finally, I made Ruby 30th anniversary stamp for You can get this at Ruby conferences that I'm going to.
Ever forget whether it's "change_table" or "alter_table", "remove_column" or "drop_column", "set_column_null" or "change_column_null"? You don't? Well, I do 😄 So, I thought it would be cool if Ruby LSP could autocomplete schema statements in migrations ✨ github.com/Shopify/ruby...
Have you noticed how great the Ruby docs looks like for the master? docs.ruby-lang.org/en/master/ Thank you and the entire team contributing to RDoc for these improvements.
I've uploaded the slides for my RubyPrize talk @RubyWorldConf: Ruby DX - Past & Future. It's short (15min) but I summarized Ruby DX progress since Ruby 3.0, shared my thoughts on how to prepare for the AI age, and a teaser for an upcoming project 😉 github.com/st0012/slide...
My advice on top of this: Use AI to learn the codebase and explore contribution options and ideas, then write the PR manually. I also wonder if projects having some agent instructions can: - Make AI-assisted exploration more productive - Reduce fully automated vibe-coding PRs
‪Anthony Fu‬
 ‪@antfu.me‬
· 5mo
My first advice to junior contributors is to STOP using vibe coding for PRs. OSS is always about people more than about code. We don't need more code generated by LLM, we need more people who care.
I'm very honored to have received this year's RubyPrize from Matz's hands in Matsue last Thursday, recognizing my work on Ruby and its development tools. I can still remember how nervous I was asking Matz for a picture back in 2016 😂 Time really flies (Photo from ❤️)
This just made my day! 🙏🏼 Open Source can be rough sometimes, but it's really awesome when people take the time to report how it works for them! Can't wait to see where Herb is going in the next few months! 🌿
Announcing ractor-shim, a new gem that reimplements Ractor on top of Thread & Queue: github.com/eregon/racto... This gem provides the full Ruby 3.5 Ractor API (Ractor::Port, Ractor#{join,value,monitor}, etc) on TruffleRuby, JRuby, and CRuby 2.7 to 3.4.
If you want to make change or add new feature to Ruby, I suggest to read www.a-k-r.org/pub/howto-pe... Ruby's decision-making process isn't democratic or based on voting. It's more like a game of persuading Matz and Module maintainers.
I'm excited to share that I became a Ruby committer today! A 10 year goal since RubyKaigi 2015. Huge thanks to for the JIT mentorship and nomination, for years of guidance, and everyone who supported me along the way. Looking forward to improving Ruby and its DX!