Ad

Our DNA is written in Swift
Jump

Introducing SwiftBash

Every coding agent I use — Claude Code, Codex, even PI — leans on the same tool: /bin/bash. PI in particular runs almost exclusively through bash, no sandbox in sight. There’s a good reason for that. Bash is one of the most heavily represented languages in any pre-training corpus on the planet, and LLMs write it fluently. If you give a model a file to manipulate, a folder to inspect, or a one-shot pipeline to assemble, the answer that falls out is almost always a few lines of shell.

The downside is the friction. Unless you live in YOLO mode, you spend half your day clicking Allow on find, grep, sed, and cat prompts. Codex in the cloud sidesteps this by spinning up a fresh container per task. On my Mac, both Codex and Claude Code happily edit my actual files — and even with git worktrees, I’ve ended up with stray uncommitted changes on main more than once.

Read more

DTCoreText 2.0

15 years ago, I started my first open source project on GitHub. Originally it was called NSAttributedString-Additions-for-HTML but later I renamed it to DTCoreText. I had switched to maintenance mode 8 years ago, because I had no interest in putting more work into an Objective-C code base.

Read more

SwiftButler

Before I figured out how to use macros to enable SwiftMCP, I experimented a lot with SwiftSyntax and built a project that I called SAAE – Swift AST Abstractor & Editor. Such it lay forgotten on a public GitHub repo. So I figured, it would deserve a new coat of paint and a better name.

Read more

More Updates from the Swift Workshop

My last update post was just two weeks ago, but the pace hasn’t slowed down. If anything, it’s accelerated. The common thread? Real problems encountered while building real things — my client project, the Post mail daemon, and a surprise from Apple that I’ll get to at the end.

Read more

Future Updates

Instead of writing blog posts about individual package updates, I think I’ll be changing things up a bit. My agents do a better job than me in summarizing the changes for individual releases, so I will from now on group them together, referencing the release notes on GitHub.

Read more

Post

Many moons ago I had the idea that I would like for an agentic system to be able to access my e-mail servers. That came to me when I automated collecting incoming invoices for my company with a make.com workflow. But that didn’t amount to much until OpenClaw hit the world’s stage.

Read more

I wish I could be an OpenClaw Maintainer

A few days ago I emailed to the OpenClaw team hoping to be considered for a maintaining role. That’s been the second such email I sent, the first one went straight to Peter Steinberger himself like at 4 o’clock in the morning without doing any kind of proof-reading.

Sadly, I haven’t gotten any response on either channel so far, so I fear that the ship has sailed. Compiling my achievements for the application made a feel a bit proud of what I am offering. Maybe I’ll feel a bit better by putting this letter out there.

Read more

SwiftMCP Client

It’s 5 months since the release of SwiftMCP 1.0 and I’ve been slow cooking some enhancements for it. It was rewarding to see a bit of interested in this package, judging by issues and forks I could see on GitHub. Today, I’m revealing the work for the client-side I’ve done during this time.

Read more

SwiftText

SwiftText Logo

Over the course of the last year, I’ve had quite a few side projects that required some way to get text from a variety of sources, with code and frameworks found in a number of private repos. A while ago, I felt an inkling to start pulling those together into an open source project. So this will be my Christmas gift for you this year.

SwiftText collects various ways of getting text — or, if possible, Markdown — from a variety of sources and places.

Update: … now Images, PDFs, Word DOCX and also HTML pages or URLs.

Read more

SwiftLEGO

My next hobby project – dare I say called it a “vibe project”? – will be a tool to help me split color-assorted piles of LEGO parts into their constituting sets. Before I get started there are some philosophical considerations to make.

Update Nov 28th: Guided Video Tour of the App

Read more