RSSAmplifier

Blog

BrettTerpstra.com - The Mad Science of Brett Terpstra

Welcome to The Lab, detailing the coding and automation exploits of Brett Terpstra.

brettterpstra.comRSS feed ↗40 posts

Latest posts

FileRouter on Product Hunt

FileRouter is on Product Hunt today! I’d really appreciate you checking it out and offering your support. I always end up in the top 10 with these launches, but I’ve never quite made it into the top 5. Help me get there! FileRouter on Procut Hunt Like or share this post Twitter . BrettTerpstra.com is supported by readers like you. Click here if you'd like to help out. Find Brett on…

Web Excursions for August 12th, 2026

Web excursions brought to you in partnership with Fabric , the best way to organize your notes, tasks, and projects in one place. Basalt Eighteen PDF tools in one native Mac window: merge, split, compress, OCR, Bates numbering, forms, signing, compare, and redaction that destroys content and proves it. Offline. $49 once. The redaction feature in this app is killer. Truly destroy sensitive…

Creating TerminalWidgets with AI

I’ve been using AI agents to scaffold little Mac automations for a while, but TerminalWidget is an especially good fit. The CLI is flag-heavy in a good way — once the model can see the real docs, it stops inventing fake options and starts writing scripts that actually update a widget. The trick is not “ask ChatGPT to make a widget.” The trick is: point the agent at the docs, give…

RTF output for Apex

Apex just grew a native Rich Text Format writer. That means Markdown can become something macOS apps already understand: Pages documents, .rtf files, and — with a little pasteboard care — rich text you can drop straight into Mail. Why RTF matters HTML is great for the web. RTF is what a lot of Mac apps speak when you want styled text without leaving the Apple document world. Open an Apex RTF file…

My TerminalWidget Dashboard

People are digging TerminalWidget , which I’m both surprised and delighted by. I really wasn’t sure people would “get” it when I first started working on it (all the way up to the day I launched it). The most common review, though, is some form of “this looks awesome but I don’t know what to do with it.” I’m sharing my personal dashboard in this post…

Graffiti Moe: The Mac App

Graffiti Moe started as a terminal thing on purpose. curl a random spray, slap one up with a one-liner, feel like you’re tagging a wall that only nerds walk past. Fun. Also… a little exclusive. I wanted that same fun for people who never open Terminal. So I built GraffitiMac — a tiny menu-bar app that lives next to your clock and occasionally reminds you that the wall is still weird and…

Linked text and buttons in TerminalWidget

Widgets that just sit there and look pretty are fine. Widgets you can tap into are better. TerminalWidget now leans into that with markdown links in body text and table cells, plus a proper launcher button footer. Credit where it’s due: this feature was inspired by scripting legend Rob Trew. I initially thought it wasn’t possible, but a little prod from them got things rolling. By the…

One more for the road: FileRouter

I’ve been sitting on this one while I got TerminalWidget launched. FileRouter is out — Mac App Store and direct via Paddle (and coming soon to Setapp, give it a couple days) — and I want to tell you what it is before I bury you in feature lists. You know Choosy or Velja? Double-click a link, pick a browser (or let a rule pick one). FileRouter is that idea for files . Double-click a Markdown…

Better Graffiti for Moe

