Ad

Our DNA is written in Swift
Jump

Category Archive for ‘Updates’ rss

Look What JavaScriptCore Has Been Doing in My Pocket

I’ll be honest. When I started thinking about which other languages SwiftBash should run, JavaScript was about fifth on my list. I’m a Swift person. I’m a Cocoa person. I’m somewhere between indifferent and faintly hostile to npm. The idea of “let’s drop a Node-compatible runtime into the bash shell” sounded exactly like the kind of project I would shake my head at on someone else’s GitHub.

Read more

Introducing SwiftPorts

When I was building SwiftBash I made surprisingly quick headway on the basic CLI utilities — jq, awk, sed, grep. Each one is a small, well-scoped language, and once you sit down with the spec it really is just a parser and an evaluator.

Then I hit a wall. The two CLIs I reach for most as a working developer aren’t tiny languages — they’re gh and glab, the GitHub and GitLab clients. And right next to them, the granddaddy of all dev CLIs: git. These aren’t 2,000-line tools. gh alone is roughly fifty thousand lines of Go, with subcommand trees, OAuth flows, REST + GraphQL clients, pagination, archive extraction, jq filtering — the works. Reimplementing all of that by hand felt like a year of evenings.

But the source code is right there on GitHub. And I have a coding agent. So I began to wonder: shouldn’t Opus 4.7 1M (extra-high) be able to translate cli/cli into Swift for me, given the original as ground truth?

Read more

An Interpreter for Swift

A few days ago I introduced SwiftBash — a sandboxed bash interpreter written in pure Swift. At the end of the four-green-checkmarks post I promised the next instalment would be about something else: SwiftScript, the same idea but for Swift itself.

It’s exactly that. Real Swift syntax, walked by a tree-walking interpreter, no LLVM, no codegen, no Process/fork/exec — meant for the places where Swift as a compiled binary isn’t an option.

After this success with an AST for bash, I figured, let’s up the game and try the same with Swift Syntax. My Claude Opus has proven time again that it has the necessary tenacity to make any stupid idea come true.

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

Four Months in the Making: SwiftMCP 1.0 is Here

After four months of intensive development, I’m thrilled to announce that SwiftMCP 1.0 is feature-complete and ready for you to use.

For those just joining, SwiftMCP is a native Swift implementation of the Model Context Protocol (MCP). The goal is to provide a dead-simple way for any developer to make their app, or parts of it, available as a powerful server for AI agents and Large Language Models. You can read the official specification at modelcontextprotocol.io.

I did a SwiftMCP 1.0 Feature Speed Run on YouTube, if that’s what you prefer.

Read more

DTCoreText 1.6.27

This is a maintenance release, after the previous one was more than a year old. There were a couple open pull requests which I merged.

Read more

Accessibility in SpeakerClock 1.3.1

You can now fully operate SpeakerClock with no or low vision. We gave SpeakerClock the full Accessibility treatment. In this article I describe some of the things I learned adding accessibility features to SpeakerClock, now that it is fully written in SwiftUI.

Read more

SpeakerClock 1.3.0

I’ve been busy since I completely rewrote SpeakerClock in SwiftUI. That was version 1.2.0.

The App Store provides a concept called Universal Purchase, which is where purchasing an app on one device also unlocks it on all other supported platforms. In the previous version I added a Mac version. This update now adds the AppleTV version. Still a minor update, because the functionality is identical, yet all three versions benefit from improvements.

Read more