Beeminder Forum

Beeminding via LaunchBar (or Alfred, or anywhere on your Mac)

Greetings, Beeminderers! Thought I’d share a couple scripts I’ve been using to quickly beemind from anywhere on my Mac without opening an app/visiting a web page/etc.

Beemind Anything

The first one, imaginatively titled Beemind Anything :honeybee:, checks for all your goals, shows which ones have upcoming deadlines, and lets you log data points.

I invoke my scripts via LaunchBar, so I type command-space to invoke Launchbar → bee [enter]to run the script:

The script fetches and shows a list of my Beeminder goals (in order of next derailment). If a goal is close to derailing, a warning emoji is shown, along with the cost of derailing. In the above image, the anki goal will derail today at a cost of $90, and the mits goal will derail tomorrow at a cost of $30.

If you want to log a data point, just pick one and enter the value (and optional comment):

Note that this script requires the free JSON Helper utility.

Beemind {{specific goal}}

I also have a suite of scripts hardcoded to specific goals for even faster access. I just duplicate the script and update the settings per goal.

No screencast because the fastest invocation (no prompts to update the default values) goes straight from LaunchBar to a success notification. :slight_smile:

Here’s the template.

Configuration options:

  • Default data point value
  • Prompt for data point value? (If true, you’ll be prompted to update the default value; if false, it will bypass a prompt and just use the default value you set)
  • Default comment
  • Prompt for comment?
  • If using a launcher, do you want the passed parameter to be the data point or the comment?

On that last point, LaunchBar (and Alfred) let you send data to a script. With LaunchBar you do that by tapping space while an item is selected.

So to log a specific value to your crank-widgets goal, you could type

  • command+space(to invoke LaunchBar)
  • cw(to invoke your “Beemind Cranking Widgets” script)
  • [space] 25 [enter] to send the value 25 to the script.

(I did my best to set it up to work with Alfred as well, although I don’t use Alfred.)

Not sure where to run scripts from? You’ve got options: a launcher (e.g., LaunchBar or Alfred), a dedicated script runner (e.g., FastScripts), a general automation utility (e.g., Keyboard Maestro, BetterTouchTool), or even the built-in Scripts menu.

Again, the links are

Enjoy…

4 Likes

By way of sheepish confession, I should probably have written

scripts I’d been using

instead of

scripts I’ve been using

…since I’ve taken a break from Beeminding in 2019. But it’s still a community I value and high time I shared. :wink:

2 Likes

Nice! I love it! Especially since I’m in a love hate relationship with Mac Automation.
First question that comes to mind is why the fudge did you do this in Apple Script? Arguably it’s not the worst language, especially compared to JavaScript but I still think that JavaScript is maybe slightly less awkward to use than AppleScript?
But then again – why program this as Mac Automation in the first place? I mean you’re not automating any GUI so why limit yourself to that?

Ha, fair question. Short answer: I’ve been whipping scripts together in AppleScript for as long as I can remember so it was just the default option.

Definitely did want something lightweight that I could trigger via LaunchBar, though. What would you use for something like this?

2 Likes

Scala :slight_smile: