This is a blog that records Masutaka’s change history.
Making Codex CLI and Codex.app Use mise-managed Ruby and Node.js
I mostly use Claude Code, but lately I’ve been using Codex CLI and Codex.app (hereafter “Codex”) more often too. My environment is macOS. However, after I started using mise in [2026-03-29-1] , I ran into trouble because Codex wouldn’t use the mise-managed Ruby, Node.js, and so on. Here’s the state I was in: $ where ruby /usr/bin/ruby $ ruby --version ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.arm64e-darwin25] The Solution I solved it by adding the following to ~/.zshenv: ...
[2026-04] How I Currently Use Claude Code
Here’s a summary of how I currently use Claude Code . I previously introduced a Claude Code book in [2026-01-16-1] , but this time I’ll write about my own workflow. Development Environment I work on my MacBook’s built-in display. I’m not really someone who uses external monitors. I display the macOS built-in Terminal.app in full screen and use tmux . I don’t split tmux windows—instead, I switch between tabs (windows). I haven’t (yet?) switched to Ghostty or iTerm2 . ...
Migrating from asdf and direnv to mise
For managing versions of development tools like Ruby and Node.js, I had gone through *env tools like rbenv and nodenv , then switched to asdf in 2019. For environment variable management, I had been using direnv since even earlier—2014. Recently, a tool called mise has been gaining attention. I wasn’t particularly having issues, but out of curiosity and the motivation to reduce the number of tools—since I heard mise also has direnv-like functionality—I decided to make the switch. My environment is macOS. ...
Created a GitHub Actions Reusable Workflows Repository for Personal Use
I created a GitHub Actions Reusable Workflows repository for my personal use. What Are GitHub Actions Reusable Workflows? GitHub Actions’ reusable workflows is a mechanism that allows workflow files to be called from other repositories. For example, you can call a workflow from another repository like this: jobs: example: uses: masutaka/actions/.github/workflows/some-workflow.yml@main Since you can consolidate common processes in one place, it saves you the trouble of managing the same workflow across multiple repositories. ...
Book Review: 'AI Agents: Machines That Collaborate with Humanity'
The book I read this time is a new release by Daichi Hiroki @hiroki_daichi . I spotted it on Twitter and was curious enough to pick it up. AIエージェント 人類と協働する機械 amazon.co.jp It was a long read, but once Chapter 11 revealed the relationship between the SECI model and AI agents, things really heated up. ...
Book Review: 'Introduction to AI-Driven Development with Claude Code'
I spotted this on Twitter and read it over the year-end/New Year holidays. Claude CodeによるAI駆動開発入門 amazon.co.jp My vibe coding journey started with Cursor, but since around May of last year, I’ve been almost exclusively using Claude Code. Even writing this blog, I let Claude Code take it from zero to roughly 60% done. I’ve been keeping up with Claude Code by reading and trying out information that flows through Twitter and blog posts, in a mix of relaxation and a sense of urgency. ...
Created a Rails 8 Learning Repository and Started Recovering from a 6-Year Blank with Rails Guides and Claude Code
Last month I changed jobs and returned to Rails development after a long time. With a 6-year gap and only one month available for learning, I needed to efficiently grasp Rails 8’s new features and refresh my memory of existing ones. So I decided to learn by building a working app together with Claude Code while referencing the Rails Guides. I temporarily subscribed to Claude Code’s Max plan at USD 100/mo. ...
Finally Modernized My Emacs Setup with LSP + Tree-sitter
In recent years, I’ve been mainly writing LookML, SQL, HCL, and other languages, with fewer opportunities to write programming languages like Ruby. However, I’ve recently returned to Rails development this month. So, I finally got around to setting up LSP (Language Server Protocol ) in Emacs. During this process, I also learned about Tree-sitter and configured it as well. ※ LSP is an advanced code assistance mechanism provided by Language Servers, while Tree-sitter is a parsing engine that quickly generates AST from code to enable highlighting and structural editing. ...
Switching from Skitch.app to Shottr.app (Finally!)
Skitch was an app for macOS/Windows/Android/iOS that made it easy to create screenshots with annotations like arrows, text, and shapes. I had been using it for years for work and blog post creation, but since the official site disappeared and it was removed from Homebrew Cask, I switched to Shottr . How Skitch Became Unavailable Over the past 10 years, Skitch’s support has been gradually reduced. 2011/08/18: Evernote acquires Skitch 2015/12/17: Support for Skitch for Windows/Android/iOS ends. Only macOS version continues 2024/03/17: Reports of it becoming unavailable from official site and App Store 2024/06/26: Installation via Homebrew Cask disabled You can still download it from the url listed in Homebrew Cask’s Casks/s/skitch.rb , but I don’t know how long that will last. I realized it was finally time to switch to an alternative tool. ...
Making this Hugo-built blog multilingual
Note: This article reflects the setup as of Hugo 0.138.0. I’ve made this blog built with Hugo multilingual. For now, it’s only available in English. https://masutaka.net/ https://masutaka.net/en/ 👈 Why I implemented multilingual support As part of my OSS activities at work, I often cross-post translated articles to platforms like dev.to and Medium. Recently, I’ve been casually translating and cross-posting articles on my own as well. For example, the English translation of [2025-08-15-1] was cross-posted to these three sites: ...