Nicholas Riley



Free software I’ve written

This page is a catalog of free software I've written or substantially worked on.

Pester: simple, disposable alarms and timers for macOS

Pester is designed to let you set, dismiss or snooze an alarm or timer as quickly and painlessly as possible, entirely from the keyboard if you wish. Alert options include sounds, speech and desktop notifications.

What other people say: Macworld, Wolf Rentzsch, Daring Fireball.

Note for OS X El Capitan (10.11) and macOS Sierra (10.12) users: Pester 1.1b21 is compatible with El Capitan and Sierra. However, there are several issues in these versions I have been unable to work around:

Shroud: a sensory deprivation tank for your Mac1

Note for macOS Sierra (10.12) users: Shroud does not launch correctly on macOS Sierra. I hope to fix this soon.

Shroud places a solid-color backdrop behind windows or applications to allow you to focus. The backdrop doesn’t come to the front when you click on it, messing up your carefully arranged workspace. Shroud (optionally) also obscures your menu bar until you move the mouse over it.

What other people say: The Guardian, 1Edge Cases.

Hermes: a compact Pandora client that doesn't use Flash

I took over primary maintainership of this app from its original author in 2014, have fixed a lot of bugs, cleaned up the UI and added some features since. Hermes has its own Web site.

NewsBlur: a personal news reader that brings people together to talk about the world

I've made significant contributions to the NewsBlur iOS app. Samuel was kind enough to put me on the About page.

LaunchBar actions

These are actions for LaunchBar, a multi-talented Mac launcher.

launch: a command-line launcher for macOS in the spirit of open

Apple provides a simple command-line launching program called open with macOS. launch offers several options that open doesn't. It:

launch is useful by itself, but is even better when used in scripts. Assign a shell command to your favorite macOS text, graphics or resource editor. Browse your favorite Web site with a few keystrokes.

appswitch: a command-line interface to macOS process management

If you use shell scripts to automate macOS applications, you may need to switch between, hide, show or quit applications. Need to launch an X11 application from Terminal but the X server isn't in front when you need it? Use appswitch to fix the problem. Or, if you'd like a version of the ps(1) utility which understands the concept of macOS applications, appswitch can help.

brightness: a command-line interface to macOS display brightness

Manage a lab of iMacs? Using a Mac display with software brightness control but without a light sensor? brightness can help you quickly set or retrieve your display’s brightness from scripts or the command line. It will also print display characteristics such as resolution.

soundsource: a command-line interface to macOS audio device selection

A command-line version of Rogue Amoeba's SoundSource, soundsource lets you enumerate, display and change the selected macOS input, output and system audio devices. I use it to switch audio devices from the keyboard with the help of FastScripts.


The macOS version of the NCIDpop network caller ID client, originally written by Alexei Kosut, has not seen much development in a while, and had fallen behind the Windows version.

Features I’ve added include:

Maybe you’re wondering “why use NCID when I already have caller ID?” If you have SIP service at home, NCID can give you caller ID on the first ring on every computer display—or more, if you use Growl to forward the notifications elsewhere. Since I get pretty frequent calls from people I don’t want to talk to, such as Spanish-speaking bill collectors who won’t take no for an answer, it’s been a great help in reducing my stress when the phone rings.

Screenshots: incoming call and call history; preferences.


The original version of AntiRSI was written by Onne Gorter. In his words, “AntiRSI is a program for OS X that helps prevent RSI (repetitive strain injury) and other computer related stress. It does so by forcing you to take regular breaks, yet without getting in the way. It also detects natural breaks so it won't force too many breaks on you.”

Over the past few years I’ve made several changes, including:

Screenshots: session timer and break window; preferences.


ICeCoffEE lets you Command-click to open URLs in Mac OS X applications including Safari, Mail, TextEdit and Terminal. It adds an enhanced, editable “Services” menu to some text fields’ contextual menus, and optionally to the menu bar as well. ICeCoffEE is modeled after ICeTEe for classic Mac OS, which provided the same functionality in many Macintosh applications by patching TextEdit.

Recent changes:

Note: ICeCoffEE is not compatible with Mac OS X 10.6 or later. Analogs to a portion of ICeCoffEE’s Services and URL launching functionality are present in current OS X versions. I do not plan to update it.

F-Script Anywhere

F-Script Anywhere lets you embed a F-Script interpreter in any Cocoa application. You can use F-Script like a debugger, so you can examine your application's objects in a richer environment than GDB or Xcode permits. F-Script Anywhere can also be useful for examining applications you didn't write, to isolate bugs or add new features.

As of version 1.3, F-Script Anywhere is now part of the F-Script distribution, and is no longer distributed via this Web site. It is finally compatible with Mac OS X 10.4 and is a Universal Binary. Thanks to Robert Chin for bringing F-Script Anywhere up to date.

Note: F-Script Anywhere doesn’t work with Mac OS X 10.6 or later, and I do not have any plans to update it to be compatible. An injection service is available as a partial substitute.

Last updated on 21 September 2016.