Skip to content

LeonStaufer/obsidian-beeminder-task-sync

Repository files navigation

Beeminder Task Sync for Obsidian

Automatically sync task completions to Beeminder goals. Add a 🐝 marker to any checklist item, and when you check it off, the plugin sends a datapoint to Beeminder. Uncheck it, and the datapoint is removed.

Works with plain markdown checkboxes. Compatible with the Tasks plugin but does not require it.

Setup

  1. Install the plugin and enable it in Settings > Community plugins.
  2. Go to Settings > Beeminder Task Sync.
  3. Click Open to get your auth token from Beeminder.
  4. In the Auth token setting, create or select a secret in Obsidian SecretStorage that contains your Beeminder auth token.
  5. Click Validate — this confirms the connection and caches your goal list for autocomplete.

The plugin stores only a reference to your selected secret in its settings. The token value itself is read from Obsidian SecretStorage.

Usage

Add a 🐝 goalname marker to any task:

- [ ] Read chapter 5 🐝 reading
- [ ] Run 5km 🐝 exercise=5
- [ ] Write blog post 🐝 words=500 📅 2026-04-10
  • 🐝 reading — sends +1 to the "reading" goal when completed
  • 🐝 exercise=5 — sends +5 to the "exercise" goal
  • If =value is omitted, it defaults to 1

Autocomplete

Type bee, goal, or 🐝 on a task line to get a dropdown of your Beeminder goals. You can also use the command Insert Beeminder marker on current task from the command palette.

If you're using the Tasks plugin, place the 🐝 marker before Tasks metadata (due dates, priorities, etc.) so it doesn't interfere with Tasks' parser. The autocomplete handles this automatically.

Autocomplete has a configurable minimum text trigger length in the plugin settings. By default it is 1, which means text-based suggestions can appear after the first typed character on a task line, while typing 🐝 always triggers suggestions immediately. Set it to 0 if you want suggestions to appear on empty task lines before typing anything.

If you also use the Tasks plugin, both plugins can compete for the same suggestion slot on task lines. A lower Beeminder trigger length makes Beeminder suggestions appear more aggressively, while a higher value gives Tasks more room to show its own suggestions first.

Undo

Unchecking a task deletes the synced datapoint from Beeminder. This works across sessions — the plugin stores the Beeminder datapoint ID locally so it can reverse the sync later.

If a task is heavily edited or moved between files before being unchecked, the plugin may not match it to the stored datapoint. In that case, delete it manually on Beeminder.

Commands

Command Description
Insert Beeminder marker on current task Adds a 🐝 goal marker to the task at your cursor
Refresh Beeminder goals Re-fetches your goal list from Beeminder

Building from source

npm install
npm run build

Copy main.js and manifest.json into .obsidian/plugins/beeminder-sync/ in your vault.

To build and install directly into a vault:

npm run install:vault -- /path/to/YourVault

Releasing

To publish an Obsidian-compatible GitHub release:

  1. Update manifest.json with the new plugin version in x.y.z format.
  2. Commit the change.
  3. Create and push a Git tag with exactly the same version string.
git tag 1.0.1
git push origin 1.0.1

When that tag is pushed, GitHub Actions builds the plugin and creates a release that attaches:

  • main.js
  • manifest.json

The workflow fails if the tag does not exactly match manifest.json's version, which is the release format Obsidian expects.

About

Sync task completions to Beeminder goals. Works with the Tasks plugin.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors