I’ve been working on a new project called TerminalWidget, and I’m excited to tell you about it. It’s built for people who live on the command line and want useful output visible at a glance instead of buried in a terminal tab.

I gave up trying to find a tool that did what seemed like it should be a simple thing: take things like progress reports, status indicators, and generated images and display them in macOS and iOS widgets. There are a couple of options out there, but they’re of limited flexibility and all suffer from huge lags in update times. So I built my own. TerminalWidget gives you a wide array of visualization options for status reports, chart data, progress indicators, and images, and it syncs across macOS and iOS with rapid updates (1s on macOS, under 30s when mirrored to iOS).

You can check it out at terminalwidget.app, with deeper examples on the widgets page and full command docs on the CLI page.

What TerminalWidget does

TerminalWidget lets you push terminal output into widgets on macOS, iPhone, and iPad. It can be status text, bigger dashboard-style readouts with icons and text, charts, progress bars, or even images.

It’s about pulling the important stuff out of Terminal scripts and putting it somewhere visible all day.

Visualizations in one place

One of my goals was flexibility. Different jobs need different visuals:

  • text and text+icon widgets for status messages
  • progress formats for long-running tasks
  • chart styles for quick trend checks
  • image modes for camera snapshots, generated images, or API-delivered graphics

There are a bunch of visualization styles available now, and I keep adding more. The easiest way to get a feel for all of them is in the widget gallery.

Progress, data, and images

TerminalWidget works well as:

  • Progress indicator: build/deploy progress, backup state, sync progress
  • Data visualization: metrics from scripts, API responses, or local logs
  • Image display: local files or remote URL/API image sources

That means one workflow can mix ops-style monitoring, personal automation, and visual status boards.

CLI + URL scheme = automation friendly

The CLI is the main interface, and it’s meant to be scriptable from day one. If you want to integrate with shell scripts, cron/launchd, CI jobs, Shortcuts, or app automations, this is where it shines.

# simple status
terminal-widget --target widget1 --text "Backup complete"

# progress mode
terminal-widget --target widget2 --text "Deploying" --progress 68 --progress-format bar

# chart mode
terminal-widget --target widget3 --chart "3 5 8 13 21 13 8" --chart-format graph

There’s also a URL scheme you can call from anywhere on supported platforms, so updates can be triggered without opening the app directly. Combined with iCloud sync, one update can propagate across devices.

iCloud sync across iPhone and iPad

Another big piece was cross-device behavior. TerminalWidget syncs widget payloads across iPhone and iPad using iCloud, so the same setup doesn’t have to be rebuilt manually on each device.

Updates sent on macOS mirror to your phone, and if you trigger updates via URL scheme on iOS/iPadOS, your widgets update on your Mac.

Distribution and pricing

TerminalWidget will be sold as a universal purchase for Mac and iOS, available only through the App Store, priced at $9.99.

One purchase, all supported platforms.

A niche project (and why I made it anyway)

This is definitely a more specialized app than some of the more successful apps out there. The audience is smaller, no question. But it solves a real problem for terminal-heavy workflows, and I’m really happy with how it turned out.

Even if it’s niche, I think enough people are going to find it genuinely useful to make it worth building.

If that sounds like your kind of tool, start with the video at terminalwidget.app, then explore widgets and CLI docs. Sign up for the newsletter on the site and get updates on development and release.

As far as release schedule, I have to get Marked 3 out the door this week, then focus on porting some libraries from Marked to nvUltra to get that published (finally). Then TerminalWidget. So not immediately, but everything is happening fast right now.

If you’ve been tracking BlogBook at all, testing is going well on that but I haven’t had time to get to a couple of important bugs. I was hoping to have that out alongside Marked 3 (since its exports work really well with Marked’s export functions), but I think it’s going to be a little delayed. Stay tuned!