All posts tagged

Open Source

Building Cluster Headache Tracker from a Hospital Bed

Building Cluster Headache Tracker from a Hospital Bed

Cluster headaches hit up to eight times a day. The hospital gave me a paper form with one line per day. So I built an app between attacks.

RubyLLM 1.0

RubyLLM 1.0

One Ruby API for OpenAI, Claude, Gemini, and more. Chat, tools, streaming, Rails integration. No ceremony.

A Standard API for LLM Capabilities and Pricing

A Standard API for LLM Capabilities and Pricing

No provider exposes model capabilities and pricing through their API. So we're building one.

The LLM Capabilities and Pricing API is Live

The LLM Capabilities and Pricing API is Live

The standard API for LLM model information I announced last month is now live and already integrated into RubyLLM 1.3.0.

RubyLLM 1.12: Agents Are Just LLMs with Tools

RubyLLM 1.12: Agents Are Just LLMs with Tools

Agents aren't magic. They're LLMs that can call your code. RubyLLM 1.12 adds a clean DSL to define and reuse them.

RubyLLM 1.14: From Zero to AI Chat App in Under Two Minutes

RubyLLM 1.14: From Zero to AI Chat App in Under Two Minutes

RubyLLM 1.14 ships a Tailwind chat UI, Rails generators for agents and tools, and a simplified config DSL. Watch the full setup in 1:46.

Ruby Deserves Beautiful Documentation

Ruby Deserves Beautiful Documentation

The Ruby community doesn't have a great documentation theme. So I made one. Jekyll VitePress Theme brings VitePress's docs UX to Jekyll.

I Built a Monitor Configuration Tool for Hyprland

I Built a Monitor Configuration Tool for Hyprland

A spatial TUI editor with drag-and-drop, safe apply with revert, workspace planning, and a hotplug daemon. All in two zero-dependency Go binaries.

Making the Rails Default Job Queue Fiber-Based

Making the Rails Default Job Queue Fiber-Based

I patched Solid Queue to run jobs as fibers. Now it ships in 1.6.0, making the Rails default ready for highly concurrent, cooperative I/O-bound jobs.

kamal-backup: Scheduled Rails Backups for Kamal Apps

kamal-backup: Scheduled Rails Backups for Kamal Apps

One Kamal accessory for encrypted Rails database and Active Storage backups, restore drills, and redacted evidence for security reviews.

RubyLLM 1.15: Image Editing, Cost Tracking and Less Tool Boilerplate

RubyLLM 1.15: Image Editing, Cost Tracking and Less Tool Boilerplate

RubyLLM 1.15 adds image editing, cost tracking, inferred tool parameters, additive callbacks, and Rails fixes.

Production Experience Cannot Be Hallucinated

A paid Medium article claimed hard-won RubyLLM production lessons, but its code had never run. Regenerating it only made the fabrication harder to spot.

RubyLLM 1.16: Concurrent Tool Execution, Rails-Style Instrumentation, and api_base for Every Provider

RubyLLM 1.16: Concurrent Tool Execution, Rails-Style Instrumentation, and api_base for Every Provider

RubyLLM 1.16 adds concurrent tools with threads or fibers, Rails-style instrumentation, and proxy support through api_base for every native provider.

RubyLLM::Schema Is Now Schematist: A JSON Schema DSL for Ruby with Full Draft 2020-12 Coverage

RubyLLM::Schema Is Now Schematist: A JSON Schema DSL for Ruby with Full Draft 2020-12 Coverage

Schematist is a Ruby JSON Schema DSL with full Draft 2020-12 coverage, render-time values, standards-compliant output, and no runtime dependencies.

ArchSpec 1.0: Executable Architecture Specification for Ruby's Agentic Coding Era

ArchSpec 1.0: Executable Architecture Specification for Ruby's Agentic Coding Era

ArchSpec turns your architecture into an executable spec: declare components and boundaries in one Ruby file, and every change gets checked, whether a person or an agent wrote it.

kamal-backup 1.0: A Backup Is Only Real After You Restore It

kamal-backup 1.0: A Backup Is Only Real After You Restore It

kamal-backup 1.0 brings exact Rails restores, restore drills, and PostgreSQL, MySQL, MariaDB, SQLite, SFTP, and rclone support to Kamal.

RubyLLM 2.0: Providers, Protocols, and Provider Gems

OpenAI moves to the Responses API by default, while a new provider architecture and gem generator make external providers first-class.

RubyLLM 2.0: The Agentic Loop, Exposed

RubyLLM 2.0 breaks ask into verbs you can drive yourself: stage a message, call the model once, run tools, step, resume mid-round, and cancel from anywhere.