oswalt282 downloadsView and edit your SuperProductivity tasks via SuperProductivity's local REST API.
View and edit your SuperProductivity tasks directly inside Obsidian, using SuperProductivity's local REST API — no cloud account, no third-party server.
📂 Full source code: github.com/oswaltx/obsidian-superproductivity-todo-sync
@/#/+ shortcut syntax as
SuperProductivity's own add-task bar, plus a ^ shortcut of this plugin's
own for subtasks, with autocomplete for all of them:@today, @tomorrow, a weekday name, or @nextweek for the due date#tag for an existing tag+project for an existing project^parent task to create it as a subtask of an existing top-level task
(SuperProductivity requires a subtask to inherit its parent's project and
forbids it from having its own tags, so any #tag/+project in the same
input is dropped when ^ resolves)30m / 2h for a time estimateobsidian://open?...&file=<path> link, a small
icon opens that note directly inside Obsidian.http://127.0.0.1:3876 — the port is not
fixed) and an API token.127.0.0.1, which isn't
reachable from Obsidian Mobile).SuperProductivity's REST API has no endpoints to create tags or projects, so
the quick-add parser only ever matches #tag/+project against tags and
projects that already exist in SuperProductivity. An unrecognized #/+
token is left as literal text in the task title instead of being silently
dropped.
In settings, Priority sort order lets you add any number of existing SuperProductivity tags and reorder them (▲/▼); within the same day, tasks are sorted by the position of their first matching tag (top = first), and tasks with none of the listed tags sort last. The Waiting tag name is separately configurable (case-insensitive) — leave it blank to hide that section.
The API token is saved in plain text in
<vault>/.obsidian/plugins/superproductivity-todo-sync/data.json. Obsidian's
plugin API has no secret-store facility, so this is the same approach every
community plugin that needs an API key uses — but it does mean the token
travels with that file.
If you sync .obsidian/ with anything (Google Drive, iCloud, Syncthing,
remotely-save, a git repo,
etc.), check whether your sync tool includes plugin data — many let you
exclude specific paths or turn off syncing the config folder entirely. If it
does sync data.json, treat the token like any other credential: avoid
pushing it somewhere you wouldn't push a password, and rotate it in
SuperProductivity's settings if you think it leaked. Since SuperProductivity's
REST server only listens on 127.0.0.1, the token by itself is only useful
to someone who also has local access to the machine while SuperProductivity
is running — but it's still worth being deliberate about where it ends up.
fetch()?SuperProductivity's local REST server rejects any request carrying an
Origin header (403, "Requests from web origins are not allowed"), which
fetch()/XMLHttpRequest always attach from a renderer context. This plugin
talks to the API through Obsidian's own requestUrl() instead, which goes
through Electron's networking stack rather than the renderer's fetch(), so
it never sends an Origin header either.
The plugin isn't in the Community Plugins directory yet, so for now it has to be installed manually:
main.js, manifest.json, and styles.css
from a release, if one exists):git clone https://github.com/oswaltx/obsidian-superproductivity-todo-sync
cd obsidian-superproductivity-todo-sync
npm install
npm run build
This emits main.js at the repository root, alongside the existing
manifest.json and styles.css.<vault>/.obsidian/plugins/superproductivity-todo-sync/main.js, manifest.json, styles.css — into
that folder. (While developing, npm run dev rebuilds main.js on every
change; symlinking the repo folder into .obsidian/plugins/ instead of
copying saves you the copy step on every rebuild.)This plugin started life as a single dataviewjs code block. If you'd rather
not install a plugin at all — or you want something you can hack on directly
in your vault without touching TypeScript or rebuilding anything — the full
script lives at
dataviewjs/superproductivity-dashboard.js.
Open it on GitHub, copy it with the button in the top-right corner of the
code view, and paste it into a dataviewjs code block in any note (requires
the Dataview plugin,
with JavaScript queries enabled in its settings). It's plain code sitting in
your note, so edit it freely (tag names, groupings, colors, whatever) —
there's nothing to rebuild.
It's functionally the predecessor of this plugin: same REST API, same
@/#/+ quick-add syntax and autocomplete, same due-date grouping — but
it re-fetches and re-renders on every note view instead of living in a
persistent sidebar, has no setup wizard (edit the tokenPath/token handling
in the script directly), and the priority/waiting tag names are hardcoded
at the top of the file rather than configurable in a settings UI.
npm install
npm run build
main.js is emitted at the repository root alongside manifest.json and
styles.css.
If this plugin is useful to you:
(Built with AI assistance — see the commit history for details.)
MIT