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:
- Double clicking the divider between the section list and Read
Me text doesn't work.
(This is not fixed in macOS Sierra.)
- You may observe display artifacts while dragging the divider
between the section list and Read Me text. (This appears to be
fixed in macOS Sierra.)
- AirPlay devices no longer work in the “Play sound
through:” menu in Preferences.
- Download as a
compressed disk image (UDIF), version 1.1b21 for OS X 10.9
and later. (Release notes)
- Download as a
compressed disk image (UDIF), version 1.1b19 for OS X
10.7–10.8.5. (Does this crash
when you open it?)
- Download as a
compressed disk image (UDIF), version 1.1b18 for Mac OS X 10.6–10.6.8.
- Download Universal Binary as a
compressed disk image (UDIF), version 1.1b12 for Mac OS X
10.4–10.5.8.
- Download source and binary
as a compressed disk image (UDIF), version 1.0 for Mac OS X 10.1–10.6.8.
- Source
is available at GitHub.
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.
- Download as a
compressed disk image (UDIF), version 1.2.1 for OS X 10.8 and
later. (Release notes)
- Download as a
compressed disk image (UDIF), version 1.2 for Mac OS X 10.6–10.7.5.
- Download Universal Binary as a
compressed disk image (UDIF), version 1.1.2 for Mac OS X
10.5–10.5.8.
- Source is available
at GitHub.
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.
I also wrote a small Safari extension which helps NewsBlur to open
stories in a new tab in Safari 10 or later. You can find
it on GitHub.
LaunchBar actions
These
are actions
for LaunchBar,
a multi-talented Mac launcher.
- LBHue: an action for controlling
Philips Hue
lights. Downloads
and source are
available at GitHub.
- LBJumpDesktop: an action for browsing
Jump Desktop remote
connections. Downloads
and source
are available at GitHub.
- LBOfficeMRU: actions which let you access recent
documents in Mac Office 365/2016
applications. Downloads
and source are
available at GitHub.
- LBUpToDate: an action for searching UpToDate®.
Downloads
and source are
available at GitHub.
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:
- opens "slack" URLs (e.g. apple.com) and email
addresses (-l)
- lets you specify applications by their four-character
creator (e.g. 'ToyS') or Java-style bundle ID
(e.g. com.apple.ScriptEditor2), both of which allow
you to move or rename an application without changing
references to it
- lets you find applications rather than opening them
(-n)
- asks applications to print documents (-p)
- allows you to pipe output to any GUI application (not just
TextEdit)
- displays extensive file, folder and volume information
including type, creator, bundle ID, sizes, dates and versions
(-f)
- reports errors intelligibly
- and much more!
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.
- Download source and binary in
gzipped tar format, version 1.2.3 for OS X 10.8 and later.
- Download source and Universal Binary in gzipped tar format, version 1.1 for Mac OS X 10.4–10.7.5.
- Download source and binary in gzipped tar format, version 1.0.1 for Mac OS X 10.2–10.3.9.
- Source is available at GitHub.
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.
- Download source and binary in
gzipped tar format, version 1.1.2 for OS X 10.8 and later.
- Download source and binary in
gzipped tar format, version 1.1.1 for Mac OS X 10.6–10.7.5.
- Download source and Universal
Binary in gzipped tar format, version 1.1 for Mac OS X
10.4–10.5.8.
- Download
source and binary in gzipped tar format, version 1.0.1 for Mac OS X
10.2–10.3.9.
- Source is available at
GitHub.
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.
NCIDpop
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:
- a call history window (reopen NCIDpop to see it); copy or drag
phone numbers from it
- reverse lookup support, including Apple Address Book lookup with
photos (double-click or use the contextual menu)
- network change robustness (automatically reconnects to the NCID server)
- localized date formatting and Address Book-based phone number formatting
- optional Growl notification support
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.
- Download
Universal Binary as a compressed disk image (UDIF), version 0.9.17 for
Mac OS X 10.4 and later.
- Visit
the NCIDpop home page (please note the currently-distributed NCIDpop
for Mac is written in Java and shares no code with the above).
- Source is available at SourceForge.
AntiRSI
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:
- redesigned break window, using less CPU during breaks
- usage tracking which doesn't get affected by video players
(e.g., UpdateSystemActvity)
- work session timer measuring how long you've been typing in total
- showing the break window in all Spaces on Leopard
- not keeping AntiRSI focused when you click
“Postpone”, or at the end of a break when you have
AntiRSI set to keep itself in front
Screenshots: session
timer and break
window; preferences.
- Download application as a ZIP
archive, version 1.4njr4 for Mac OS X 10.4.3 and later (Universal
Binary).
- Source is available from
Subversion (browse).
ICeCoffEE
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:
- Version 1.5 supports more URL styles, displays icons for services
and keyboard shortcut preferences, works on hyperlinks in text, adds a
Copy Link menu item, no longer requires a URL be selected in
Safari/WebKit, adds contextual menu services to Preview/PDFKit and
fixes several bugs.
- Version 1.4.4 fixes a conflict with Safari 3 Beta.
- Version 1.4.3 fixes several bugs and is a Universal Binary,
compatible with Intel Macs.
- Version 1.4.2 is fully compatible with Mac OS X 10.4.
- Version 1.4.1 fixes a conflict with Safari 1.3 as included in Mac
OS X 10.3.9.
- Version 1.4 adds French localization (thanks to thomas didrel) and the
ability to select which services appear in contextual menus.
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.
- Download installer as a compressed Disk Copy (UDIF)
image, version 1.5b5 for Mac OS X 10.4.11–10.5.8 (Universal Binary).
- Download installer as a compressed Disk Copy (UDIF)
image, version 1.4.4 for Mac OS X 10.3.9–10.4.11 (Universal Binary).
- Download installer as a compressed Disk Copy (UDIF)
image, version 1.4.1 for Mac OS X 10.2.8–10.3.8.
- Download installer as a compressed Disk Copy (UDIF)
image, version 1.4 for Mac OS X 10.2.0–10.2.7.
- Download installer and binary as a compressed
disk image (UDIF), version 1.1 for Mac OS X 10.1.
(If you really want ICeCoffEE support in 10.1’s Terminal, download ICeCoffEE 1.2b2: there are
known bugs which crash Terminal in this version, and I do not provide
support for it, but it may work for you.)
- Source is available from Subversion
(browse).
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 12 October 2016.