Posts tagged with "app"

Spark Mail Adds a Mac CLI and Agent Skills

About two weeks ago, Spark, the email app by Readdle, was updated with a CLI and a set of agentic skills for Claude Code, Codex, and other agents, allowing them read-only access to messages, calendar events, contacts, and meeting notes. These features were extended again a few days ago with new abilities that added email triage actions and more skills. The approach is clever in its local architecture, which keeps your message data on your Mac while making it available to agents.

CLIs are one of this year’s top app trends, with a wide variety of productivity apps adding them. The reason is simple: agents that work in the Terminal like Claude Code and Codex can use local CLIs, which keeps token usage down because the agent only sees a command’s text output instead of carrying tool schemas with it the way MCP servers do.

Spark works with several agents.

Spark works with several agents.

Spark isn’t the first to create an email CLI. The Google-created, but “not an official product,” googleworkspace CLI interfaces with Gmail and a bunch of other Google services, offering over 100 skills. The difference is that a CLI like googleworkspace contacts Google’s Gmail servers and acts on your messages in the cloud, whereas Spark’s CLI acts as a remote control for the Spark app itself, managing the messages locally on your Mac and then syncing them back to Gmail via the desktop app.

I’ve worked with both the googleworkspace CLI and Spark’s, and Spark’s is by far the easier one to use because you don’t need to set up a Google Cloud project or deal with OAuth. The only drawback is that the Spark app needs to be open for its CLI to work because everything happens on your Mac. However, as a practical matter, that’s not a limitation that has impacted me since my email app is open when I’d want to use Spark’s CLI or skills anyway.

Read-only actions are available for all users. Triage actions require a Pro subscription.

Read-only actions are available for all users. Triage actions require a Pro subscription.

There are two levels to what Spark offers. The read-only CLI and skills are available to all users, whether or not they subscribe to Spark Pro. Those actions include the ability to search and summarize messages, fetch context, read threads, and view your calendar, contacts, and meeting notes. A Pro subscription adds message drafting, replying, snoozing, pinning, labeling, moving, and archiving, along with team commenting. It’s an excellent set of actions that uses syntax similar to Gmail, which means it should be familiar to many long-time Gmail users straight out of the box.

And there’s more. Readdle has also released a set of recipes and personas, which are open-source skills. The recipes include instructions for morning and end-of-day email reviews, reviewing of new senders, catching up on messages after vacation, and more. Personas are more holistic approaches to your inbox that apply to an entire email session and have modes. For example, the Founder persona has Rapid Triage, Aggressive Delegation, and Cross-Team Oversight modes. Other personas include Executive Assistant, Freelancer, and Team Lead. Full details of every recipe and persona are available on Readdle’s GitHub page.

Searching email via the command line.

Searching email via the command line.

I’ve spent time using the read-only actions of Spark’s CLI with Claude Code, and it’s an excellent option for automating your email. Setup is simple and fast, and it works well. I’m not sure personas are for me, but there are a bunch of interesting ideas among the recipes, which I intend to explore more and use to create my own skills.

Spark Mail is available as a free download on the Mac App Store. The CLI’s triage actions are exclusive to users who subscribe to Spark Pro, which costs $20/month or $200/year.


Hour by Hour: Reverse Engineering Your Schedule

Hour by Hour is a clever new approach to scheduling your time from Joe Humfrey of Selkie Design that took me a little while to get used to, but has really grown on me.

The app was inspired by travel planning and the age-old question, “When should I leave for the airport?” You’ve probably been there before. You have a flight at, say, 2:00 pm, but you need to drive 30 minutes to the airport, add some time to park, take a shuttle to the terminal, get through security, and build in a little extra wiggle room just in case traffic is bad or something else goes sideways. Suddenly, 2:00 pm becomes an exercise in mental gymnastics as you work your way back to when you should walk out the door.

Hour by Hour solves this sort of scheduling, but for every type of event, by using the same kind of reverse planning. At the same time, it’s not really a calendar app so much as a scheduling companion for your calendar. You can pull your calendar events into Hour by Hour, but you don’t have to, and if you dive into the app expecting to use it the same way you use a traditional calendar, the assumptions you bring with you will probably trip you up.