Graffiti Moe has been a moderate success — enough people spraying the wall that it felt worth pushing further. So I did. I added a few features that make composing more fun and keeping the wall cleaner a lot less work. In case you missed the announcement the other day, Graffiti Moe is a public “graffiti wall” where anyone can leave messages and ascii art. You can then use the CLI (or a…

Hello, Graffiti Moe

I like little terminal messages the way people used to like fortune — something short that shows up when you open a shell and reminds you the machine isn’t entirely boring. I wanted a place for custom quotes, and then I wondered “what if other people could write them?”. So I built graffiti.moe : a tiny public wall you spray from the browser, and read from the terminal. For a long…

Introducing TerminalWidget

I’ve always wanted a personal dashboard that actually stays out of the way. Not another browser tab. Not a full-screen monitoring app. Just the numbers and status I care about — sales, transfer speeds, uptime, whether that long-running script is still chewing — available the moment I look. For years that meant juggling terminal windows, sticky notes, and half-forgotten browser bookmarks. The…

Web Excursions for July 30th, 2026

Web excursions brought to you in partnership with MindMeister , the best collaborative mind mapping software out there. Tight Studio Your work deserves a better video. Screen record and produce stunning demos, tutorials, and presentations in minutes. This might be even better than ScreenKite. Truly easy screen recording with automatic zoom and transition, multi-clip, and can even clone your voice…

Marked 3 on the Obsidian Community Repository

I finally got the Marked 3 Obsidian plugin into the official community directory. It can now be installed from within Obsidian with no manual-install rigamarole. What the Plugin Does This plugin allows you to open your current note, or the entire vault, in Marked 3. Perfect for previewing on the fly, or in the case of viewing the vault, an auto-updating preview that moves with you as you edit new…

Updating my PopClip Extensions

I’ve been chipping away at my PopClip extensions again, and this round is a bigger deal than usual. Not because of any one flashy feature, but because the packaging and interaction model finally caught up with how I actually want these things to work. PopClip 2026.7.1 required This update needs PopClip 2026.7.1 (or newer). That’s because several extensions now rely on PopClip’s…

Web Excursions for July 23rd, 2026

Web excursions brought to you in partnership with Tower , the absolute best Git GUI for macOS. Arborist - Taphouse Software A native macOS command center for git repositories and worktrees. A great way to manage multiple worktrees and maintain agent context between them. Works great with Tower as an external tool using the built-in command options. Bibliome — a library that shelves itself Turn…

Introducing Quick Look Doctor

If you’ve ever pressed Spacebar in Finder and gotten the wrong Quick Look preview — plain text instead of Markdown, someone else’s renderer, or a blank stare from macOS — you already know the pain. PluginKit registrations are fiddly, conflicting extensions are common, and the fix usually involves a scavenger hunt through Terminal. Quick Look Doctor is a free macOS utility that turns…

An update on Marked QL

Marked QL , my new Markdown Quick Look previewer, has met a warm reception, and I wanted to update everyone on a couple of things. On the price First off, yes, I increased the price of Marked QL from $4.99 to $9.99. I did this in anticipation of a new version of Marked QL that will increase its functionality, but then my update got rejected by Apple. I decided to leave the price there and see how…

My Macstock X Markdown Presentation

I gave a presentation at Macstock X that I thought people might be interested in. It was about Markdown publishing, and ostensibly about Marked, although I didn’t get to as much about Marked as I had intended. It still went pretty well. I created the whole presentation in Markdown and presented it with Reveal.js, using Multiplex so people could follow along on their own machines, able to…

Introducing Marked QL — Markdown preview in Finder

I’ve been working on something small but useful, and it’s out now: Marked QL , a Quick Look extension that renders Markdown previews right in Finder. Select a .md file, hit Spacebar, and you get a real preview — not plain text, not a sad monospace dump, but actual formatted output with math, diagrams, syntax highlighting, the works. It’s a companion to Marked, but it…

Web Excursions for July 4th, 2026

Web excursions brought to you in partnership with CleanMyMac X , all the tools to speed up your Mac, in one app. Happy 4th of July, for those (in the US) who observe. It’s a hot one here. So I’m cooling off with some cool Mac (and one iOS) tools. Please enjoy responsibly. ‎Senqu Image Converter App - App Store Cool, focused little app for image conversion and compression. Read the…

New, faster NA

If you use NA , you’re going to love this: the Rust rewrite is noticeably faster than the original Ruby gem — especially in prompt hooks, where a quick cd into a project shouldn’t mean waiting on a script before you get your shell back. Same commands, same TaskPaper files, less lag. What is NA? na (“next action”) is a command-line tool for managing todos in plain-text…

Web Excursions for July 1st, 2026

Web excursions brought to you in partnership with CleanMyMac X , all the tools to speed up your Mac, in one app. audiobookshelf A self-hosted audiobook and podcast server. I’m running this on Pikapods for a few dollars a month and it’s excellent. Side tip: Libation for “liberating” audiobooks. FoldNotes — Think in folds. Markdown notes that fold. An interesting notes app…

Quarto mode for Apex

Apex now has a --mode quarto option aimed at Pandoc/Quarto-style markdown for HTML output. This is not a Quarto replacement — you are not getting cell execution, project rendering, or PDF output from Apex alone. What you do get is a sensible HTML path for .qmd -style documents without running the full Quarto toolchain. Getting started From the command line: apex document.qmd --mode quarto…

Automating Application Screenshots

Keeping help documentation screenshots up to date is tedious. Every time the UI changes, you end up manually opening windows, hiding distractions, capturing images, cropping them, generating @2x versions, and dropping files into the right folders. I got tired of that workflow for Marked , so I built an AppleScript that does most of it for me. A lot of it this script is very Marked-specific —…

Apex and Grid Tables

Apex 1.1.0 adds support for Pandoc-style grid tables — those ASCII-art tables built with + , - , = , and | instead of the usual pipe-table separators. If you have ever copied a grid table out of a Pandoc doc or academic paper and wished your Markdown processor would just deal with it, this one is for you. First, thanks to Andreas Kraft for some pointers that got me here. The implementation…

The Marked 3 giveaway winners!

The Marked 3 giveaway has ended, and I have winners to announce! The winners! Congratulations to: Alessandro Campeis Anwar Choukah Neil Anderson You should have received an email with details, please let me know if you didn’t hear anything! But I didn’t win! If you didn’t win, sorry, but Marked 3 is still worth checking out . If you haven’t tried it yet, Marked 3 is a huge…

Anecnote: better memories with context [Sponsor]

Thanks to Anecnote for sponsoring BrettTerpstra.com this week! It’s a really cool app for capturing and organizing memories, complete with context. I’ll let the developer explain. What’s strange about memory is how selective it becomes over time. Experiences that once felt vivid compress into rough summaries. Entire stretches of life collapse into a handful of surviving details. A trip…

Marked 3 giveaway!

Thanks to everyone for bearing with me while I get launch bugs worked out of Marked. As a thank you to my readers, beta testers, and supporters, I wanted to offer a few free lifetime licenses for Marked 3 . Marked 3 is the biggest update to Marked in over a decade. From DOCX handling to speed reading, it’s packed with features that are sure to improve your Markdown workflow. Check out the…

Marked 3 updates

Marked 3 has been moving fast since 3.0.6, and is now at 3.0.25 (for Paddle customers). If you haven’t updated in a while, here’s a tour of the highlights. I’ll give you the stuff that’s genuinely new first, then a roundup of the steady stream of fixes that got it here. Regarding Updates Setapp reviews are only taking about a day on average, but Mac App Store app reviews…

Rescue your nvALT Notes & Settings database

Despite my frequent warnings, a lot of nvALT (and Notational Velocity) users keep their notes in a database instead of individual files. And people are finding themselves unable to launch nvALT, meaning that database with all their notes is inaccessible. So I made a tool to rescue it. If you ever lived in nvALT or Notational Velocity , your notes might lived in one opaque blob: the Notes &…

Web Excursions for May 23rd, 2026

Web excursions brought to you in partnership with CleanShot X, the absolute, hands-down best app for Mac screenshots. Get one of my all-time favorite apps here. rhsev/grubber-twin Yet more command line goodness from Ralf Hülsmann. Sync configuration folders between two Macs from self-documenting Markdown files. RSSHub Everything is RSSible Scraper to turn any website into an RSS feed. Works with…

Marked 3 is officially out

It’s official, Marked 3 is out! This update represents the largest release of Marked since its inception. Microsoft Word One of Marked’s weakest points in V2 was its poor support for exporting DOCX documents. Marked 3 outputs 100% accurate DOCX files, with element styles, built-in templates, and even converts math equations to Word’s native format. Changes tracked with CriticMarkup are…

A Bartender Pro Review

I had switched away from Bartender a while ago, mostly due to quirks on macOS 26, and partly due to confusion over its acquisition. But I’m back, and it’s better than ever. First, a note about the acquisition: if you got nervous about things that happened immediately after, as far as I can tell it’s all been resolved (and was very quickly). They removed the Amplitude software…

Web Excursions for May 11th, 2026

Web excursions brought to you in partnership with Backblaze. Back up everything. ‎SafeCam Pro An interesting app that let’s you set a “trusted face” for your video calls, and then obscures the camera if that face steps away, laptop closes, etc. Sortio Sortio is an AI file sorter for Mac and Windows. Auto-sort, rename, and organize files by prompt. Free to try, Pro subscription…

A little more flexibility for your GitHub contribution graphs

The Contrib API I published last week for generating GitHub contribution heatmaps as a PNG you can drop into a TerminalWidget , blog post, or slide deck, now goes further than “pick a username and theme.” First of all, I’ve open sourced the Contrib project on GitHub . Feel free to fork and play with it if you want to. The version on my server will continue to run as a…

Generate static images of your GitHub contribution chart

I just shipped a small API that generates static images of your GitHub contribution graph, and you can try it here . My goal was graphs in TerminalWidget, but I figured it would be useful in more places than that. Why I built this I wanted to show an activity graph in TerminalWidget. The easiest path turned out to be pulling contribution data from GitHub GraphQL and rendering the result as an…

New callout support in Apex

Callouts just got a lot more flexible in the latest release of Apex. I now support Quarto, Pandoc, Obsidian/Bear, and Python Markdown flavors of callouts. Obsidian and Bear style still works The original blockquote-style syntax is still first-class: > [!NOTE] Heads up > This is a note. That still renders to Apex callout HTML with type-aware classes and optional collapsible behavior using + and - .…

Web Excursions for May 6th, 2026

Web excursions brought to you in partnership with CleanShot X, the absolute, hands-down best app for Mac screenshots. Get one of my all-time favorite apps here. I’ve been hard at work on TerminalWidget and trying to get Marked through App Review, so I’ve been a bit underwater with blogging. But here’s what I’ve found this week. TheLustriVA/fontlet A TUI for figlet written…

Timelined: track your life events [Sponsor]

Thanks to Timelined for sponsoring BrettTerpstra.com this week! I’ve started using this app to track my medical history, making it easy to reference my appointments, diagnoses, symptom onsets, and more. It’s going to be really handy when I go to a specialist and need to give them my history. Aside from specialized applications like medical history, this app lets you track anything and…

Web Excursions for April 22nd, 2026

Web excursions brought to you in partnership with Tower , the absolute best Git GUI for macOS. Typer - Free Private AI for Mac. No Account, No Limits. Typer runs AI directly on your Mac. No cloud, no account, no message limits. Works offline. Free forever. Download from the Mac App Store. mymarks A bookmarking service hosted in the EU. Save, tag, and search your links. GDPR compliant, no tracking.…