Read more



Dot: The Menu Bar Calendar That’s Become My Main Calendar

Over time, I’ve gravitated towards a two-calendar system on my Mac because I’ve never found an app where both the desktop app and the menu bar version meet all my needs. That’s probably because my calendar use is a little backwards. I don’t have a lot of meetings each week; instead, my calendar is a mix of reminders, package deliveries, and a handful of work and family events. With just two or three entries each day, I’ve found myself managing events more and more often from a simple menu bar app, reserving my full calendar app for more involved event entry and planning.

On the desktop side, I’ve used Apple Calendar the most, but I’ve also used Fantastical and BusyCal for extended periods, ultimately landing on Notion Calendar. It isn’t perfect, but its Notion integration can be handy at times. On the menu bar side of the equation, I used Dato for many years. It’s an excellent app, but even it is a little more than I need, which is why I was excited to recently discover Dot.

Read more


How I Revived My Decade-Old App with Claude Code

Blink from 2017 (left) and 2026 (right).

Blink from 2017 (left) and 2026 (right).

Every holiday season, Federico and I spend our downtime on nerd projects. This year, both of us spent a lot of that time building tools for ourselves with Claude Code in what developed into a bit of a competition as we each tried to one-up the other’s creations. We’ll have more on what we’ve been up to on AppStories, MacStories, and for Club members soon, but today, I wanted to share an experiment I ran last night that I think captures a very personal and potentially far-reaching slice of what tools like Claude Code can enable.

Blink from 2017 running on a modern iPhone.

Blink from 2017 running on a modern iPhone.

Before I wrote at MacStories, I made a few apps, including Blink, which generated affiliate links for Apple’s media services. The app had a good run from 2015-2017, but I pulled it from the App Store when Apple ended its affiliate program for apps because that was the part of the app that was used the most. Since then, the project has sat in a private GitHub repo untouched.

Last night, I was sitting on the couch working on a Safari web extension when I opened GitHub and saw that old Blink code, which sparked a thought. I wondered whether Claude Code could update Blink to use Swift and SwiftUI with minimal effort on my part. I don’t have any intention of re-releasing Blink, but I couldn’t shake the “what if” rattling in my head, so I cloned the repo and put Claude to work.

Read more


The MacStories Selects 2025 Lifetime Achievement Award

Unread

In the 16 years that I’ve been writing for MacStories, I’ve seen my fair share of new apps that have come and gone. Apps that promised to revolutionize a particular segment of the App Store were eventually acquired, discontinued, or simply abandoned. It’s been very unusual to witness an indie app survive in a highly competitive marketplace, let alone to find one that thrived after having been sold twice to different owners over the years. But such is the case of Unread, the RSS client now developed by John Brayton of Golden Hill Software and the recipient of this year’s MacStories Selects Lifetime Achievement Award.

Unread was originally created by indie developer Jared Sinclair in 2014, sold to Supertop (at the time, the makers of Castro), and then sold again to Golden Hill Software in 2017. When it first came out in 2014, Unread entered a crowded space: in the aftermath of Google Reader’s demise in 2013, third-party companies and developers rushed to offer comparable RSS syncing services and compatible apps to let users sync their RSS subscriptions and read articles across multiple devices.

In my original review from 2014, I noted how Unread set a new standard for elegant, gesture-driven interfaces optimized for phones that were getting progressively larger and harder to operate with one hand. With a fluid and minimal interface driven by “sloppy gestures” that didn’t require precision or specific buttons, Unread stood out because it followed Apple’s then-new “flat design” but imbued it with personality in the form of typographic choices, colors, share options (Sinclair created a custom share sheet before an official one even existed), and a novel interaction mechanism for an RSS reader.

After a three-year stint as a Supertop product, Unread was taken under the wing of John Brayton, who did something exceptionally rare: instead of following short-lived industry trends and fads, he doubled down on Unread’s essence while judiciously embracing modern technologies. Eleven years after its inception and eight years after its second sale to a different developer, Unread still stands out in the third-party indie app market because it’s managed to honor its lineage while adapting to the ever-changing nature of the Apple ecosystem.

Unread for iOS.

Unread for iOS.

Unread still is, at a fundamental level, an elegant and polished RSS client that syncs with multiple services and presents articles in a minimal, clutter-free UI that you can easily control with your thumb. Everything else around it, however, has evolved and expanded. Unread is now available on the iPad and Mac, where it supports features such as menu bar commands, windowing, and keyboard shortcuts. There is an Unread Cloud syncing service that is fully managed by its developer. Last year, Brayton shipped an incredibly powerful and custom Shortcuts integration that lets you trigger automations in the Shortcuts app from individual articles in Unread. This year, Brayton adapted to another new reality of the modern web: Unread can now securely store logins for paywalled websites – such as Club MacStories – so that all your articles that require a subscription to be read can be saved and accessed within the app. And in all of this, the modern Unread is both unmistakably the “same” app from 11 years ago, but also something far greater that has built upon Sinclair’s original idea thanks to the constant, relentless work of its current developer, John Brayton.

If you’ve been reading MacStories all these years, you know that this is no easy feat. Most app acquisitions don’t work out in the end, leaving users with the bittersweet nostalgia of something that used to be great and was eventually swallowed up by the greater scheme of economic factors, app rot, technical debt, and App Store changes.

Against all odds, Unread has successfully bucked that trend and evolved into a mature, powerful product that continues to stand alone in the sea of RSS clients as a beacon of hope for indie developers and our community as a whole. There is nothing else like it. For all these reasons, we couldn’t think of an app more worthy of the MacStories Selects Lifetime Achievement Award in 2025.

Learn more about Unread:


Awake: A Considered, Effective Alarm for Chronic Snoozers

Waking up on time is a quintessential human problem. Over the years, we’ve come up with all kinds of solutions, from ringing analog clocks to flashing lights to motorized digital clocks that roll away from our bedsides as they chime, forcing us to get up and find them to turn them off. But what if there was a way to use a device you already have – your phone – to help you break the habit of snoozing and actually get out of bed when you’re supposed to?

That’s what unorderly, the team behind the day planner app and App Store Awards 2025 finalist Structured, have set out to do with their new alarm app Awake. Built on the newly introduced AlarmKit API, which gives third-party alarm apps the same level of system access as Apple’s Clock app, Awake takes a comprehensive approach to setting alarms that’s meant not only to wake you up but to help you feel more alert and prepared for the day when you do.

If you’ve ever used Structured before, you’re aware of how deeply the unorderly team considers every element of their work, from the color scheme to the fine details of editing events, to make tools that are both elegant and powerful. I’m happy to report that the same level of care is reflected in Awake, both in its design and in the balance of simplicity and customization it offers.

Read more



Activas: Modern Design with a Sprinkling of AI

Activas is a new health and wellness tracker for the iPhone and iPad from developer Brian Hough, who built it from the ground up with Apple Intelligence and Liquid Glass in mind. The app serves as a dashboard that brings together information from the Health app in a colorful and easy-to-understand way, using progressive disclosure to avoid overwhelming users with data. It’s a fantastic example of modern design that marries form and function to elevate the user experience.

The app has just two tabs that adopt iOS 26’s Liquid Glass design without sacrificing legibility. The default view is the Dashboard, which can display your recent health and wellness metrics for the last 7, 15, or 30 days. At the top of the Dashboard is a Momentum Score that’s calculated based on a composite of step count, sleep, resting heart rate, and BMI targets, plus your calorie goal. Unlike many similar apps, Activas links to research supporting its targets, which I appreciate. The Momentum Score and a handful of additional stats can also be tracked using one of the app’s Home Screen widgets.

The Momentum Score is followed by an AI-generated insight about your metrics. Because I haven’t been tracking my calories or weight recently, the app suggested I should. That’s followed by overviews of Activity, Nutrition, Sleep, Vitals, and Body Measurement. Each of these sections appears as a SwiftUI-style card that includes graphs showing recent trends, an insight about your metrics, and a suggested question that you can ask the Activas AI with a tap. Sections can be turned on and off and reordered in the app’s settings, too.

The Dashboard’s design is superb. By collecting individual measurements in groups of related statistics and providing a takeaway about each section, the app allows users to get a quick, understandable overview of where they’re succeeding and what needs work.

Read more